Compare commits
16 Commits
query-prov
...
dedupe_fea
| Author | SHA1 | Date | |
|---|---|---|---|
| 61bea5fb6e | |||
| c835a9deb0 | |||
| b862a3f686 | |||
| bc00515c1b | |||
| 60f9aa05a0 | |||
| 4705649ae8 | |||
| 5acaffc224 | |||
| 0a1b901b12 | |||
| 440c13cc49 | |||
| 9b9557105c | |||
| af360d7793 | |||
| 452e6189e4 | |||
| 7e4fb66fc6 | |||
| 213f560c4a | |||
| 8449578424 | |||
| 1adcc04efc |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,5 +1,4 @@
|
|||||||
/target/
|
/target/
|
||||||
/config/
|
|
||||||
!.mvn/wrapper/maven-wrapper.jar
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
### STS ###
|
### STS ###
|
||||||
@@ -30,7 +29,8 @@
|
|||||||
/.nb-gradle/
|
/.nb-gradle/
|
||||||
/cygnus-onprem-app/target
|
/cygnus-onprem-app/target
|
||||||
/cygnus-cloud-client/target
|
/cygnus-cloud-client/target
|
||||||
/cygnus-installer/src/test
|
|
||||||
/cygnus-cloud-service/target
|
/cygnus-cloud-service/target
|
||||||
/cygnus-installer/src/target
|
/cygnus-installer/src/target
|
||||||
/cygnus-installer/target
|
/cygnus-installer/target
|
||||||
|
/cygnus-onprem-db/target
|
||||||
|
/cygnus-lib/target
|
||||||
|
|||||||
3
.vscode/launch.json
vendored
3
.vscode/launch.json
vendored
@@ -61,6 +61,7 @@
|
|||||||
"REDIS_PASSWORD": "M@triXR3d1s@6202",
|
"REDIS_PASSWORD": "M@triXR3d1s@6202",
|
||||||
"REDIS_DATABASE": "1",
|
"REDIS_DATABASE": "1",
|
||||||
"REDIS_SSL": "false",
|
"REDIS_SSL": "false",
|
||||||
|
"CYGNUS_QUERY_CACHE_ENABLED": "false",
|
||||||
"CYGNUS_CLOUD_BASE_URL": "http://localhost:8090",
|
"CYGNUS_CLOUD_BASE_URL": "http://localhost:8090",
|
||||||
"CYGNUS_TOKEN_URL": "http://localhost:8090/oauth2/token",
|
"CYGNUS_TOKEN_URL": "http://localhost:8090/oauth2/token",
|
||||||
"CYGNUS_CLIENT_ID": "matrix",
|
"CYGNUS_CLIENT_ID": "matrix",
|
||||||
@@ -68,6 +69,8 @@
|
|||||||
"CYGNUS_CLIENT_ASSERTION": "file:${workspaceFolder}/config/clients/matrix/matrix-matrix-delhi-cygnus-01-assertion.jwt",
|
"CYGNUS_CLIENT_ASSERTION": "file:${workspaceFolder}/config/clients/matrix/matrix-matrix-delhi-cygnus-01-assertion.jwt",
|
||||||
"CYGNUS_LOGIN_KEY_ID": "cygnus-login-2026-01",
|
"CYGNUS_LOGIN_KEY_ID": "cygnus-login-2026-01",
|
||||||
"CYGNUS_LOGIN_PUBLIC_KEY": "file:${workspaceFolder}/config/keys/login-public.pem",
|
"CYGNUS_LOGIN_PUBLIC_KEY": "file:${workspaceFolder}/config/keys/login-public.pem",
|
||||||
|
"CYGNUS_PAYLOAD_PRIVATE_KEY": "file:${workspaceFolder}/config/keys/case-save-private.pem",
|
||||||
|
"CYGNUS_PAYLOAD_PUBLIC_KEY": "file:${workspaceFolder}/config/keys/case-save-public.pem",
|
||||||
"CYGNUS_CLOUD_REQUEST_TIMEOUT": "PT10S",
|
"CYGNUS_CLOUD_REQUEST_TIMEOUT": "PT10S",
|
||||||
"CYGNUS_TOKEN_REFRESH_SKEW": "PT30S"
|
"CYGNUS_TOKEN_REFRESH_SKEW": "PT30S"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.rf8bViJPb5bRJHFamVoCftE0TLA1Gz7JyGnfcjtKEx3KiUL4SSbgYSUQlsKhCt8VJMWE--UpgbkM0Bv3pFVsMF_uh693MhFstEy_A6S3MODjoUV_bMLa_Zr1yH2Jwzud4LSyw-ctJ7G-vO8S_I6YML0HV5kNbobdFmMfXFLGKssVmM_Km0m57ZgSjj3zRii0cKpmdwwSbWoJC2y519TpKhIja0OZAoN1oB3IVKvERlFYCQYUpQmcRkzULGrlSoLIm9iqbRX4qMGhGISwVS6JdVtn9WjpSjF3xkUxN_QsVuYKYFL_kEKWSNepIcfoip7Ag9Qw_S1RZA_KO908MgrzGRbs2UIpxY9sAM8yZ-k1NTk0swV836s5pdDIP3PHovcd6iR8mqWBPt7mq7ES98vNeCZxqPLB_b1JuNfKsbLPdRIvEk2DTjZHeEi-yA1yl5uMi_1f4la6mgy65u_jLL_Ow28uZtj-8yQ3dR4lF3K7tkxQaB4LQiH5nl6lXEndpoPe.Cpu6VoHf2ptCue_L.uH-Pq1WZN-x_c71Iyx8X1QJa1JZRp9sYta9iUOmQ4W8x4Qh2wYm-_tpr8FEw56MLvIb8IH_gHVVLAJgXTmCZhyo26vJlPCtnMMPYFDrPRzTJv9Ewg7RMpsAh_kXFFK4UJ6Tgt_r7Tg_bnVOTKXodUjl3wVdMowZRX_ua-gKwLU-2LDWdqIRmuFDSOkMb1sFBZLPyjWHg_rThs-RwVa4YJdDi74s-L0WX0xRPXzeovu1-xvOgZ0xYf0ScbsFQgvK-JwAxOWsB1WKeHRqnnx5-apK6qtzhpiJ30c7ukPlrg2nieuJvkXOVuKBKXLVRLSViOH4HU76DD96btDUA0Cg2kEURpepucX0VWPyB7K3xb9v1AT42TUkW9wZzdmIs9saRo-ItuWzlCezvapLIsbqmYCs_rW2J3KgqXrUyy2mptn32sqaqQZnlNVu4wwboPCCrbl2MG5CYlYKrwaOHNg611j8sCDkIptm_UmPFnOnzvQYwURuDSgzswTIV5bTd_58yxag2yWwiMdGLMDbxxSUPQ6a4EbuDkqwmGBTSLiG7SaSFchSg6o9EflqK6k-u_rlixCxmfg1A6sa7nloW17dOxDzGKtmn9lBoaskL97nNrhP6ptftak7j4TIZulz1FUOSVoR8kXK8RNQMj-b6rg_MdSO9Ecq5hZsza1SzjkzKZvV-tpP6Wl6-rszCH6g3DIQAWN5aWdUkwuya1HqDDyVPbUOVQPsp4nhVC24QmnlbcqFwQdoCrikYKyX3Snc0H6_K4z9c6nURAdj6THwHmA9BfHtJniI_rEIvkmBk3yndi-H5eAjtxIoYSFQrSTWEFhgvk6bAKoR_xb_cHgzKOxYLBiO_FifkjkFDOlkVBuYnZEp3oRePDKgMDfL5Oxjuie4u-8yrH52Cd32yQzbvGplaXLLeEDf3i71dcz4LkO5DknScWG3G_SbKBpjlse-GKe3XYqRXeRIYLpyiX1MXph0b-Q.dvHU75ZR8wJFxoSacfkthw
|
||||||
40
config/clients/matrix/matrix-signing-private.pem
Normal file
40
config/clients/matrix/matrix-signing-private.pem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQCWgm0Yw4txM1Z7
|
||||||
|
UiB2tPy5i5wjVWzTZaPJQ9ns+jnWILrtCYZ0bQifOUElh2Ri1PPx51r6oCtkw0YH
|
||||||
|
QKEWz/vEo8oBKQy9Vyubghhu2HQMQiRdYAvthexZ3yp1L4qyfG4LpOq+4D1er89f
|
||||||
|
hGa0CrhuXT/VPYdmMmznf9vveXk16Fyx5lTXb3D7mUGoPBbnGH7VWdc1tz3rNrsE
|
||||||
|
V9BKd+D1bBpZKmjxjntcBOdXuzjrJPyA0ozb0g0clezhoitD21wudNsPP2eEZx42
|
||||||
|
B5zcCE7NzhPII+6BSIb1YPh6GxCv7sKnfRGpPmX1k++gFOkB0ctnWv+MH6pjr5aR
|
||||||
|
joSw4lbbGD1tRigdeMyIV2Lw4tcLg1MA9Sq4U5ogx+PEZphBzw2gMwWKrep1NaLa
|
||||||
|
d0I6jFfIXFhE/mliz+gDjpQAdmwIdqymO+X2N9H9psIAsG2wUvCksD2qoHCzmiNc
|
||||||
|
Uf/9ShcTt1ecnOIIVA3Ik6Fe0iFtCG1vfAlzpZIu0OtGkW1om50CAwEAAQKCAYAJ
|
||||||
|
9mQmSXtHaPCGhS8k7GH2HimdpR/o9kdbISShrQZ7B/uXiRPfTQBPGckYJNgeOp5T
|
||||||
|
Gs9I26VDrDFMdZi0G9w8beMHJKJ1Pfni9z+KxsUXsqEZlSv08vJsGHuE+jqiCd52
|
||||||
|
4tmu/MTTKav+VJM/w53loEKDaOk3eIsA39O9DDtbuB+6ntZq1DOUU9amviN99H8g
|
||||||
|
vCukoJZ2pU7HwNBGvZykYh10XXxI0PeVZbWydvATkIUuOcGdI1A+3iWp4cQfX7um
|
||||||
|
ScbTrQT2NULTJmotFVm0x+uVp5mnO+Hs7PaRhnfTI7sN/b5jm3FGXzGACW2dRsYh
|
||||||
|
0I9ogMHlvJi8BJIqaDyhuq2R9QKJLSP1R7mAOlaLSob7rfh3C0VRFBgCYWszDFCH
|
||||||
|
BFCtHnMIhNhIMpZdNmmD6a++YjBLL7KrenTCCjWatiNix9r13y1ZviRT2Q4sczYI
|
||||||
|
JBSJ0cOwW+8/d7Xad+RBsEiSpo+VfBJR5Pe3np/fSwvzWYTHnX1pN3kdQR7hpjkC
|
||||||
|
gcEAzvm+m1G4YbKdP+azVPlz76osGdi52QZuYLWP20CCIzCq7vIoxwKNg1mgO7ZW
|
||||||
|
WKSWCSDjI55TdJQzfm6Ax8gqFC5Q+nBTNvuFoCSZK7T8+jcEcAtdc8tR3Hg4KD0L
|
||||||
|
EsFup2MTJXQm579CosUCs1zLVGNf2u8My1Z8qi23RIiViWcwXIwBOnYPcKorD68a
|
||||||
|
ENkJBQ7YQ9h+mniwN7UTR7cAr3/nGaOsU6VjqHjzit1qakkS/lBZ2il0iz2B+Cbm
|
||||||
|
D/hPAoHBALoox9wntzT8cGnW8v/Ty4Q51h60DeUv+DGXumJc5Y8C5AqkYYucsYIi
|
||||||
|
PX9Xv3gsLl6ogwdcBP6KEXtiN6qkcOFkegsOOCZcZgqQGenG4w86d/sy+EmfgyQ+
|
||||||
|
I2EQjfuBE4D3JlxOpUfVdUhnn0Jyx+tYPPvTt9z+FwI1S+LSH2HsTssW0/1fIrAw
|
||||||
|
R/ttjk+59wFZmINTXUJYHo2ZqPONu8WOhx4cmp2v+XD+nI+3Xve3fXj94ki9FoQC
|
||||||
|
sOfWR3LGUwKBwDTgewClPQzAnAniP3h7DlJxUDj+NGSsjvBoEit6bITe/xxyg1Zs
|
||||||
|
YYjoEdaPe7nDuoz0ePL1lO6Ymhs30fC4Q3/KYWfJ4IiQc4/5KaSP5X1rJtgVHzfg
|
||||||
|
/rXrhLVK+xQ8lK9w0UhlRzc3lqeM22bFUzDo/mkpX0RngQvdCBAbMNDcqu9J2Vp9
|
||||||
|
JO6smrm0C124hORk6X1Txuxh3usseJN+vk8Xxwu20+S+wRoeZGHatUAYESEll/7z
|
||||||
|
TlHwUc766RW1YwKBwQCOy79a+cAHzefw1+f4Ix9GoxLC5HyQJDau2+MllnqkM6R3
|
||||||
|
IVaNwDlNSDSCHO4LIWDETWCM4aIXGhOE4Hcw1wiba/ZNyq95hYDkc1rdPylmwgPM
|
||||||
|
1XEtEEWJJH0A9LDkjkNGts5fGhigPHXFf27jiqYduca1qNatlt5RXE6Eg4d9FsXt
|
||||||
|
9OnRvgseuTpN++Cg+VYmW/KoMeckf/GXzpmRkVPKm6S7jVdww86ERVoUx6T6QW7m
|
||||||
|
w2CzSRAfXO0UOQL/YG8CgcAJzA4TQAOUiGDW3Qb6qU9v1pMBp7yC/yMkk0cjIhGP
|
||||||
|
V4cL7NgGqX/m4fX95fl8sFRM1u5c4F1ll/tbKZxDzfclGTf9RxkrJahgGSJW5hko
|
||||||
|
RjcZrzfo9Al3qcSMcWE4+7kN3Gr9O0iZ89r97vB76N0GjVsn3CZSJm+mnxbOSwru
|
||||||
|
MouM1CVc2/nGs8mUSDj8SnGpv778ONQVypx8tRubIRGsvkNFtiJ+Q2hjjfsMDfwm
|
||||||
|
M/D4ZjXsfrW//BMF6+w2Bh4=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
11
config/clients/matrix/matrix-signing-public.pem
Normal file
11
config/clients/matrix/matrix-signing-public.pem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAloJtGMOLcTNWe1IgdrT8
|
||||||
|
uYucI1Vs02WjyUPZ7Po51iC67QmGdG0InzlBJYdkYtTz8eda+qArZMNGB0ChFs/7
|
||||||
|
xKPKASkMvVcrm4IYbth0DEIkXWAL7YXsWd8qdS+KsnxuC6TqvuA9Xq/PX4RmtAq4
|
||||||
|
bl0/1T2HZjJs53/b73l5NehcseZU129w+5lBqDwW5xh+1VnXNbc96za7BFfQSnfg
|
||||||
|
9WwaWSpo8Y57XATnV7s46yT8gNKM29INHJXs4aIrQ9tcLnTbDz9nhGceNgec3AhO
|
||||||
|
zc4TyCPugUiG9WD4ehsQr+7Cp30RqT5l9ZPvoBTpAdHLZ1r/jB+qY6+WkY6EsOJW
|
||||||
|
2xg9bUYoHXjMiFdi8OLXC4NTAPUquFOaIMfjxGaYQc8NoDMFiq3qdTWi2ndCOoxX
|
||||||
|
yFxYRP5pYs/oA46UAHZsCHaspjvl9jfR/abCALBtsFLwpLA9qqBws5ojXFH//UoX
|
||||||
|
E7dXnJziCFQNyJOhXtIhbQhtb3wJc6WSLtDrRpFtaJudAgMBAAE=
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
40
config/keys/access-token-private.pem
Normal file
40
config/keys/access-token-private.pem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
m/lDtrY4EpMy9FSQD1zb+qE=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
11
config/keys/access-token-public.pem
Normal file
11
config/keys/access-token-public.pem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyfuM67QxEonEvC2Vf21
|
||||||
|
P+fxo406Z4C+zNzxH/8tCPhMH94Sklt10WXqSfQFfZbhJPVYoZL8m0NDI7ozI7lI
|
||||||
|
MPAhAVfcFOzO6VqpFGrzMgMqmnWLrxRsL3y1rjB3LnE84W+ATcS/mlk6rwbCfrSo
|
||||||
|
RRlY3i79ol8h36jhhaHT2/iGGO3uvqAQK334lQEOlqr+YL4Kkr/GMOm86bE4PcZS
|
||||||
|
JgCTAnlCQC7TUu6jGWuocmI1nNwLXPjQvXgc+HKtJEqFGf+a0fty9fLgaR2yIzlM
|
||||||
|
9i31r3kjeKzqVe2DeLTbttd8bVWU4/KmGg8rEchtwC8wR4inuDUjwJ3FwmdBrvDp
|
||||||
|
Ga1AM8yofdbs73Lv2EgkvRLvlgaWiX2P6KdlKGHeaDj9v0YWJbiFM4rc9y5hD3lG
|
||||||
|
2unhpvP/49OFXVBT2/pm86LmxSlwsun3G2LKNOXI646jhdVHQkIVcBiHTHYQOe9/
|
||||||
|
xLqx3ZiEM7witbzuJnxIkbj/8OFgH+WDUmTQVXtbz7vdAgMBAAE=
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
40
config/keys/assertion-decryption-private.pem
Normal file
40
config/keys/assertion-decryption-private.pem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
RqsZZ1cLu0TCOoNBkcSr79a6
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
11
config/keys/assertion-decryption-public.pem
Normal file
11
config/keys/assertion-decryption-public.pem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAtZc750+cxwDcG/lvpEHm
|
||||||
|
3fxFgp5X5df90s51R4ShKpV6dmDRYXnVil9GmXrJf/aGAqrsf6ZUvZWJrAJ2OO2X
|
||||||
|
Wt8tcqajnaWdM33BrH/QztTJkoGHZM1xLY5EpRaWo1LaG2gNGsaxG0ON9T1emKi7
|
||||||
|
XDEcI9Lmc/mhP6SuuUnvGwq1Z433vqGodorkU+T2jCfflhwfenvBcOk4GJZoJFlY
|
||||||
|
sjy9Dtlha70MJpdVFWffxs4UBhhkjckb7GbDTVxa3xvz1NEbkY2+oh/tJmuIuupA
|
||||||
|
7A6TnfYP1YPXPMRQFtSPaKMOeKW5J5IorvgQKr4C74HR9iBojJN2oJ6/BjfAaz7P
|
||||||
|
8kywLj2uo9gJemOm1wz8HZyZsz482GHa0wqpUcFfOIr0oTMiJtvLn/FSYVb5xvNg
|
||||||
|
3xWiGPMju32Z49XTX7VxTDsIjGx5wtDd4G8ILS3yUlKw0yufHacmy8Fn+Plk+Xtz
|
||||||
|
Bbz6rq4frV93/3mfVMPGgBDx8mLjVJovPBnXKBSX+SdbAgMBAAE=
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
40
config/keys/case-save-private.pem
Normal file
40
config/keys/case-save-private.pem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
5PO2cnRk24OsUqAswTBT2qjd
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
11
config/keys/case-save-public.pem
Normal file
11
config/keys/case-save-public.pem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAzpOwECKVW0KdZwlVJtW7
|
||||||
|
tkqqa1wY1J+HhuFf/kbjmJv8fwFcGj+uyy2s5cXzgckNHz3Cv4Ki8VnQakbn83KR
|
||||||
|
TNIuMvYgwnaNY35KvVKU5R8KPJ7wV8yEUyhRyjtauaY9TaVUH0MStD3izcZ7Pfej
|
||||||
|
XJvxRtLjQ9SX/K+joHs3mkWyWDNYm9u6ecLBoPxW6BpAXiUOWnSpc0IO2njGbvnY
|
||||||
|
I7zs5tYdFjVtDTf4TOSIDXeCXc7nNUhf/yQVAEKvGmr64SihZc+11T5AXJy1eVEj
|
||||||
|
Fwj7hWqcZxhgukacOoU8oUORO0O0H1HIS8ICXHBgKL17Jq+furEInlU4Pfp1tkA7
|
||||||
|
dYh9nXQ91+hmRtTSXA1BpzWdIzC3fQqnwTsD6cyIDsPdRB9iSJTywFPbGywMIbh4
|
||||||
|
wIpUOS3s83DBtpxj2qHw7zc5Q99BP4Dd38kl9ejfdYuFYRmbzrq+BZR7ic5/LM7+
|
||||||
|
8iExYGpz3sFCr6qJAlCDK4th6TCl2ZjzgpTOF3pnC1I7AgMBAAE=
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
40
config/keys/login-private.pem
Normal file
40
config/keys/login-private.pem
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
VkpSw8QqBfhHSViEh12BQZa2
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
11
config/keys/login-public.pem
Normal file
11
config/keys/login-public.pem
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2g0IbNxsNIZ6fKaGTHTQ
|
||||||
|
pUFfgJVq3x0SZ458xAQDL0l1PZ+lnMtvS3/ZZpbF99bLuqyzUuHwi+1BJ/Nled61
|
||||||
|
oK8RdJKfUPiQUshXfvWT4/sLsYO6H+v2qw2jBv6kx3h+teDiuHMbw6ikUECr5u1k
|
||||||
|
qkjb+ls3aijtWplmN25HRhwFB/l6/0xAhEQNA36EoNb+ufsDR/2aRQYGQ6qegynp
|
||||||
|
8bUt7JDf3hW1y76UCKlKteFfIOkp4zwY0YYq/NewgKlze08LBrX+zy5xr5Vn8nE0
|
||||||
|
ZtWY8vbNC33Sf6g5D1ZlA+HvquplAWS/rPymj+IN79FeXNegmyCxF/ZafsneaUBn
|
||||||
|
GpSgXYbyASpA+OkqUqJcBEeTI4rfRZPiyx3ztaibg+rgOEM/DUV5le2WyujnsQ75
|
||||||
|
IG4SrVu/XTmF08MN8/hD1+ydBVnhVa7bE4WctqgA1T/5BP7ivAB03a1BJHpKFRh/
|
||||||
|
Q/pO5ONIK8lNGG6aImLPmtJijEvOL0VsUdp+oO87VnTFAgMBAAE=
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.cygnus.client;
|
package com.cygnus.client;
|
||||||
|
|
||||||
import com.cygnus.client.model.CloudIdentitySession;
|
import com.cygnus.client.model.CloudIdentitySession;
|
||||||
|
import com.cygnus.client.model.CloudDataItem;
|
||||||
|
import com.cygnus.client.model.CloudDataRequest;
|
||||||
import com.cygnus.client.model.CloudQueryResponse;
|
import com.cygnus.client.model.CloudQueryResponse;
|
||||||
import com.cygnus.client.model.LoginPayload;
|
import com.cygnus.client.model.LoginPayload;
|
||||||
import com.cygnus.client.security.LoginEnvelopeEncryptor;
|
import com.cygnus.client.security.LoginEnvelopeEncryptor;
|
||||||
import com.cygnus.client.security.MachineTokenProvider;
|
import com.cygnus.client.security.MachineTokenProvider;
|
||||||
import java.time.Clock;
|
import java.time.Clock;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@@ -62,4 +66,29 @@ public class CloudIdentityClient {
|
|||||||
.bodyToMono(CloudQueryResponse.class))
|
.bodyToMono(CloudQueryResponse.class))
|
||||||
.timeout(properties.requestTimeout());
|
.timeout(properties.requestTimeout());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Mono<CloudQueryResponse> fetchQuery(String queryKey) {
|
||||||
|
return tokenProvider.accessToken()
|
||||||
|
.flatMap(token -> webClient.get()
|
||||||
|
.uri(properties.baseUri().resolve("/api/v1/queries/key/" + queryKey))
|
||||||
|
.header(HttpHeaders.AUTHORIZATION, "Bearer " + token)
|
||||||
|
.accept(MediaType.APPLICATION_JSON)
|
||||||
|
.retrieve()
|
||||||
|
.bodyToMono(CloudQueryResponse.class))
|
||||||
|
.timeout(properties.requestTimeout());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Mono<List<CloudDataItem>> fetchData(String scope, Map<String, Object> data) {
|
||||||
|
return tokenProvider.accessToken()
|
||||||
|
.flatMap(token -> webClient.post()
|
||||||
|
.uri(properties.baseUri().resolve("/api/v1/platform/data"))
|
||||||
|
.header(HttpHeaders.AUTHORIZATION, "Bearer " + token)
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.accept(MediaType.APPLICATION_JSON)
|
||||||
|
.bodyValue(new CloudDataRequest(scope, Map.copyOf(data)))
|
||||||
|
.retrieve()
|
||||||
|
.bodyToFlux(CloudDataItem.class)
|
||||||
|
.collectList())
|
||||||
|
.timeout(properties.requestTimeout());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package com.cygnus.client.model;
|
||||||
|
|
||||||
|
public record CloudDataItem(Object value, String label, String group) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.cygnus.client.model;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public record CloudDataRequest(String scope, Map<String, Object> data) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.cygnus.cloud.platform.api;
|
||||||
|
|
||||||
|
import com.cygnus.cloud.platform.service.ScopedDataException;
|
||||||
|
import com.cygnus.cloud.platform.service.ScopedDataService;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
|
import org.springframework.security.oauth2.jwt.Jwt;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import reactor.core.publisher.Flux;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/v1/platform/data")
|
||||||
|
public class ScopedDataController {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ScopedDataController.class);
|
||||||
|
private final ScopedDataService service;
|
||||||
|
|
||||||
|
public ScopedDataController(ScopedDataService service) {
|
||||||
|
this.service = service;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
public Flux<ScopedDataItem> data(
|
||||||
|
@AuthenticationPrincipal Jwt machineJwt,
|
||||||
|
@Valid @RequestBody ScopedDataRequest request) {
|
||||||
|
if (machineJwt == null) throw new ScopedDataException("Machine authentication required");
|
||||||
|
try {
|
||||||
|
return service.fetch(UUID.fromString(machineJwt.getClaimAsString("tenant_id")), request);
|
||||||
|
} catch (IllegalArgumentException exception) {
|
||||||
|
throw new ScopedDataException("Machine tenant is invalid");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(ScopedDataException.class)
|
||||||
|
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||||
|
Map<String, String> invalidRequest(ScopedDataException exception) {
|
||||||
|
LOGGER.warn("Scoped platform-data request rejected: {}", exception.getMessage());
|
||||||
|
return Map.of("code", "PLATFORM_DATA_INVALID", "message", exception.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.cygnus.cloud.platform.api;
|
||||||
|
|
||||||
|
public record ScopedDataItem(
|
||||||
|
Object value,
|
||||||
|
String label,
|
||||||
|
String group) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.cygnus.cloud.platform.api;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public record ScopedDataRequest(
|
||||||
|
@NotBlank String scope,
|
||||||
|
@NotNull Map<String, Object> data) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
package com.cygnus.cloud.platform.repository;
|
||||||
|
|
||||||
|
import com.cygnus.cloud.database.ReactiveDatabaseClient;
|
||||||
|
import com.cygnus.cloud.platform.api.ScopedDataItem;
|
||||||
|
import io.vertx.sqlclient.Row;
|
||||||
|
import io.vertx.sqlclient.Tuple;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import reactor.core.publisher.Flux;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class ScopedDataRepository {
|
||||||
|
private static final String COMPANY_OPTIONS = """
|
||||||
|
SELECT ov.opt_value AS value,
|
||||||
|
ov.val_description AS label,
|
||||||
|
lower(o.description) || '.' AS group_name
|
||||||
|
FROM platform.company_options_mapping m
|
||||||
|
JOIN platform.options o ON o.option_id = m.option_id
|
||||||
|
JOIN platform.options_values ov ON ov.opt_value_id = m.opt_value_id
|
||||||
|
JOIN identity.company c ON c.company_id = m.company_id
|
||||||
|
WHERE c.tenant_id = $1
|
||||||
|
AND m.company_id = $2
|
||||||
|
AND o.isactive = 1
|
||||||
|
AND ov.isactive = 1
|
||||||
|
AND o.description = ANY($3::text[])
|
||||||
|
ORDER BY o.description, ov.val_description
|
||||||
|
""";
|
||||||
|
private static final String PORTFOLIO_OPTIONS = """
|
||||||
|
SELECT ov.opt_value AS value,
|
||||||
|
ov.val_description AS label,
|
||||||
|
lower(o.description) || '.' AS group_name
|
||||||
|
FROM platform.options_mapping m
|
||||||
|
JOIN platform.options o ON o.option_id = m.option_id
|
||||||
|
JOIN platform.options_values ov ON ov.opt_value_id = m.opt_value_id
|
||||||
|
JOIN identity.company c ON c.company_id = m.company_id
|
||||||
|
JOIN platform.company_branch_portfolios cbp
|
||||||
|
ON cbp.company_id = m.company_id
|
||||||
|
AND cbp.portfolio_reference = m.portfolio_reference
|
||||||
|
WHERE c.tenant_id = $1
|
||||||
|
AND m.company_id = $2
|
||||||
|
AND cbp.company_branch_id = $3
|
||||||
|
AND m.portfolio_reference = $4
|
||||||
|
AND o.isactive = 1
|
||||||
|
AND ov.isactive = 1
|
||||||
|
AND o.description = ANY($5::text[])
|
||||||
|
ORDER BY o.description, ov.val_description
|
||||||
|
""";
|
||||||
|
|
||||||
|
private final ReactiveDatabaseClient database;
|
||||||
|
|
||||||
|
public ScopedDataRepository(ReactiveDatabaseClient database) {
|
||||||
|
this.database = database;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Flux<ScopedDataItem> companyOptions(
|
||||||
|
UUID tenantId, short companyId, List<String> descriptions) {
|
||||||
|
return rows(COMPANY_OPTIONS, Tuple.of(tenantId, companyId, descriptions.toArray(String[]::new)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Flux<ScopedDataItem> portfolioOptions(
|
||||||
|
UUID tenantId, short companyId, short branchId, UUID portfolioReference,
|
||||||
|
List<String> descriptions) {
|
||||||
|
return rows(PORTFOLIO_OPTIONS,
|
||||||
|
Tuple.of(tenantId, companyId, branchId, portfolioReference,
|
||||||
|
descriptions.toArray(String[]::new)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Flux<ScopedDataItem> rows(String sql, Tuple parameters) {
|
||||||
|
return database.preparedQuery(sql, parameters)
|
||||||
|
.flatMapMany(result -> Flux.fromIterable(result))
|
||||||
|
.map(this::item);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ScopedDataItem item(Row row) {
|
||||||
|
return new ScopedDataItem(
|
||||||
|
row.getValue("value"), row.getString("label"), row.getString("group_name"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.cygnus.cloud.platform.service;
|
||||||
|
|
||||||
|
public class ScopedDataException extends RuntimeException {
|
||||||
|
public ScopedDataException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
package com.cygnus.cloud.platform.service;
|
||||||
|
|
||||||
|
import com.cygnus.cloud.platform.api.ScopedDataItem;
|
||||||
|
import com.cygnus.cloud.platform.api.ScopedDataRequest;
|
||||||
|
import com.cygnus.cloud.platform.repository.ScopedDataRepository;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import reactor.core.publisher.Flux;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ScopedDataService {
|
||||||
|
public static final String COMPANY_OPTIONS = "company-options";
|
||||||
|
public static final String PORTFOLIO_OPTIONS = "portfolio-options";
|
||||||
|
|
||||||
|
private final ScopedDataRepository repository;
|
||||||
|
|
||||||
|
public ScopedDataService(ScopedDataRepository repository) {
|
||||||
|
this.repository = repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Flux<ScopedDataItem> fetch(UUID tenantId, ScopedDataRequest request) {
|
||||||
|
Map<String, Object> data = request.data();
|
||||||
|
short companyId = shortValue(data, "companyId");
|
||||||
|
List<String> descriptions = descriptions(data);
|
||||||
|
return switch (request.scope().trim().toLowerCase(Locale.ROOT)) {
|
||||||
|
case COMPANY_OPTIONS -> repository.companyOptions(tenantId, companyId, descriptions);
|
||||||
|
case PORTFOLIO_OPTIONS -> repository.portfolioOptions(
|
||||||
|
tenantId, companyId, shortValue(data, "branchId"),
|
||||||
|
uuidValue(data, "portfolioReference"), descriptions);
|
||||||
|
default -> Flux.error(new ScopedDataException("Unsupported data scope"));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private UUID uuidValue(Map<String, Object> data, String name) {
|
||||||
|
try {
|
||||||
|
return UUID.fromString(String.valueOf(data.get(name)));
|
||||||
|
} catch (RuntimeException exception) {
|
||||||
|
throw new ScopedDataException(name + " must be a valid UUID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private short shortValue(Map<String, Object> data, String name) {
|
||||||
|
Object value = data.get(name);
|
||||||
|
try {
|
||||||
|
short result = value instanceof Number number
|
||||||
|
? number.shortValue() : Short.parseShort(String.valueOf(value));
|
||||||
|
if (result <= 0) throw new NumberFormatException();
|
||||||
|
return result;
|
||||||
|
} catch (RuntimeException exception) {
|
||||||
|
throw new ScopedDataException(name + " must be a positive number");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> descriptions(Map<String, Object> data) {
|
||||||
|
Object value = data.get("descriptions");
|
||||||
|
if (!(value instanceof List<?> values)) {
|
||||||
|
throw new ScopedDataException("descriptions must be a non-empty list");
|
||||||
|
}
|
||||||
|
List<String> result = values.stream()
|
||||||
|
.map(String::valueOf)
|
||||||
|
.map(String::trim)
|
||||||
|
.filter(text -> !text.isEmpty())
|
||||||
|
.map(text -> text.toUpperCase(Locale.ROOT))
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
if (result.isEmpty() || result.size() > 20) {
|
||||||
|
throw new ScopedDataException("descriptions must contain between 1 and 20 values");
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,4 +25,10 @@ public class CloudQueryController {
|
|||||||
return repository.findEnabled(queryId)
|
return repository.findEnabled(queryId)
|
||||||
.switchIfEmpty(Mono.error(new QueryNotFoundException(queryId)));
|
.switchIfEmpty(Mono.error(new QueryNotFoundException(queryId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/key/{queryKey}")
|
||||||
|
public Mono<CloudQuery> queryByKey(@PathVariable String queryKey) {
|
||||||
|
return repository.findEnabled(queryKey)
|
||||||
|
.switchIfEmpty(Mono.error(new QueryNotFoundException(queryKey)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,10 @@ public class QueryCatalogRepository {
|
|||||||
|
|
||||||
private static final String INITIALIZE = """
|
private static final String INITIALIZE = """
|
||||||
CREATE SCHEMA IF NOT EXISTS platform;
|
CREATE SCHEMA IF NOT EXISTS platform;
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS platform.application_query_id_seq;
|
||||||
CREATE TABLE IF NOT EXISTS platform.application_query (
|
CREATE TABLE IF NOT EXISTS platform.application_query (
|
||||||
query_id integer PRIMARY KEY,
|
query_id integer PRIMARY KEY DEFAULT nextval('platform.application_query_id_seq'),
|
||||||
|
query_key varchar(100),
|
||||||
query_text text NOT NULL,
|
query_text text NOT NULL,
|
||||||
enabled boolean NOT NULL DEFAULT true,
|
enabled boolean NOT NULL DEFAULT true,
|
||||||
created_at timestamptz NOT NULL DEFAULT current_timestamp,
|
created_at timestamptz NOT NULL DEFAULT current_timestamp,
|
||||||
@@ -20,7 +22,15 @@ public class QueryCatalogRepository {
|
|||||||
CHECK (query_id > 0),
|
CHECK (query_id > 0),
|
||||||
CONSTRAINT ck_platform_application_query_text
|
CONSTRAINT ck_platform_application_query_text
|
||||||
CHECK (length(btrim(query_text)) > 0)
|
CHECK (length(btrim(query_text)) > 0)
|
||||||
)
|
);
|
||||||
|
ALTER TABLE platform.application_query
|
||||||
|
ADD COLUMN IF NOT EXISTS query_key varchar(100);
|
||||||
|
ALTER TABLE platform.application_query ALTER COLUMN query_id
|
||||||
|
SET DEFAULT nextval('platform.application_query_id_seq');
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS ux_platform_application_query_key
|
||||||
|
ON platform.application_query (query_key) WHERE query_key IS NOT NULL;
|
||||||
|
SELECT setval('platform.application_query_id_seq',
|
||||||
|
greatest(coalesce((SELECT max(query_id) FROM platform.application_query), 0) + 1, 1), false)
|
||||||
""";
|
""";
|
||||||
private static final String FIND = """
|
private static final String FIND = """
|
||||||
SELECT query_id, query_text
|
SELECT query_id, query_text
|
||||||
@@ -28,6 +38,12 @@ public class QueryCatalogRepository {
|
|||||||
WHERE query_id = $1
|
WHERE query_id = $1
|
||||||
AND enabled = true
|
AND enabled = true
|
||||||
""";
|
""";
|
||||||
|
private static final String FIND_BY_KEY = """
|
||||||
|
SELECT query_id, query_text
|
||||||
|
FROM platform.application_query
|
||||||
|
WHERE query_key = $1
|
||||||
|
AND enabled = true
|
||||||
|
""";
|
||||||
private final ReactiveDatabaseClient database;
|
private final ReactiveDatabaseClient database;
|
||||||
|
|
||||||
public QueryCatalogRepository(ReactiveDatabaseClient database) {
|
public QueryCatalogRepository(ReactiveDatabaseClient database) {
|
||||||
@@ -45,4 +61,11 @@ public class QueryCatalogRepository {
|
|||||||
.map(row -> new CloudQuery(
|
.map(row -> new CloudQuery(
|
||||||
row.getInteger("query_id"), row.getString("query_text")));
|
row.getInteger("query_id"), row.getString("query_text")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Mono<CloudQuery> findEnabled(String queryKey) {
|
||||||
|
return database.preparedQuery(FIND_BY_KEY, Tuple.of(queryKey))
|
||||||
|
.flatMapMany(rows -> reactor.core.publisher.Flux.fromIterable(rows))
|
||||||
|
.next()
|
||||||
|
.map(row -> new CloudQuery(row.getInteger("query_id"), row.getString("query_text")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,8 @@ public class QueryNotFoundException extends RuntimeException {
|
|||||||
public QueryNotFoundException(int queryId) {
|
public QueryNotFoundException(int queryId) {
|
||||||
super("Query was not found: " + queryId);
|
super("Query was not found: " + queryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public QueryNotFoundException(String queryKey) {
|
||||||
|
super("Query was not found: " + queryKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ public class CloudSecurityConfiguration {
|
|||||||
.hasAuthority("SCOPE_identity.login")
|
.hasAuthority("SCOPE_identity.login")
|
||||||
.pathMatchers("/api/v1/queries/**")
|
.pathMatchers("/api/v1/queries/**")
|
||||||
.hasAuthority("SCOPE_identity.login")
|
.hasAuthority("SCOPE_identity.login")
|
||||||
|
.pathMatchers("/api/v1/platform/data")
|
||||||
|
.hasAuthority("SCOPE_identity.login")
|
||||||
.pathMatchers("/api/v1/admin/**")
|
.pathMatchers("/api/v1/admin/**")
|
||||||
.hasAuthority("SCOPE_cygnus.admin")
|
.hasAuthority("SCOPE_cygnus.admin")
|
||||||
.anyExchange().authenticated())
|
.anyExchange().authenticated())
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
CREATE SCHEMA IF NOT EXISTS platform;
|
CREATE SCHEMA IF NOT EXISTS platform;
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS platform.application_query_id_seq;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS platform.application_query (
|
CREATE TABLE IF NOT EXISTS platform.application_query (
|
||||||
query_id integer PRIMARY KEY,
|
query_id integer PRIMARY KEY DEFAULT nextval('platform.application_query_id_seq'),
|
||||||
|
query_key varchar(100),
|
||||||
query_text text NOT NULL,
|
query_text text NOT NULL,
|
||||||
enabled boolean NOT NULL DEFAULT true,
|
enabled boolean NOT NULL DEFAULT true,
|
||||||
created_at timestamptz NOT NULL DEFAULT current_timestamp,
|
created_at timestamptz NOT NULL DEFAULT current_timestamp,
|
||||||
@@ -11,3 +13,11 @@ CREATE TABLE IF NOT EXISTS platform.application_query (
|
|||||||
CONSTRAINT ck_platform_application_query_text
|
CONSTRAINT ck_platform_application_query_text
|
||||||
CHECK (length(btrim(query_text)) > 0)
|
CHECK (length(btrim(query_text)) > 0)
|
||||||
);
|
);
|
||||||
|
ALTER TABLE platform.application_query
|
||||||
|
ADD COLUMN IF NOT EXISTS query_key varchar(100);
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS ux_platform_application_query_key
|
||||||
|
ON platform.application_query (query_key) WHERE query_key IS NOT NULL;
|
||||||
|
ALTER TABLE platform.application_query ALTER COLUMN query_id
|
||||||
|
SET DEFAULT nextval('platform.application_query_id_seq');
|
||||||
|
SELECT setval('platform.application_query_id_seq',
|
||||||
|
greatest(coalesce((SELECT max(query_id) FROM platform.application_query), 0) + 1, 1), false);
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
-- Stable query key; query_id is generated by PostgreSQL.
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
INSERT INTO platform.application_query(query_key, query_text, enabled, created_at, updated_at, ismigrated)
|
||||||
|
VALUES ('APPLICATION_SAVE',
|
||||||
|
'procedure!C0L!select * from public.save_application_details(?::jsonb,?::smallint,?::smallint,?::smallint)',
|
||||||
|
true, clock_timestamp(), clock_timestamp(), true)
|
||||||
|
ON CONFLICT (query_key) WHERE query_key IS NOT NULL DO UPDATE SET
|
||||||
|
query_text=excluded.query_text, enabled=true, updated_at=clock_timestamp(), ismigrated=true;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
BIN
cygnus-installer/.DS_Store
vendored
BIN
cygnus-installer/.DS_Store
vendored
Binary file not shown.
@@ -42,8 +42,9 @@ import org.springframework.stereotype.Service;
|
|||||||
public class SwingInstallationWizard {
|
public class SwingInstallationWizard {
|
||||||
|
|
||||||
private static final String WELCOME = "welcome";
|
private static final String WELCOME = "welcome";
|
||||||
|
private static final String DATABASE = "database";
|
||||||
|
private static final String DEPLOYMENT = "deployment";
|
||||||
private static final String DETAILS = "details";
|
private static final String DETAILS = "details";
|
||||||
private static final String RUNTIME = "runtime";
|
|
||||||
private static final String INSTALLING = "installing";
|
private static final String INSTALLING = "installing";
|
||||||
private static final Color ACCENT = new Color(35, 97, 146);
|
private static final Color ACCENT = new Color(35, 97, 146);
|
||||||
private static final Color BACKGROUND = new Color(236, 243, 247);
|
private static final Color BACKGROUND = new Color(236, 243, 247);
|
||||||
@@ -68,7 +69,9 @@ public class SwingInstallationWizard {
|
|||||||
private JPasswordField dockerPassword;
|
private JPasswordField dockerPassword;
|
||||||
private JTextField outputDirectory;
|
private JTextField outputDirectory;
|
||||||
private JTextField containerCloudServiceUrl;
|
private JTextField containerCloudServiceUrl;
|
||||||
private JTextField databaseUrl;
|
private JTextField databaseHost;
|
||||||
|
private JTextField databasePort;
|
||||||
|
private JTextField databaseName;
|
||||||
private JTextField databaseUsername;
|
private JTextField databaseUsername;
|
||||||
private JPasswordField databasePassword;
|
private JPasswordField databasePassword;
|
||||||
private JTextField redisHost;
|
private JTextField redisHost;
|
||||||
@@ -139,8 +142,9 @@ public class SwingInstallationWizard {
|
|||||||
cardPanel = new JPanel(cards);
|
cardPanel = new JPanel(cards);
|
||||||
cardPanel.setBackground(BACKGROUND);
|
cardPanel.setBackground(BACKGROUND);
|
||||||
cardPanel.add(welcomePanel(), WELCOME);
|
cardPanel.add(welcomePanel(), WELCOME);
|
||||||
|
cardPanel.add(databasePanel(), DATABASE);
|
||||||
|
cardPanel.add(deploymentPanel(), DEPLOYMENT);
|
||||||
cardPanel.add(detailsPanel(), DETAILS);
|
cardPanel.add(detailsPanel(), DETAILS);
|
||||||
cardPanel.add(runtimePanel(), RUNTIME);
|
|
||||||
cardPanel.add(installingPanel(), INSTALLING);
|
cardPanel.add(installingPanel(), INSTALLING);
|
||||||
root.add(cardPanel, BorderLayout.CENTER);
|
root.add(cardPanel, BorderLayout.CENTER);
|
||||||
return root;
|
return root;
|
||||||
@@ -197,7 +201,8 @@ public class SwingInstallationWizard {
|
|||||||
JPanel top = new JPanel(new BorderLayout());
|
JPanel top = new JPanel(new BorderLayout());
|
||||||
top.setOpaque(false);
|
top.setOpaque(false);
|
||||||
top.add(heading("Installation details"), BorderLayout.NORTH);
|
top.add(heading("Installation details"), BorderLayout.NORTH);
|
||||||
top.add(text("Enter the activation details supplied by Technobee."), BorderLayout.SOUTH);
|
top.add(text("Review and enter the activation details supplied by Technobee."),
|
||||||
|
BorderLayout.SOUTH);
|
||||||
panel.add(top, BorderLayout.NORTH);
|
panel.add(top, BorderLayout.NORTH);
|
||||||
|
|
||||||
JPanel form = new JPanel(new GridBagLayout());
|
JPanel form = new JPanel(new GridBagLayout());
|
||||||
@@ -209,6 +214,32 @@ public class SwingInstallationWizard {
|
|||||||
licenseKey = new JPasswordField();
|
licenseKey = new JPasswordField();
|
||||||
installationCode = new JTextField();
|
installationCode = new JTextField();
|
||||||
installationName = new JTextField();
|
installationName = new JTextField();
|
||||||
|
int row = 0;
|
||||||
|
row = addField(form, row, "Client code", clientCode, null);
|
||||||
|
row = addField(form, row, "License key", licenseKey, null);
|
||||||
|
row = addField(form, row, "Installation code", installationCode, null);
|
||||||
|
addField(form, row, "Installation name", installationName, null);
|
||||||
|
panel.add(form, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
JButton back = secondaryButton("Back");
|
||||||
|
back.addActionListener(event -> cards.show(cardPanel, DEPLOYMENT));
|
||||||
|
JButton install = primaryButton("Install");
|
||||||
|
install.addActionListener(event -> startInstallation());
|
||||||
|
panel.add(actions(back, install), BorderLayout.SOUTH);
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JPanel deploymentPanel() {
|
||||||
|
JPanel panel = contentPanel();
|
||||||
|
panel.setLayout(new BorderLayout(0, 12));
|
||||||
|
JPanel top = new JPanel(new BorderLayout());
|
||||||
|
top.setOpaque(false);
|
||||||
|
top.add(heading("Docker and deployment"), BorderLayout.NORTH);
|
||||||
|
top.add(text("Configure the container image, registry and deployment location."),
|
||||||
|
BorderLayout.SOUTH);
|
||||||
|
panel.add(top, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
JPanel form = formPanel();
|
||||||
containerCloudServiceUrl =
|
containerCloudServiceUrl =
|
||||||
new JTextField(settings.containerCloudServiceUrl().toString());
|
new JTextField(settings.containerCloudServiceUrl().toString());
|
||||||
containerCloudServiceUrl.setEditable(true);
|
containerCloudServiceUrl.setEditable(true);
|
||||||
@@ -220,10 +251,6 @@ public class SwingInstallationWizard {
|
|||||||
outputDirectory = new JTextField(
|
outputDirectory = new JTextField(
|
||||||
settings.defaultOutputDirectory().toAbsolutePath().normalize().toString());
|
settings.defaultOutputDirectory().toAbsolutePath().normalize().toString());
|
||||||
int row = 0;
|
int row = 0;
|
||||||
row = addField(form, row, "Client code", clientCode, null);
|
|
||||||
row = addField(form, row, "License key", licenseKey, null);
|
|
||||||
row = addField(form, row, "Installation code", installationCode, null);
|
|
||||||
row = addField(form, row, "Installation name", installationName, null);
|
|
||||||
row = addField(
|
row = addField(
|
||||||
form,
|
form,
|
||||||
row,
|
row,
|
||||||
@@ -237,8 +264,11 @@ public class SwingInstallationWizard {
|
|||||||
dockerImage,
|
dockerImage,
|
||||||
null);
|
null);
|
||||||
row = addField(form, row, "Docker registry", dockerRegistry, null);
|
row = addField(form, row, "Docker registry", dockerRegistry, null);
|
||||||
row = addField(form, row, "Docker username", dockerUsername, null);
|
row = addComponentField(
|
||||||
row = addField(form, row, "Docker password", dockerPassword, null);
|
form,
|
||||||
|
row,
|
||||||
|
"Docker credentials",
|
||||||
|
credentialFields(dockerUsername, dockerPassword));
|
||||||
for (String field : profile.optionalInstallationFields()) {
|
for (String field : profile.optionalInstallationFields()) {
|
||||||
JTextField input = new JTextField();
|
JTextField input = new JTextField();
|
||||||
optionalFields.put(field, input);
|
optionalFields.put(field, input);
|
||||||
@@ -254,31 +284,28 @@ public class SwingInstallationWizard {
|
|||||||
panel.add(scroll, BorderLayout.CENTER);
|
panel.add(scroll, BorderLayout.CENTER);
|
||||||
|
|
||||||
JButton back = secondaryButton("Back");
|
JButton back = secondaryButton("Back");
|
||||||
back.addActionListener(event -> cards.show(cardPanel, WELCOME));
|
back.addActionListener(event -> cards.show(cardPanel, DATABASE));
|
||||||
JButton next = primaryButton("Next");
|
JButton next = primaryButton("Next");
|
||||||
next.addActionListener(event -> cards.show(cardPanel, RUNTIME));
|
next.addActionListener(event -> cards.show(cardPanel, DETAILS));
|
||||||
panel.add(actions(back, next), BorderLayout.SOUTH);
|
panel.add(actions(back, next), BorderLayout.SOUTH);
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JPanel runtimePanel() {
|
private JPanel databasePanel() {
|
||||||
JPanel panel = contentPanel();
|
JPanel panel = contentPanel();
|
||||||
panel.setLayout(new BorderLayout(0, 12));
|
panel.setLayout(new BorderLayout(0, 12));
|
||||||
|
|
||||||
JPanel top = new JPanel(new BorderLayout());
|
JPanel top = new JPanel(new BorderLayout());
|
||||||
top.setOpaque(false);
|
top.setOpaque(false);
|
||||||
top.add(heading("Runtime configuration"), BorderLayout.NORTH);
|
top.add(heading("Database and Redis"), BorderLayout.NORTH);
|
||||||
top.add(text("Configure the database and Redis services used by the "
|
top.add(text("Configure the database and Redis services used by the "
|
||||||
+ profile.displayName() + " on-premises container."), BorderLayout.SOUTH);
|
+ profile.displayName() + " on-premises container."), BorderLayout.SOUTH);
|
||||||
panel.add(top, BorderLayout.NORTH);
|
panel.add(top, BorderLayout.NORTH);
|
||||||
|
|
||||||
JPanel form = new JPanel(new GridBagLayout());
|
JPanel form = formPanel();
|
||||||
form.setBackground(PANEL);
|
databaseHost = new JTextField("localhost");
|
||||||
form.setBorder(BorderFactory.createCompoundBorder(
|
databasePort = new JTextField("5432");
|
||||||
BorderFactory.createLineBorder(new Color(205, 217, 225)),
|
databaseName = new JTextField("matrix");
|
||||||
BorderFactory.createEmptyBorder(14, 16, 14, 16)));
|
|
||||||
|
|
||||||
databaseUrl = new JTextField("jdbc:postgresql://localhost:5432/matrix");
|
|
||||||
databaseUsername = new JTextField("postgres");
|
databaseUsername = new JTextField("postgres");
|
||||||
databasePassword = new JPasswordField();
|
databasePassword = new JPasswordField();
|
||||||
redisHost = new JTextField("localhost");
|
redisHost = new JTextField("localhost");
|
||||||
@@ -287,9 +314,16 @@ public class SwingInstallationWizard {
|
|||||||
cloudRequestTimeout = new JTextField("PT10S");
|
cloudRequestTimeout = new JTextField("PT10S");
|
||||||
tokenRefreshSkew = new JTextField("PT30S");
|
tokenRefreshSkew = new JTextField("PT30S");
|
||||||
int row = 0;
|
int row = 0;
|
||||||
row = addField(form, row, "Database URL", databaseUrl, null);
|
row = addComponentField(
|
||||||
row = addField(form, row, "Database username", databaseUsername, null);
|
form,
|
||||||
row = addField(form, row, "Database password", databasePassword, null);
|
row,
|
||||||
|
"Database",
|
||||||
|
databaseConnectionFields());
|
||||||
|
row = addComponentField(
|
||||||
|
form,
|
||||||
|
row,
|
||||||
|
"Database credentials",
|
||||||
|
credentialFields(databaseUsername, databasePassword));
|
||||||
row = addField(form, row, "Redis host", redisHost, null);
|
row = addField(form, row, "Redis host", redisHost, null);
|
||||||
row = addField(form, row, "Redis port", redisPort, null);
|
row = addField(form, row, "Redis port", redisPort, null);
|
||||||
row = addField(form, row, "Redis password", redisPassword, null);
|
row = addField(form, row, "Redis password", redisPassword, null);
|
||||||
@@ -304,10 +338,10 @@ public class SwingInstallationWizard {
|
|||||||
panel.add(form, BorderLayout.CENTER);
|
panel.add(form, BorderLayout.CENTER);
|
||||||
|
|
||||||
JButton back = secondaryButton("Back");
|
JButton back = secondaryButton("Back");
|
||||||
back.addActionListener(event -> cards.show(cardPanel, DETAILS));
|
back.addActionListener(event -> cards.show(cardPanel, WELCOME));
|
||||||
JButton install = primaryButton("Install");
|
JButton next = primaryButton("Next");
|
||||||
install.addActionListener(event -> startInstallation());
|
next.addActionListener(event -> cards.show(cardPanel, DEPLOYMENT));
|
||||||
panel.add(actions(back, install), BorderLayout.SOUTH);
|
panel.add(actions(back, next), BorderLayout.SOUTH);
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -373,7 +407,7 @@ public class SwingInstallationWizard {
|
|||||||
progressBar.setValue(0);
|
progressBar.setValue(0);
|
||||||
progressPercentage.setText("0%");
|
progressPercentage.setText("0%");
|
||||||
progressMessage.setText("Preparing installation");
|
progressMessage.setText("Preparing installation");
|
||||||
cards.show(cardPanel, RUNTIME);
|
cards.show(cardPanel, DEPLOYMENT);
|
||||||
containerCloudServiceUrl.requestFocusInWindow();
|
containerCloudServiceUrl.requestFocusInWindow();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -415,8 +449,8 @@ public class SwingInstallationWizard {
|
|||||||
button.setText("Check Docker and continue");
|
button.setText("Check Docker and continue");
|
||||||
try {
|
try {
|
||||||
get();
|
get();
|
||||||
cards.show(cardPanel, DETAILS);
|
cards.show(cardPanel, DATABASE);
|
||||||
clientCode.requestFocusInWindow();
|
databaseHost.requestFocusInWindow();
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
showError(message(exception));
|
showError(message(exception));
|
||||||
}
|
}
|
||||||
@@ -445,7 +479,12 @@ public class SwingInstallationWizard {
|
|||||||
optionalValues(),
|
optionalValues(),
|
||||||
new RuntimeConfiguration(
|
new RuntimeConfiguration(
|
||||||
containerCloudServiceUrl.getText(),
|
containerCloudServiceUrl.getText(),
|
||||||
databaseUrl.getText(),
|
"jdbc:postgresql://"
|
||||||
|
+ databaseHost.getText().trim()
|
||||||
|
+ ":"
|
||||||
|
+ databasePort.getText().trim()
|
||||||
|
+ "/"
|
||||||
|
+ databaseName.getText().trim(),
|
||||||
databaseUsername.getText(),
|
databaseUsername.getText(),
|
||||||
new String(databaseSecret),
|
new String(databaseSecret),
|
||||||
redisHost.getText(),
|
redisHost.getText(),
|
||||||
@@ -559,7 +598,9 @@ public class SwingInstallationWizard {
|
|||||||
validateAbsoluteHttpUrl(
|
validateAbsoluteHttpUrl(
|
||||||
runtime.containerCloudServiceUrl(),
|
runtime.containerCloudServiceUrl(),
|
||||||
"Container cloud service URL");
|
"Container cloud service URL");
|
||||||
if (runtime.databaseUrl().isBlank()
|
if (databaseHost.getText().isBlank()
|
||||||
|
|| databasePort.getText().isBlank()
|
||||||
|
|| databaseName.getText().isBlank()
|
||||||
|| runtime.databaseUsername().isBlank()
|
|| runtime.databaseUsername().isBlank()
|
||||||
|| runtime.databasePassword().isBlank()) {
|
|| runtime.databasePassword().isBlank()) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
@@ -632,6 +673,95 @@ public class SwingInstallationWizard {
|
|||||||
return row + 1;
|
return row + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int addComponentField(
|
||||||
|
JPanel form,
|
||||||
|
int row,
|
||||||
|
String label,
|
||||||
|
Component input) {
|
||||||
|
GridBagConstraints labelConstraints = constraints(0, row);
|
||||||
|
labelConstraints.weightx = 0;
|
||||||
|
labelConstraints.fill = GridBagConstraints.NONE;
|
||||||
|
labelConstraints.anchor = GridBagConstraints.LINE_START;
|
||||||
|
JLabel fieldLabel = new JLabel(label);
|
||||||
|
fieldLabel.setFont(fieldLabel.getFont().deriveFont(Font.BOLD, 12f));
|
||||||
|
form.add(fieldLabel, labelConstraints);
|
||||||
|
|
||||||
|
GridBagConstraints inputConstraints = constraints(1, row);
|
||||||
|
inputConstraints.weightx = 1;
|
||||||
|
inputConstraints.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
form.add(input, inputConstraints);
|
||||||
|
return row + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JPanel formPanel() {
|
||||||
|
JPanel form = new JPanel(new GridBagLayout());
|
||||||
|
form.setBackground(PANEL);
|
||||||
|
form.setBorder(BorderFactory.createCompoundBorder(
|
||||||
|
BorderFactory.createLineBorder(new Color(205, 217, 225)),
|
||||||
|
BorderFactory.createEmptyBorder(14, 16, 14, 16)));
|
||||||
|
return form;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JPanel databaseConnectionFields() {
|
||||||
|
JPanel fields = inlineFieldsPanel();
|
||||||
|
addInlineField(fields, databaseHost, 0, 0.50);
|
||||||
|
addInlineSeparator(fields, ":", 1);
|
||||||
|
addInlineField(fields, databasePort, 2, 0.15);
|
||||||
|
addInlineSeparator(fields, "/", 3);
|
||||||
|
addInlineField(fields, databaseName, 4, 0.35);
|
||||||
|
databaseHost.setToolTipText("Database host");
|
||||||
|
databasePort.setToolTipText("Database port");
|
||||||
|
databaseName.setToolTipText("Database name");
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JPanel credentialFields(JTextField username, JTextField password) {
|
||||||
|
JPanel fields = inlineFieldsPanel();
|
||||||
|
addInlineLabel(fields, "Username", 0);
|
||||||
|
addInlineField(fields, username, 1, 0.5);
|
||||||
|
addInlineLabel(fields, "Password", 2);
|
||||||
|
addInlineField(fields, password, 3, 0.5);
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JPanel inlineFieldsPanel() {
|
||||||
|
JPanel fields = new JPanel(new GridBagLayout());
|
||||||
|
fields.setOpaque(false);
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addInlineField(
|
||||||
|
JPanel panel,
|
||||||
|
JTextField field,
|
||||||
|
int column,
|
||||||
|
double weight) {
|
||||||
|
GridBagConstraints constraints = new GridBagConstraints();
|
||||||
|
constraints.gridx = column;
|
||||||
|
constraints.weightx = weight;
|
||||||
|
constraints.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
constraints.insets = new Insets(0, column == 0 ? 0 : 5, 0, 0);
|
||||||
|
field.setPreferredSize(new Dimension(120, 29));
|
||||||
|
panel.add(field, constraints);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addInlineLabel(JPanel panel, String text, int column) {
|
||||||
|
GridBagConstraints constraints = new GridBagConstraints();
|
||||||
|
constraints.gridx = column;
|
||||||
|
constraints.weightx = 0;
|
||||||
|
constraints.insets = new Insets(0, column == 0 ? 0 : 12, 0, 5);
|
||||||
|
JLabel label = new JLabel(text);
|
||||||
|
label.setForeground(new Color(75, 88, 99));
|
||||||
|
panel.add(label, constraints);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addInlineSeparator(JPanel panel, String text, int column) {
|
||||||
|
GridBagConstraints constraints = new GridBagConstraints();
|
||||||
|
constraints.gridx = column;
|
||||||
|
constraints.weightx = 0;
|
||||||
|
constraints.insets = new Insets(0, 5, 0, 0);
|
||||||
|
panel.add(new JLabel(text), constraints);
|
||||||
|
}
|
||||||
|
|
||||||
private GridBagConstraints constraints(int column, int row) {
|
private GridBagConstraints constraints(int column, int row) {
|
||||||
GridBagConstraints constraints = new GridBagConstraints();
|
GridBagConstraints constraints = new GridBagConstraints();
|
||||||
constraints.gridx = column;
|
constraints.gridx = column;
|
||||||
@@ -664,6 +794,7 @@ public class SwingInstallationWizard {
|
|||||||
JLabel label = new JLabel(value);
|
JLabel label = new JLabel(value);
|
||||||
label.setFont(label.getFont().deriveFont(Font.BOLD, 19f));
|
label.setFont(label.getFont().deriveFont(Font.BOLD, 19f));
|
||||||
label.setForeground(new Color(35, 48, 58));
|
label.setForeground(new Color(35, 48, 58));
|
||||||
|
label.setAlignmentX(Component.LEFT_ALIGNMENT);
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -677,6 +808,7 @@ public class SwingInstallationWizard {
|
|||||||
private JPanel summaryRow(String label, String value) {
|
private JPanel summaryRow(String label, String value) {
|
||||||
JPanel row = new JPanel(new BorderLayout(18, 0));
|
JPanel row = new JPanel(new BorderLayout(18, 0));
|
||||||
row.setOpaque(false);
|
row.setOpaque(false);
|
||||||
|
row.setAlignmentX(Component.LEFT_ALIGNMENT);
|
||||||
row.setBorder(BorderFactory.createEmptyBorder(7, 0, 7, 0));
|
row.setBorder(BorderFactory.createEmptyBorder(7, 0, 7, 0));
|
||||||
JLabel name = new JLabel(label);
|
JLabel name = new JLabel(label);
|
||||||
name.setPreferredSize(new Dimension(130, 20));
|
name.setPreferredSize(new Dimension(130, 20));
|
||||||
@@ -691,7 +823,8 @@ public class SwingInstallationWizard {
|
|||||||
JPanel row = new JPanel(new BorderLayout(18, 0));
|
JPanel row = new JPanel(new BorderLayout(18, 0));
|
||||||
row.setOpaque(false);
|
row.setOpaque(false);
|
||||||
row.setAlignmentX(Component.LEFT_ALIGNMENT);
|
row.setAlignmentX(Component.LEFT_ALIGNMENT);
|
||||||
row.setMaximumSize(new Dimension(Integer.MAX_VALUE, 34));
|
row.setBorder(BorderFactory.createEmptyBorder(7, 0, 7, 0));
|
||||||
|
row.setMaximumSize(new Dimension(Integer.MAX_VALUE, 42));
|
||||||
JLabel name = new JLabel(label);
|
JLabel name = new JLabel(label);
|
||||||
name.setFont(name.getFont().deriveFont(Font.BOLD));
|
name.setFont(name.getFont().deriveFont(Font.BOLD));
|
||||||
name.setPreferredSize(new Dimension(130, 28));
|
name.setPreferredSize(new Dimension(130, 28));
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public class TechnobeeServiceInstallerApplication implements CommandLineRunner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
disableAccidentalSpringDebug(args);
|
||||||
SpringApplication application =
|
SpringApplication application =
|
||||||
new SpringApplication(TechnobeeServiceInstallerApplication.class);
|
new SpringApplication(TechnobeeServiceInstallerApplication.class);
|
||||||
application.setWebApplicationType(WebApplicationType.NONE);
|
application.setWebApplicationType(WebApplicationType.NONE);
|
||||||
@@ -39,6 +40,18 @@ public class TechnobeeServiceInstallerApplication implements CommandLineRunner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void disableAccidentalSpringDebug(String[] args) {
|
||||||
|
boolean debugRequested = Arrays.stream(args)
|
||||||
|
.anyMatch(argument -> "--debug".equals(argument)
|
||||||
|
|| "--debug=true".equalsIgnoreCase(argument));
|
||||||
|
if (!debugRequested && System.getProperty("debug") == null) {
|
||||||
|
// DEBUG is commonly exported by developer tools with non-boolean
|
||||||
|
// values. Spring maps it to its own debug switch unless a more
|
||||||
|
// specific system property is present.
|
||||||
|
System.setProperty("debug", "false");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(String... args) {
|
public void run(String... args) {
|
||||||
boolean cli = Arrays.asList(args).contains("--cli");
|
boolean cli = Arrays.asList(args).contains("--cli");
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.cygnus.installer;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class TechnobeeServiceInstallerApplicationTest {
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
void clearDebugProperty() {
|
||||||
|
System.clearProperty("debug");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void disablesDebugUnlessExplicitlyRequested() {
|
||||||
|
TechnobeeServiceInstallerApplication.disableAccidentalSpringDebug(new String[0]);
|
||||||
|
|
||||||
|
assertThat(System.getProperty("debug")).isEqualTo("false");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void preservesExplicitDebugRequest() {
|
||||||
|
TechnobeeServiceInstallerApplication.disableAccidentalSpringDebug(
|
||||||
|
new String[] {"--debug"});
|
||||||
|
|
||||||
|
assertThat(System.getProperty("debug")).isNull();
|
||||||
|
}
|
||||||
|
}
|
||||||
47
cygnus-lib/pom.xml
Normal file
47
cygnus-lib/pom.xml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.cygnus</groupId>
|
||||||
|
<artifactId>cygnus-parent</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<artifactId>cygnus-lib</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>Cygnus Shared Library</name>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<version>${junit.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<annotationProcessorPaths>
|
||||||
|
<path>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</path>
|
||||||
|
</annotationProcessorPaths>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
110
cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java
Normal file
110
cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
package lib.constants;
|
||||||
|
|
||||||
|
/** Canonical user-facing messages shared by Cygnus applications. */
|
||||||
|
public enum ApplicationMessage {
|
||||||
|
BAD_REQUEST(400, "HTTP-400", "Invalid request",
|
||||||
|
"Cygnus could not process the submitted request.",
|
||||||
|
"Review the supplied information and try again."),
|
||||||
|
SESSION_REQUIRED(401, "AUTH-401", "Sign in required",
|
||||||
|
"Your session is missing or has expired.",
|
||||||
|
"Sign in again to continue securely."),
|
||||||
|
ACCESS_DENIED(403, "AUTH-403", "Access denied",
|
||||||
|
"You do not have permission to open this page.",
|
||||||
|
"Contact your administrator if this feature should be available to you."),
|
||||||
|
PAGE_NOT_FOUND(404, "HTTP-404", "Page not found",
|
||||||
|
"The requested page could not be found.",
|
||||||
|
"Check the address or return to the application dashboard."),
|
||||||
|
METHOD_NOT_ALLOWED(405, "HTTP-405", "Action not allowed",
|
||||||
|
"This page does not support the requested action.",
|
||||||
|
"Return to the previous page and try an available action."),
|
||||||
|
CONFLICT(409, "HTTP-409", "Request conflict",
|
||||||
|
"The request conflicts with the current state of the data.",
|
||||||
|
"Refresh the page and try again."),
|
||||||
|
PAYLOAD_TOO_LARGE(413, "HTTP-413", "File is too large",
|
||||||
|
"The submitted content exceeds the permitted size.",
|
||||||
|
"Reduce the file size and try again."),
|
||||||
|
TOO_MANY_REQUESTS(429, "HTTP-429", "Too many requests",
|
||||||
|
"Cygnus has received too many requests in a short period.",
|
||||||
|
"Wait briefly before trying again."),
|
||||||
|
PAYLOAD_INVALID(400, "REQ-4001", "Invalid request details",
|
||||||
|
"The encrypted request could not be verified.",
|
||||||
|
"Refresh the page and submit the form again."),
|
||||||
|
APPLICATION_VALIDATION_FAILED(422, "APP-4221", "Application validation failed",
|
||||||
|
"One or more application fields contain invalid information.",
|
||||||
|
"Correct the highlighted fields and submit the application again."),
|
||||||
|
APPLICATION_ACCESS_DENIED(403, "APP-4031", "Application access denied",
|
||||||
|
"The selected portfolio or application is not available to your account.",
|
||||||
|
"Select an authorized portfolio or contact your administrator."),
|
||||||
|
APPLICATION_SAVE_CONFLICT(409, "APP-4091", "Application save conflict",
|
||||||
|
"This request was already processed or the application changed.",
|
||||||
|
"Refresh the application before submitting it again."),
|
||||||
|
APPLICATION_SAVED(200, "APP-2001", "Application saved",
|
||||||
|
"The application details were saved successfully.", ""),
|
||||||
|
APPLICATIONS_LOADED(200, "APP-2002", "Applications loaded",
|
||||||
|
"The application records were loaded successfully.", ""),
|
||||||
|
DEDUPE_CHECK_COMPLETED(200, "DDP-2001", "Dedupe check completed",
|
||||||
|
"The dedupe check completed successfully.", ""),
|
||||||
|
DEDUPE_CHECK_FAILED(500, "DDP-5001", "Dedupe check failed",
|
||||||
|
"Cygnus could not complete the dedupe check.",
|
||||||
|
"Try again. If the issue continues, contact support."),
|
||||||
|
DEDUPE_DETAILS_LOADED(200, "DDP-2002", "Dedupe details loaded",
|
||||||
|
"Matching records were loaded successfully.", ""),
|
||||||
|
DEDUPE_DETAILS_SAVED(200, "DDP-2003", "Dedupe details saved",
|
||||||
|
"Dedupe remarks were saved successfully.", ""),
|
||||||
|
APPLICATION_LOAD_FAILED(500, "APP-5002", "Applications could not be loaded",
|
||||||
|
"Cygnus could not load the application details.",
|
||||||
|
"Try again. If the issue continues, share the reference ID with support."),
|
||||||
|
APPLICATION_SAVE_FAILED(500, "APP-5001", "Application could not be saved",
|
||||||
|
"Cygnus could not save the application details.",
|
||||||
|
"Try again. If the issue continues, share the reference ID with support."),
|
||||||
|
INTERNAL_SERVER_ERROR(500, "HTTP-500", "Something went wrong",
|
||||||
|
"Cygnus could not complete your request.",
|
||||||
|
"Try again. If the issue continues, share the reference ID with support."),
|
||||||
|
BAD_GATEWAY(502, "HTTP-502", "Service response unavailable",
|
||||||
|
"A required service returned an invalid response.",
|
||||||
|
"Try again shortly. If the issue continues, contact support."),
|
||||||
|
SERVICE_UNAVAILABLE(503, "HTTP-503", "Service temporarily unavailable",
|
||||||
|
"A required Cygnus service is currently unavailable.",
|
||||||
|
"Wait briefly and try again."),
|
||||||
|
GATEWAY_TIMEOUT(504, "HTTP-504", "Service response timed out",
|
||||||
|
"A required service took too long to respond.",
|
||||||
|
"Try the request again shortly.");
|
||||||
|
|
||||||
|
private final int httpStatus;
|
||||||
|
private final String code;
|
||||||
|
private final String title;
|
||||||
|
private final String message;
|
||||||
|
private final String description;
|
||||||
|
|
||||||
|
ApplicationMessage(
|
||||||
|
int httpStatus, String code, String title, String message, String description) {
|
||||||
|
this.httpStatus = httpStatus;
|
||||||
|
this.code = code;
|
||||||
|
this.title = title;
|
||||||
|
this.message = message;
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ApplicationMessage fromHttpStatus(int status) {
|
||||||
|
return switch (status) {
|
||||||
|
case 400 -> BAD_REQUEST;
|
||||||
|
case 401 -> SESSION_REQUIRED;
|
||||||
|
case 403 -> ACCESS_DENIED;
|
||||||
|
case 404 -> PAGE_NOT_FOUND;
|
||||||
|
case 405 -> METHOD_NOT_ALLOWED;
|
||||||
|
case 409 -> CONFLICT;
|
||||||
|
case 413 -> PAYLOAD_TOO_LARGE;
|
||||||
|
case 429 -> TOO_MANY_REQUESTS;
|
||||||
|
case 502 -> BAD_GATEWAY;
|
||||||
|
case 503 -> SERVICE_UNAVAILABLE;
|
||||||
|
case 504 -> GATEWAY_TIMEOUT;
|
||||||
|
default -> INTERNAL_SERVER_ERROR;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHttpStatus() { return httpStatus; }
|
||||||
|
public String getCode() { return code; }
|
||||||
|
public String getTitle() { return title; }
|
||||||
|
public String getMessage() { return message; }
|
||||||
|
public String getDescription() { return description; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package lib.exceptions;
|
||||||
|
|
||||||
|
import lib.constants.ApplicationMessage;
|
||||||
|
|
||||||
|
/** Single typed application exception carrying a safe user-facing message. */
|
||||||
|
public class ApplicationException extends RuntimeException {
|
||||||
|
private final ApplicationMessage applicationMessage;
|
||||||
|
|
||||||
|
public ApplicationException(ApplicationMessage message, String technicalMessage) {
|
||||||
|
super(technicalMessage);
|
||||||
|
this.applicationMessage = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApplicationException(ApplicationMessage message, String technicalMessage, Throwable cause) {
|
||||||
|
super(technicalMessage, cause);
|
||||||
|
this.applicationMessage = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApplicationMessage getApplicationMessage() { return applicationMessage; }
|
||||||
|
}
|
||||||
16
cygnus-lib/src/main/java/lib/models/Allocation.java
Normal file
16
cygnus-lib/src/main/java/lib/models/Allocation.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Allocation {
|
||||||
|
private List<CutOffRecord> allocationlist = new ArrayList<>();
|
||||||
|
private String allocTime;
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
}
|
||||||
12
cygnus-lib/src/main/java/lib/models/ApiResponse.java
Normal file
12
cygnus-lib/src/main/java/lib/models/ApiResponse.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
/** Consistent API response contract for every migrated workflow. */
|
||||||
|
public record ApiResponse<T>(boolean success, T data, MessageDetails message) {
|
||||||
|
public static <T> ApiResponse<T> success(T data, MessageDetails message) {
|
||||||
|
return new ApiResponse<>(true, data, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ApiResponse<T> failure(MessageDetails message) {
|
||||||
|
return new ApiResponse<>(false, null, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
87
cygnus-lib/src/main/java/lib/models/ApplicationDetails.java
Normal file
87
cygnus-lib/src/main/java/lib/models/ApplicationDetails.java
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/** User-editable case initiation data. Identity and audit fields come from UserSession. */
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class ApplicationDetails implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer applicationId;
|
||||||
|
private Short portfolioId;
|
||||||
|
private Short bankBranchId;
|
||||||
|
private String applicationNumber;
|
||||||
|
private String bankCode;
|
||||||
|
private String product;
|
||||||
|
private String loanAmount;
|
||||||
|
private String customerName;
|
||||||
|
private String fatherName;
|
||||||
|
private String applicationType;
|
||||||
|
private String category;
|
||||||
|
private String dateOfBirth;
|
||||||
|
private String contactPerson;
|
||||||
|
private String mobileNumber;
|
||||||
|
private String specialInstruction;
|
||||||
|
|
||||||
|
private Boolean residenceVerification;
|
||||||
|
private Boolean residenceTelephoneVerification;
|
||||||
|
private Boolean officeVerification;
|
||||||
|
private Boolean officeTelephoneVerification;
|
||||||
|
private Boolean propertyVerification;
|
||||||
|
private Boolean referenceVerification;
|
||||||
|
private Boolean documentVerification;
|
||||||
|
private Boolean residenceCoApplicant;
|
||||||
|
private Boolean residenceCoProprietor;
|
||||||
|
private Boolean officeCoProprietor;
|
||||||
|
private Boolean sameResidenceAddress;
|
||||||
|
private Boolean sameOfficeAddress;
|
||||||
|
private Boolean samePropertyAddress;
|
||||||
|
|
||||||
|
private String residenceAddress1;
|
||||||
|
private String residenceAddress2;
|
||||||
|
private String residenceAddress3;
|
||||||
|
private String residenceLandmark;
|
||||||
|
private Integer residenceColonyId;
|
||||||
|
private String residenceCity;
|
||||||
|
private String residencePincode;
|
||||||
|
private String residencePhone;
|
||||||
|
|
||||||
|
private String companyName;
|
||||||
|
private String officeAddress1;
|
||||||
|
private String officeAddress2;
|
||||||
|
private String officeAddress3;
|
||||||
|
private String officeLandmark;
|
||||||
|
private Integer officeColonyId;
|
||||||
|
private String officeCity;
|
||||||
|
private String officePincode;
|
||||||
|
private String department;
|
||||||
|
private String designation;
|
||||||
|
private String officePhone;
|
||||||
|
private String extension;
|
||||||
|
|
||||||
|
private String propertyAddress1;
|
||||||
|
private String propertyAddress2;
|
||||||
|
private String propertyAddress3;
|
||||||
|
private String propertyLandmark;
|
||||||
|
private Integer propertyColonyId;
|
||||||
|
private String propertyCity;
|
||||||
|
private String propertyPincode;
|
||||||
|
|
||||||
|
private String referenceName1;
|
||||||
|
private String referenceAddress1;
|
||||||
|
private String referenceContactNumber1;
|
||||||
|
private String referenceName2;
|
||||||
|
private String referenceAddress2;
|
||||||
|
private String referenceContactNumber2;
|
||||||
|
|
||||||
|
private Map<String, String> dynamicFields = new LinkedHashMap<>();
|
||||||
|
private Boolean autoCutOff;
|
||||||
|
private Integer formMode;
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
/** Data returned after saving a loan-verification application. */
|
||||||
|
public record ApplicationSaveData(String operation, Integer applicationId, String mvCode) {}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/** Result row returned by the application-save database operation. */
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ApplicationSaveResult {
|
||||||
|
private String operation;
|
||||||
|
private Integer applicationId;
|
||||||
|
private String mvCode;
|
||||||
|
private String internalUuid;
|
||||||
|
}
|
||||||
13
cygnus-lib/src/main/java/lib/models/CaseGrid.java
Normal file
13
cygnus-lib/src/main/java/lib/models/CaseGrid.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CaseGrid {
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private boolean processFlag;
|
||||||
|
private String portfolioId;
|
||||||
|
private String caseID;
|
||||||
|
}
|
||||||
23
cygnus-lib/src/main/java/lib/models/CasePunching.java
Normal file
23
cygnus-lib/src/main/java/lib/models/CasePunching.java
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class CasePunching {
|
||||||
|
private MessageDetails messageDetails;
|
||||||
|
private Map<String, String> optionsl;
|
||||||
|
private Map<String, List<Option>> options;
|
||||||
|
private List<String> visibleSections;
|
||||||
|
private Short portfolioId;
|
||||||
|
private Integer formMode;
|
||||||
|
private String userId;
|
||||||
|
private String dynamicFields;
|
||||||
|
private String dynamicHtml;
|
||||||
|
private String verificationCaseId;
|
||||||
|
private String documentCaseId;
|
||||||
|
}
|
||||||
11
cygnus-lib/src/main/java/lib/models/CaseSaveRequest.java
Normal file
11
cygnus-lib/src/main/java/lib/models/CaseSaveRequest.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
/** Hybrid RSA-OAEP/AES-GCM envelope submitted by the initiation page. */
|
||||||
|
public record CaseSaveRequest(
|
||||||
|
String keyId,
|
||||||
|
String encryptedKey,
|
||||||
|
String initializationVector,
|
||||||
|
String encryptedPayload,
|
||||||
|
String requestId,
|
||||||
|
String timestamp) {
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/CutOffList.java
Normal file
17
cygnus-lib/src/main/java/lib/models/CutOffList.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CutOffList {
|
||||||
|
private List<CutOffRecord> cofflist = new ArrayList<>();
|
||||||
|
private String cutoffTime;
|
||||||
|
private String batch;
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
}
|
||||||
41
cygnus-lib/src/main/java/lib/models/CutOffRecord.java
Normal file
41
cygnus-lib/src/main/java/lib/models/CutOffRecord.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CutOffRecord {
|
||||||
|
private List<CutOffRecord> sublist = new ArrayList<>();
|
||||||
|
private String portfolioid;
|
||||||
|
private String portname;
|
||||||
|
private String customername;
|
||||||
|
private String apptype;
|
||||||
|
private String mvcode;
|
||||||
|
private String applno;
|
||||||
|
private boolean allocation;
|
||||||
|
private boolean sms;
|
||||||
|
private boolean telesheet;
|
||||||
|
private boolean earlier;
|
||||||
|
private boolean negative;
|
||||||
|
private int islocked;
|
||||||
|
private String lockedby;
|
||||||
|
private boolean docut;
|
||||||
|
private int ischanged;
|
||||||
|
private int totrv;
|
||||||
|
private int totov;
|
||||||
|
private int totpv;
|
||||||
|
private int totrtv;
|
||||||
|
private int tototv;
|
||||||
|
private int totref;
|
||||||
|
private boolean tv;
|
||||||
|
private boolean oprsend;
|
||||||
|
private String resiloc;
|
||||||
|
private String offloc;
|
||||||
|
private String proploc;
|
||||||
|
private String uuid;
|
||||||
|
private String repformat;
|
||||||
|
private String repfunction;
|
||||||
|
private String message;
|
||||||
|
private String portgroup;
|
||||||
|
}
|
||||||
21
cygnus-lib/src/main/java/lib/models/DedupeBatch.java
Normal file
21
cygnus-lib/src/main/java/lib/models/DedupeBatch.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DedupeBatch {
|
||||||
|
private List<DedupeCase> cases = new ArrayList<>();
|
||||||
|
private String cutoffKey;
|
||||||
|
private String cutoffon;
|
||||||
|
private int totalAddresses;
|
||||||
|
private int totalCases;
|
||||||
|
private int islocked;
|
||||||
|
private String lockedby;
|
||||||
|
private Integer lockOwnerId;
|
||||||
|
}
|
||||||
22
cygnus-lib/src/main/java/lib/models/DedupeCase.java
Normal file
22
cygnus-lib/src/main/java/lib/models/DedupeCase.java
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DedupeCase {
|
||||||
|
private String mvcode;
|
||||||
|
private String applno;
|
||||||
|
private String customername;
|
||||||
|
private String apptype;
|
||||||
|
private String uuid;
|
||||||
|
private int totrv;
|
||||||
|
private int totov;
|
||||||
|
private int totpv;
|
||||||
|
private String earlier;
|
||||||
|
private String negative;
|
||||||
|
private String lockedby;
|
||||||
|
}
|
||||||
20
cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java
Normal file
20
cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DedupeCaseSummary {
|
||||||
|
private String documentCaseId;
|
||||||
|
private Integer portfolioId;
|
||||||
|
private String mvCode;
|
||||||
|
private String fileNumber;
|
||||||
|
private String customerName;
|
||||||
|
private String applicationType;
|
||||||
|
private int residenceVisits;
|
||||||
|
private int officeVisits;
|
||||||
|
private int propertyVisits;
|
||||||
|
private String receivedOn;
|
||||||
|
private String done;
|
||||||
|
}
|
||||||
3
cygnus-lib/src/main/java/lib/models/DedupeCheckData.java
Normal file
3
cygnus-lib/src/main/java/lib/models/DedupeCheckData.java
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
public record DedupeCheckData(String documentCaseId, int operation) { }
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
public record DedupeCheckRequest(String documentCaseId, int operation) { }
|
||||||
20
cygnus-lib/src/main/java/lib/models/DedupeDetails.java
Normal file
20
cygnus-lib/src/main/java/lib/models/DedupeDetails.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DedupeDetails {
|
||||||
|
private String sessuuid;
|
||||||
|
private String uuid;
|
||||||
|
private String mvcode;
|
||||||
|
private String customername;
|
||||||
|
private String dob;
|
||||||
|
private String mobile;
|
||||||
|
private String resiaddress;
|
||||||
|
private String offaddress;
|
||||||
|
private String resiphone;
|
||||||
|
private String offphone;
|
||||||
|
private String earremarks;
|
||||||
|
private String negremarks;
|
||||||
|
private String category;
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java
Normal file
17
cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DedupeMatchRecord {
|
||||||
|
private String dedupeType;
|
||||||
|
private String foundOn;
|
||||||
|
private String remarks;
|
||||||
|
private String customerName;
|
||||||
|
private String dob;
|
||||||
|
private String residenceAddress;
|
||||||
|
private String officeAddress;
|
||||||
|
private String residencePhone;
|
||||||
|
private String officePhone;
|
||||||
|
private String mobile;
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/DedupeRun.java
Normal file
17
cygnus-lib/src/main/java/lib/models/DedupeRun.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DedupeRun {
|
||||||
|
private List<DedupeBatch> batches = new ArrayList<>();
|
||||||
|
private String dedcutTime;
|
||||||
|
private String errMsg;
|
||||||
|
private String csrfToken;
|
||||||
|
}
|
||||||
21
cygnus-lib/src/main/java/lib/models/DedupeSendCase.java
Normal file
21
cygnus-lib/src/main/java/lib/models/DedupeSendCase.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DedupeSendCase {
|
||||||
|
private String uuid;
|
||||||
|
private String mvcode;
|
||||||
|
private String applno;
|
||||||
|
private String customername;
|
||||||
|
private String apptype;
|
||||||
|
private String product;
|
||||||
|
private String earlier;
|
||||||
|
private String negative;
|
||||||
|
private String deduperunon;
|
||||||
|
private String bkbranchname;
|
||||||
|
private String fid;
|
||||||
|
private int dqid;
|
||||||
|
private String portname;
|
||||||
|
private String supervisor;
|
||||||
|
}
|
||||||
16
cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java
Normal file
16
cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DedupeWorkspace {
|
||||||
|
private Integer portfolioId;
|
||||||
|
private List<Option> portfolios = new ArrayList<>();
|
||||||
|
private List<DedupeCaseSummary> cases = new ArrayList<>();
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/** Existing application details used by the case-initiation duplicate checks. */
|
||||||
|
public record DuplicateDetailsData(List<Map<String, Object>> records) {
|
||||||
|
public DuplicateDetailsData {
|
||||||
|
records = records == null ? List.of() : records.stream()
|
||||||
|
.map(record -> Collections.unmodifiableMap(new LinkedHashMap<>(record)))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
19
cygnus-lib/src/main/java/lib/models/EditCaseSummary.java
Normal file
19
cygnus-lib/src/main/java/lib/models/EditCaseSummary.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class EditCaseSummary {
|
||||||
|
private String documentCaseId;
|
||||||
|
private String mvCode;
|
||||||
|
private String fileNumber;
|
||||||
|
private String customerName;
|
||||||
|
private String applicationType;
|
||||||
|
private String product;
|
||||||
|
private String receivedOn;
|
||||||
|
private String punchedBy;
|
||||||
|
private String branchCode;
|
||||||
|
private Short portfolioId;
|
||||||
|
}
|
||||||
10
cygnus-lib/src/main/java/lib/models/LocalityData.java
Normal file
10
cygnus-lib/src/main/java/lib/models/LocalityData.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/** Localities returned to the case-initiation autocomplete. */
|
||||||
|
public record LocalityData(List<LocalityOption> localities) {
|
||||||
|
public LocalityData {
|
||||||
|
localities = localities == null ? List.of() : List.copyOf(localities);
|
||||||
|
}
|
||||||
|
}
|
||||||
4
cygnus-lib/src/main/java/lib/models/LocalityOption.java
Normal file
4
cygnus-lib/src/main/java/lib/models/LocalityOption.java
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
/** One company-authorized locality autocomplete result. */
|
||||||
|
public record LocalityOption(Integer id, String location, String pincode, String city) {}
|
||||||
58
cygnus-lib/src/main/java/lib/models/MessageDetails.java
Normal file
58
cygnus-lib/src/main/java/lib/models/MessageDetails.java
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lib.constants.ApplicationMessage;
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.UUID;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/** Dependency-free error information shared across Cygnus modules. */
|
||||||
|
@Getter
|
||||||
|
public final class MessageDetails implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private final int httpStatus;
|
||||||
|
private final String code;
|
||||||
|
private final String title;
|
||||||
|
private final String message;
|
||||||
|
private final String description;
|
||||||
|
private final String referenceId;
|
||||||
|
private final Instant timestamp;
|
||||||
|
|
||||||
|
public MessageDetails(ApplicationMessage message) {
|
||||||
|
this(message.getHttpStatus(), message.getCode(), message.getTitle(),
|
||||||
|
message.getMessage(), message.getDescription(),
|
||||||
|
UUID.randomUUID().toString(), Instant.now());
|
||||||
|
}
|
||||||
|
|
||||||
|
private MessageDetails(
|
||||||
|
int httpStatus,
|
||||||
|
String code,
|
||||||
|
String title,
|
||||||
|
String message,
|
||||||
|
String description,
|
||||||
|
String referenceId,
|
||||||
|
Instant timestamp) {
|
||||||
|
if (httpStatus < 100 || httpStatus > 599) {
|
||||||
|
throw new IllegalArgumentException("HTTP status must be between 100 and 599");
|
||||||
|
}
|
||||||
|
this.httpStatus = httpStatus;
|
||||||
|
this.code = required(code, "code");
|
||||||
|
this.title = required(title, "title");
|
||||||
|
this.message = required(message, "message");
|
||||||
|
this.description = description == null ? "" : description.trim();
|
||||||
|
this.referenceId = required(referenceId, "referenceId");
|
||||||
|
this.timestamp = Objects.requireNonNull(timestamp, "timestamp");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String required(String value, String name) {
|
||||||
|
if (value == null || value.isBlank()) {
|
||||||
|
throw new IllegalArgumentException(name + " is required");
|
||||||
|
}
|
||||||
|
return value.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
13
cygnus-lib/src/main/java/lib/models/Option.java
Normal file
13
cygnus-lib/src/main/java/lib/models/Option.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class Option {
|
||||||
|
private Object value;
|
||||||
|
private String label;
|
||||||
|
private String description;
|
||||||
|
private String group;
|
||||||
|
}
|
||||||
12
cygnus-lib/src/main/java/lib/models/PhotoCases.java
Normal file
12
cygnus-lib/src/main/java/lib/models/PhotoCases.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PhotoCases {
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
}
|
||||||
15
cygnus-lib/src/main/java/lib/models/PunchedRecordsData.java
Normal file
15
cygnus-lib/src/main/java/lib/models/PunchedRecordsData.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
/** Form-shaped punched applications returned to the case-initiation workspace. */
|
||||||
|
public record PunchedRecordsData(List<Map<String, Object>> records) {
|
||||||
|
public PunchedRecordsData {
|
||||||
|
records = records == null ? List.of() : records.stream()
|
||||||
|
.map(record -> Collections.unmodifiableMap(new LinkedHashMap<>(record)))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/ReferenceSheet.java
Normal file
17
cygnus-lib/src/main/java/lib/models/ReferenceSheet.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ReferenceSheet {
|
||||||
|
private List<CutOffRecord> tvrlist = new ArrayList<>();
|
||||||
|
private String teleSheetTime;
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
private String telePDFLink;
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/SendDedupe.java
Normal file
17
cygnus-lib/src/main/java/lib/models/SendDedupe.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SendDedupe {
|
||||||
|
private Integer portfolioid;
|
||||||
|
private String portname;
|
||||||
|
private String supervisor;
|
||||||
|
private int dqid;
|
||||||
|
private String fid;
|
||||||
|
private List<DedupeSendCase> caselist = new ArrayList<>();
|
||||||
|
private String suuid;
|
||||||
|
private String uuids;
|
||||||
|
}
|
||||||
16
cygnus-lib/src/main/java/lib/models/SendToOperation.java
Normal file
16
cygnus-lib/src/main/java/lib/models/SendToOperation.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SendToOperation {
|
||||||
|
private List<CutOffRecord> caselist = new ArrayList<>();
|
||||||
|
private String sendTime;
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
}
|
||||||
17
cygnus-lib/src/main/java/lib/models/Telesheet.java
Normal file
17
cygnus-lib/src/main/java/lib/models/Telesheet.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Telesheet {
|
||||||
|
private List<CutOffRecord> tvrlist = new ArrayList<>();
|
||||||
|
private String teleSheetTime;
|
||||||
|
private String errMsg;
|
||||||
|
private String errDesc;
|
||||||
|
private String errCode;
|
||||||
|
private String sessUUID;
|
||||||
|
private boolean processFlag;
|
||||||
|
private String telePDFLink;
|
||||||
|
}
|
||||||
29
cygnus-lib/src/main/java/lib/models/UserSession.java
Normal file
29
cygnus-lib/src/main/java/lib/models/UserSession.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
|
/** Immutable, type-safe representation of an authenticated Cygnus user. */
|
||||||
|
@Value
|
||||||
|
@Builder
|
||||||
|
public class UserSession implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
Short companyId;
|
||||||
|
String companyName;
|
||||||
|
String companyCode;
|
||||||
|
Short branchId;
|
||||||
|
String branchName;
|
||||||
|
String branchCode;
|
||||||
|
String branchLocation;
|
||||||
|
Short userId;
|
||||||
|
String username;
|
||||||
|
String userDisplayName;
|
||||||
|
Short userGroupId;
|
||||||
|
String userGroupName;
|
||||||
|
String loginTime;
|
||||||
|
String menuHtml;
|
||||||
|
}
|
||||||
22
cygnus-lib/src/test/java/lib/models/MessageDetailsTest.java
Normal file
22
cygnus-lib/src/test/java/lib/models/MessageDetailsTest.java
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package lib.models;
|
||||||
|
|
||||||
|
import lib.constants.ApplicationMessage;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class MessageDetailsTest {
|
||||||
|
@Test
|
||||||
|
void createsAReusableErrorContract() {
|
||||||
|
MessageDetails details = new MessageDetails(ApplicationMessage.ACCESS_DENIED);
|
||||||
|
assertEquals(403, details.getHttpStatus());
|
||||||
|
assertEquals("AUTH-403", details.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void mapsHttpStatusToCanonicalError() {
|
||||||
|
assertEquals(ApplicationMessage.PAGE_NOT_FOUND, ApplicationMessage.fromHttpStatus(404));
|
||||||
|
assertEquals(ApplicationMessage.INTERNAL_SERVER_ERROR,
|
||||||
|
ApplicationMessage.fromHttpStatus(599));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<mvc:annotation-driven/>
|
<mvc:annotation-driven/>
|
||||||
|
|
||||||
<!-- Scan for annotation based controllers -->
|
<!-- Scan for annotation based controllers -->
|
||||||
<context:component-scan base-package="matrix.nimble" />
|
<context:component-scan base-package="matrix.nimble,matrix.services" />
|
||||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
||||||
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
|
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
|
||||||
<property name="prefix" value="/WEB-INF/app/" />
|
<property name="prefix" value="/WEB-INF/app/" />
|
||||||
|
|||||||
@@ -9,12 +9,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/cutoff-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/cutoff-workflows-v1.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -41,13 +42,14 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
||||||
<form:form method="post" name="allocation" id="allocation" modelAttribute="allocation" >
|
<form:form method="post" name="allocation" id="allocation" modelAttribute="allocation" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/alloc.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/alloc.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Allocation</span>
|
<span class="matrix-title-text" align="absmiddle">Allocation</span>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('allocation','_parent','allocation')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="return submitCutoffForm('allocation','allocation')"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -172,8 +174,9 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitAllocation('allocation');" />
|
<div class="matrix-workflow-actions">
|
||||||
<form:hidden path="SessUUID" value="${allocation.getSessUUID()}"/>
|
<input type="button" class="button" name="btnsave" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitAllocation('allocation');" />
|
||||||
|
</div>
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
@@ -187,7 +190,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty allocation.getErrMsg()}">
|
<c:if test="${not empty allocation.getErrMsg()}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${allocation.getErrMsg()}',5000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${allocation.getErrMsg()}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -10,12 +10,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/cutoff-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/cutoff-workflows-v1.css?v=3" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -42,20 +43,23 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1100px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1100px">
|
||||||
<form:form method="post" name="cutOff" id="cutOff" modelAttribute="cutOff" >
|
<form:form method="post" name="cutOff" id="cutOff" modelAttribute="cutOff" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/cutlist.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/cutlist.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Cut-Off List</span>
|
<span class="matrix-title-text" align="absmiddle">Cut-Off List</span>
|
||||||
<div class="divselect" id="divbatch" style="width:85px;position:absolute;top:3px;right:30px;">
|
<div class="matrix-cutoff-title-actions">
|
||||||
|
<div class="divselect" id="divbatch">
|
||||||
<form:select path="Batch" multiple="false" id="batchlist" style="width:103px" onblur="validate(this,'t','');">
|
<form:select path="Batch" multiple="false" id="batchlist" style="width:103px" onblur="validate(this,'t','');">
|
||||||
<form:option value="-1" label="BATCH" selected="true"/>
|
<form:option value="-1" label="BATCH" selected="true"/>
|
||||||
<form:option value="AM" label="AM" />
|
<form:option value="AM" label="AM" />
|
||||||
<form:option value="PM" label="PM" />
|
<form:option value="PM" label="PM" />
|
||||||
</form:select>
|
</form:select>
|
||||||
</div>
|
</div>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('cutoff','_parent','cutOff')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="return submitCutoffForm('cutOff','cutoff')"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -114,9 +118,10 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitCutOff('cutOff');" />
|
<div class="matrix-workflow-actions">
|
||||||
|
<input type="button" class="button" name="btnsave" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitCutOff('cutOff');" />
|
||||||
|
</div>
|
||||||
<form:hidden path="CutoffTime" value="${cutOff.getCutoffTime()}"/>
|
<form:hidden path="CutoffTime" value="${cutOff.getCutoffTime()}"/>
|
||||||
<form:hidden path="SessUUID" value="${cutOff.getSessUUID()}"/>
|
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
@@ -130,7 +135,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty cutOff.getErrMsg()}">
|
<c:if test="${not empty cutOff.getErrMsg()}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${cutOff.getErrMsg()}',3000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${fn:escapeXml(cutOff.getErrMsg())}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -9,11 +9,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/excel.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/excel.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -40,6 +41,7 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<div id="formcontainer" class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="pcases" id="pcases" modelAttribute="pcases" >
|
<form:form method="post" name="pcases" id="pcases" modelAttribute="pcases" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
<table border="0" cellspacing="0" width="100%" id="cutlist">
|
<table border="0" cellspacing="0" width="100%" id="cutlist">
|
||||||
<thead class="thead">
|
<thead class="thead">
|
||||||
@@ -111,7 +113,9 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- <input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Upload & Update" id="btnsave" accesskey="S" onclick="return FinalizePhotoCase();" /> -->
|
<!-- <input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Upload & Update" id="btnsave" accesskey="S" onclick="return FinalizePhotoCase();" /> -->
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Upload & Update" id="btnsave" accesskey="S" onclick="return SendToMnimble();" />
|
<div class="matrix-workflow-actions">
|
||||||
|
<input type="button" class="button" name="btnsave" value="Upload & Update" id="btnsave" accesskey="S" onclick="return SendToMnimble();" />
|
||||||
|
</div>
|
||||||
<input type="hidden" value="${Sessvals.getUserID()}" id="usid"/>
|
<input type="hidden" value="${Sessvals.getUserID()}" id="usid"/>
|
||||||
</form:form>
|
</form:form>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,7 +128,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty msg}">
|
<c:if test="${not empty msg}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${msg}',3000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${msg}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,11 +9,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/excel.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/excel.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -40,6 +41,7 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<div id="formcontainer" class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="pcases" id="pcases" modelAttribute="pcases" >
|
<form:form method="post" name="pcases" id="pcases" modelAttribute="pcases" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
<table border="0" cellspacing="0" width="100%" id="cutlist">
|
<table border="0" cellspacing="0" width="100%" id="cutlist">
|
||||||
<thead class="thead">
|
<thead class="thead">
|
||||||
@@ -100,8 +102,10 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return FinalizePhotoCase();" />
|
<div class="matrix-workflow-actions">
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Generate" id="btnexcel" accesskey="G" onclick="tableToExcel(document.getElementsByTagName('table'),'sheet1')" />
|
<input type="button" class="button" name="btnsave" value="Save" id="btnsave" accesskey="S" onclick="return FinalizePhotoCase();" />
|
||||||
|
<input type="button" class="button" name="btnsave" value="Generate" id="btnexcel" accesskey="G" onclick="tableToExcel(document.getElementsByTagName('table'),'sheet1')" />
|
||||||
|
</div>
|
||||||
<input type="hidden" value="${Sessvals.getUserID()}" id="usid"/>
|
<input type="hidden" value="${Sessvals.getUserID()}" id="usid"/>
|
||||||
</form:form>
|
</form:form>
|
||||||
</div>
|
</div>
|
||||||
@@ -114,7 +118,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty msg}">
|
<c:if test="${not empty msg}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${msg}',3000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${msg}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,13 +9,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/allocation.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/cutoff-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/cutoff-workflows-v1.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -42,13 +42,14 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
||||||
<form:form method="post" name="refsheet" id="refsheet" modelAttribute="refsheet" >
|
<form:form method="post" name="refsheet" id="refsheet" modelAttribute="refsheet" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/telesheet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/telesheet.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Reference-Verification Sheet</span>
|
<span class="matrix-title-text" align="absmiddle">Reference-Verification Sheet</span>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('refsheet','_parent','refsheet')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="return submitCutoffForm('refsheet','refsheet')"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -162,8 +163,9 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Generate" id="btnsave" accesskey="S" onclick="return ValidateSubmitRefsheet('refsheet');" />
|
<div class="matrix-workflow-actions">
|
||||||
<form:hidden path="SessUUID" />
|
<input type="button" class="button" name="btnsave" value="Generate" id="btnsave" accesskey="S" onclick="return ValidateSubmitRefsheet('refsheet');" />
|
||||||
|
</div>
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
@@ -177,7 +179,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty refsheet.getErrMsg()}">
|
<c:if test="${not empty refsheet.getErrMsg()}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${telesheet.getErrMsg()}',3000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${refsheet.getErrMsg()}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,12 +9,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/cutoff-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/cutoff-workflows-v1.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -41,13 +42,14 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
||||||
<form:form method="post" name="sendtoopr" id="sendtoopr" modelAttribute="sendtoopr" >
|
<form:form method="post" name="sendtoopr" id="sendtoopr" modelAttribute="sendtoopr" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/oprupd.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/oprupd.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Send To Operation</span>
|
<span class="matrix-title-text" align="absmiddle">Send To Operation</span>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('sendtoopr','_parent','sendtoopr')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="return submitCutoffForm('sendtoopr','sendtoopr')"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -192,8 +194,9 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitSopr('sendtoopr');" />
|
<div class="matrix-workflow-actions">
|
||||||
<form:hidden path="SessUUID" value="${sendtoopr.getSessUUID()}"/>
|
<input type="button" class="button" name="btnsave" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitSopr('sendtoopr');" />
|
||||||
|
</div>
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
@@ -207,7 +210,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty sendtoopr.getErrMsg()}">
|
<c:if test="${not empty sendtoopr.getErrMsg()}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${sendtoopr.getErrMsg()}',5000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${sendtoopr.getErrMsg()}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,13 +9,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/allocation.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/cutoff-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/cutoff-workflows-v1.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -42,13 +42,14 @@
|
|||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
||||||
<form:form method="post" name="telesheet" id="telesheet" modelAttribute="telesheet" >
|
<form:form method="post" name="telesheet" id="telesheet" modelAttribute="telesheet" >
|
||||||
|
<c:if test="${not empty _csrf}"><input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /></c:if>
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/telesheet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/telesheet.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Tele-Verification Sheet</span>
|
<span class="matrix-title-text" align="absmiddle">Tele-Verification Sheet</span>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('telesheet','_parent','telesheet')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="return submitCutoffForm('telesheet','telesheet')"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -178,8 +179,9 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Generate" id="btnsave" accesskey="S" onclick="return ValidateSubmitTelesheet('telesheet');" />
|
<div class="matrix-workflow-actions">
|
||||||
<form:hidden path="SessUUID" />
|
<input type="button" class="button" name="btnsave" value="Generate" id="btnsave" accesskey="S" onclick="return ValidateSubmitTelesheet('telesheet');" />
|
||||||
|
</div>
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
@@ -193,7 +195,7 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty telesheet.getErrMsg()}">
|
<c:if test="${not empty telesheet.getErrMsg()}">
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${telesheet.getErrMsg()}',3000,200,300); </script>
|
<script>CygnusNotifications.showLegacy('${telesheet.getErrMsg()}');</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,112 +1,85 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="true" %>
|
||||||
pageEncoding="ISO-8859-1"%>
|
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
|
||||||
<%@page language="java" session="true" %>
|
|
||||||
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta charset="UTF-8">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<title>Cygnus 1.0 | Dedupe</title>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet">
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet">
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet">
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet">
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<link href="/matrix/css/dedupe-workflows-v1.css?v=3" rel="stylesheet">
|
||||||
<script language="javascript" src="/matrix/js/appjs/dedupedo.js" type="text/javascript"></script>
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet">
|
||||||
|
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet">
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/table.css" rel="stylesheet" type="text/css" />
|
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
||||||
|
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
||||||
<title>Cygnus 1.0 | Dedupe Do</title>
|
<script src="/matrix/js/edp/dedupe/dedupe-do.js?v=2" defer></script>
|
||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/dedupe-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
</head>
|
||||||
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow">
|
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow"
|
||||||
<div id='PageFrame'>
|
data-context-path="${pageContext.request.contextPath}">
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
<div id="PageFrame">
|
||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<main class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="caseGrid" id="caseGrid" modelAttribute="caseGrid" >
|
<form:form method="post" action="${pageContext.request.contextPath}/ver/dedupecaselist"
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
id="dedupeWorkspace" modelAttribute="dedupeWorkspace">
|
||||||
<div>
|
<section class="matrix-dedupe-worklist">
|
||||||
<!-- Title -->
|
<header class="title matrix-dedupe-worklist__header">
|
||||||
<div class="title">
|
<span class="matrix-dedupe-worklist__heading">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/commondet.png" alt="">
|
||||||
<span class="matrix-title-text" align="absmiddle">List of Cases</span>
|
<span class="matrix-title-text">Dedupe Cases</span>
|
||||||
<div class="divselect" id="divportfolio" style="width:167px;position:absolute;top:3px;right:30px;">
|
</span>
|
||||||
<form:select path="PortfolioId" multiple="false" id="portlist" style="width:185px" onchange="SubmitForm('dedupecaselist','_parent','caseGrid')">
|
<span class="matrix-dedupe-worklist__actions">
|
||||||
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
<form:select path="portfolioId" id="portfolioId"
|
||||||
<c:forEach items="${portlist}" var="port">
|
cssClass="form-select form-select-sm matrix-dedupe-worklist__portfolio"
|
||||||
<form:option value="${port[0]}" label="${port[1]}" />
|
aria-label="Portfolio">
|
||||||
|
<form:option value="-1" label="SELECT PORTFOLIO" />
|
||||||
|
<c:forEach items="${dedupeWorkspace.portfolios}" var="portfolio">
|
||||||
|
<form:option value="${portfolio.value}" label="${portfolio.label}" />
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</form:select>
|
</form:select>
|
||||||
</div>
|
<button type="submit" class="matrix-dedupe-worklist__refresh"
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('dedupecaselist','_parent','caseGrid')"/>
|
title="Refresh cases" aria-label="Refresh cases">
|
||||||
</div>
|
<img src="/matrix/images/reload.png" alt="">
|
||||||
<!-- -->
|
</button>
|
||||||
<div id="TablePanel" class="tableContainer">
|
</span>
|
||||||
<table border="0" cellspacing="0" width="100%" id="casetable">
|
</header>
|
||||||
<thead class="thead">
|
|
||||||
<tr title="Row Title">
|
<div class="table-responsive matrix-dedupe-worklist__table-wrap">
|
||||||
<td>S.No</td>
|
<table class="table table-sm align-middle mb-0" id="dedupeCaseTable">
|
||||||
<td>MV Code</td>
|
<thead>
|
||||||
<td>File No.</td>
|
<tr>
|
||||||
<td>Customer Name</td>
|
<th>S.No</th><th>MV Code</th><th>File No.</th><th>Customer Name</th>
|
||||||
<td>Type</td>
|
<th>Type</th><th class="text-center">RV</th><th class="text-center">OV</th>
|
||||||
<td>RV</td>
|
<th class="text-center">PV</th><th>Received On</th><th>Done</th>
|
||||||
<td>OV</td>
|
|
||||||
<td>PV</td>
|
|
||||||
<td>Received Date</td>
|
|
||||||
<td>Done</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="scrollContent">
|
<tbody>
|
||||||
<c:forEach items="${caseList}" var="casedet" varStatus="status">
|
<c:forEach items="${dedupeWorkspace.cases}" var="caseItem" varStatus="status">
|
||||||
<tr id="row${status.count}">
|
<tr class="matrix-dedupe-worklist__row" tabindex="0"
|
||||||
<td>
|
data-case-id="${caseItem.documentCaseId}"
|
||||||
<input type="hidden" name="uuid" id="row${status.count}uuid" value="${casedet[0]}" />
|
title="Open dedupe details">
|
||||||
<input type="hidden" name="portid" id="row${status.count}portid" value="${casedet[1]}" />
|
<td>${status.count}</td><td>${caseItem.mvCode}</td>
|
||||||
${status.count}</td>
|
<td>${caseItem.fileNumber}</td><td>${caseItem.customerName}</td>
|
||||||
<td>${casedet[2]}</td>
|
<td>${caseItem.applicationType}</td>
|
||||||
<td>${casedet[3]}</td>
|
<td class="text-center">${caseItem.residenceVisits}</td>
|
||||||
<td>${casedet[4]}</td>
|
<td class="text-center">${caseItem.officeVisits}</td>
|
||||||
<td>${casedet[5]}</td>
|
<td class="text-center">${caseItem.propertyVisits}</td>
|
||||||
<td>${casedet[6]}</td>
|
<td>${caseItem.receivedOn}</td><td>${caseItem.done}</td>
|
||||||
<td>${casedet[7]}</td>
|
|
||||||
<td>${casedet[8]}</td>
|
|
||||||
<td>${casedet[9]}</td>
|
|
||||||
<td>${casedet[10]}</td>
|
|
||||||
<td id="row${status.count}col"></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
<c:if test="${dedupeWorkspace.portfolioId gt 0 and empty dedupeWorkspace.cases}">
|
||||||
|
<tr><td colspan="10" class="matrix-dedupe-worklist__empty">No cases found.</td></tr>
|
||||||
|
</c:if>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</section>
|
||||||
</form:form>
|
</form:form>
|
||||||
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
InitPage();
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Process Message -->
|
|
||||||
<c:if test="${not empty caseGrid.getErrMsg()}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${caseGrid.getErrMsg()}',3000,200,300); </script>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -12,10 +12,9 @@
|
|||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/progressbar.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/deduperun.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
|
<script language="javascript" src="/matrix/js/edp/dedupe/dedupe-run.js?ver=1" type="text/javascript" defer></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/dedupe-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/dedupe-workflows-v1.css?v=8" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -39,16 +38,16 @@
|
|||||||
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow">
|
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow">
|
||||||
<div id='PageFrame'>
|
<div id='PageFrame'>
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns the authenticated user menu. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
<div id="formcontainer" class="matrix-tool-workspace__content" style="max-width:1200px">
|
||||||
<form:form method="post" name="deduperun" id="deduperun" modelAttribute="dedupeRun" >
|
<form:form method="post" name="deduperun" id="deduperun" modelAttribute="dedupeRun" >
|
||||||
<input type="hidden" name="curu" id="curu" value="${Sessvals.getUserID()}" />
|
<input type="hidden" id="dedupe-csrf-token" value="${dedupeRun.csrfToken}" />
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title matrix-dedupe-run__title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/dedupe.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/dedupe.png" alt="" />
|
||||||
<span class="matrix-title-text" align="absmiddle">Dedupe Run</span>
|
<span class="matrix-title-text">Dedupe Run</span>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('rundedupe','_parent','deduperun')"/>
|
<img class="matrix-title-action" src="/matrix/images/reload.png" alt="" title="Refresh Grid" onclick="SubmitForm('rundedupe','_parent','deduperun')"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -63,28 +62,28 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="scrollContent">
|
<tbody class="scrollContent">
|
||||||
<c:forEach items="${dedupeRun.dedupelist}" var="record" varStatus="mystatus">
|
<c:forEach items="${dedupeRun.batches}" var="record" varStatus="mystatus">
|
||||||
<tr title="${record.lockedby}">
|
<tr title="${record.lockedby}">
|
||||||
<td>${mystatus.count}</td>
|
<td>${mystatus.count}</td>
|
||||||
<td id="parent${mystatus.count}" onclick="ExpandList(this.id)" >
|
<td id="parent${mystatus.count}" onclick="ExpandList(this.id)" >
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].lockedby" id="locby${mystatus.count}" value="${status.value}"/>
|
<form:hidden path="batches[${mystatus.index}].lockedby" id="locby${mystatus.count}"/>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].cutoffon" id="cuttime${mystatus.count}" value="${status.value}"/>
|
<form:hidden path="batches[${mystatus.index}].cutoffon" id="cuttime${mystatus.count}"/>
|
||||||
<span class="customLink" style="cursor:pointer">${record.cutoffon}</span>
|
<span class="customLink" style="cursor:pointer">${record.cutoffon}</span>
|
||||||
</td>
|
</td>
|
||||||
<td align="center">
|
<td align="center">
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].totaddr" id="totaddr${mystatus.count}" value="${status.value}"/>${record.totaddr}
|
<form:hidden path="batches[${mystatus.index}].totalAddresses" id="totaddr${mystatus.count}"/>${record.totalAddresses}
|
||||||
</td>
|
</td>
|
||||||
<td align="center">
|
<td align="center">
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].totcase" id="totcase${mystatus.count}" value="${status.value}"/>${record.totcase}
|
<form:hidden path="batches[${mystatus.index}].totalCases" id="totcase${mystatus.count}"/>${record.totalCases}
|
||||||
</td>
|
</td>
|
||||||
<td align="center">
|
<td align="center">
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].islocked" id="locked${mystatus.count}" value="${status.value}" />
|
<form:hidden path="batches[${mystatus.index}].islocked" id="locked${mystatus.count}"/>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${record.islocked gt 0}">
|
<c:when test="${record.islocked gt 0}">
|
||||||
<img src="/matrix/images/locked.png"/>
|
<img src="/matrix/images/locked.png"/>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input type="button" id="btndedupe" class="button" value="Run Earlier & Negative" onclick="showDedupePanel('cutlist${mystatus.count}')" />
|
<button type="button" class="btn btn-primary btn-sm js-run-dedupe" data-table="cutlist${mystatus.count}">Run Earlier & Negative</button>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
@@ -112,38 +111,39 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="scrollContent">
|
<tbody class="scrollContent">
|
||||||
<c:forEach items="${record.sublist}" var="record1" varStatus="mystatus1">
|
<c:forEach items="${record.cases}" var="record1" varStatus="mystatus1">
|
||||||
<tr title="${record1.lockedby}child" id="row${mystatus1.count}${mystatus.count}">
|
<tr title="${record1.lockedby}child" id="row${mystatus1.count}${mystatus.count}"
|
||||||
|
data-document-case-id="${record1.uuid}" data-earlier="${record1.earlier}" data-negative="${record1.negative}">
|
||||||
<td>${mystatus1.count}</td>
|
<td>${mystatus1.count}</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].lockedby" id="locby${mystatus1.count}child" value="${status.value}"/>
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].lockedby" id="locby${mystatus1.count}child"/>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].mvcode" id="mvcode${mystatus1.count}child" value="${status.value}"/>
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].mvcode" id="mvcode${mystatus1.count}child"/>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].uuid" id="uuid${mystatus1.count}${mystatus.count}" value="${status.value}"/>
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].uuid" id="uuid${mystatus1.count}${mystatus.count}"/>
|
||||||
<span>${record1.mvcode}</span>
|
<span>${record1.mvcode}</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].applno" id="applno${mystatus1.count}child" value="${status.value}"/>${record1.applno}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].applno" id="applno${mystatus1.count}child"/>${record1.applno}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].customername" id="cname${mystatus1.count}child" value="${status.value}"/>${record1.customername}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].customername" id="cname${mystatus1.count}child"/>${record1.customername}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].apptype" id="ctype${mystatus1.count}child" value="${status.value}"/>${record1.apptype}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].apptype" id="ctype${mystatus1.count}child"/>${record1.apptype}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].totrv" id="totrv${mystatus1.count}child" value="${status.value}"/>${record1.totrv}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].totrv" id="totrv${mystatus1.count}child"/>${record1.totrv}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].totov" id="totov${mystatus1.count}child" value="${status.value}"/>${record1.totov}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].totov" id="totov${mystatus1.count}child"/>${record1.totov}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].totpv" id="totpv${mystatus1.count}child" value="${status.value}"/>${record1.totpv}
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].totpv" id="totpv${mystatus1.count}child"/>${record1.totpv}
|
||||||
</td>
|
</td>
|
||||||
<td id="td${mystatus1.count}${mystatus.count}ear">
|
<td id="td${mystatus1.count}${mystatus.count}ear">
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].earlier" id="row${mystatus1.count}${mystatus.count}ear" value="${status.value}"/><span id="sp${mystatus1.count}${mystatus.count}ear">${record1.earlier}</span>
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].earlier" id="row${mystatus1.count}${mystatus.count}ear"/><span id="sp${mystatus1.count}${mystatus.count}ear">${record1.earlier}</span>
|
||||||
</td>
|
</td>
|
||||||
<td id="td${mystatus1.count}${mystatus.count}neg">
|
<td id="td${mystatus1.count}${mystatus.count}neg">
|
||||||
<form:hidden path="dedupelist[${mystatus.index}].sublist[${mystatus1.index}].negative" id="row${mystatus1.count}${mystatus.count}neg" value="${status.value}"/><span id="sp${mystatus1.count}${mystatus.count}neg">${record1.negative}</span>
|
<form:hidden path="batches[${mystatus.index}].cases[${mystatus1.index}].negative" id="row${mystatus1.count}${mystatus.count}neg"/><span id="sp${mystatus1.count}${mystatus.count}neg">${record1.negative}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
@@ -158,20 +158,10 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form:hidden path="SessUUID" value="${dedupeRun.getSessUUID()}"/>
|
|
||||||
</form:form>
|
</form:form>
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="hidden" id="selectedports" value="0" />
|
<input type="hidden" id="selectedports" value="0" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Process Message -->
|
|
||||||
<c:if test="${not empty dedupeRun.getErrMsg()}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${dedupeRun.getErrMsg()}',5000,200,300); </script>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -8,12 +8,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/appjs/dedupedo.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -25,12 +20,13 @@
|
|||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/dedupe-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/dedupe-workflows-v1.css?v=3" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
||||||
|
<script src="/matrix/js/edp/dedupe/dedupe-send.js?v=1" defer></script>
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow">
|
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-dedupe-workflow">
|
||||||
@@ -38,7 +34,9 @@
|
|||||||
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<div id="formcontainer" class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="senddedupe" id="senddedupe" modelAttribute="senddedupe" >
|
<form:form method="post" name="senddedupe" id="senddedupe" modelAttribute="senddedupe"
|
||||||
|
data-list-url="${pageContext.request.contextPath}/ver/dedupetosend"
|
||||||
|
data-generate-url="${pageContext.request.contextPath}/ver/senddedreports">
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
@@ -46,14 +44,13 @@
|
|||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">List of Cases</span>
|
<span class="matrix-title-text" align="absmiddle">List of Cases</span>
|
||||||
<div class="divselect" id="divportfolio" style="width:167px;position:absolute;top:3px;right:30px;">
|
<div class="divselect" id="divportfolio" style="width:167px;position:absolute;top:3px;right:30px;">
|
||||||
<form:select path="portfolioid" multiple="false" id="portlist" style="width:185px" onchange="SubmitForm('dedupetosend','_parent','senddedupe')">
|
<form:select path="portfolioid" multiple="false" id="portlist" style="width:185px">
|
||||||
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
||||||
<c:forEach items="${portlist}" var="port">
|
<c:forEach items="${portlist}" var="port">
|
||||||
<form:option value="${port[0]}" label="${port[1]}" />
|
<form:option value="${port.value}" label="${port.label}" />
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</form:select>
|
</form:select>
|
||||||
</div>
|
</div>
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('senddedupe','_parent','senddedupe')"/>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -75,26 +72,28 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody class="scrollContent">
|
<tbody class="scrollContent">
|
||||||
<c:forEach items="${senddedupe.caselist}" var="casedet" varStatus="status">
|
<c:forEach items="${senddedupe.caselist}" var="casedet" varStatus="status">
|
||||||
<tr id="row${status.count}">
|
<tr id="row${status.count}" data-case-id="${casedet.uuid}">
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="uuid" id="row${status.count}uuid" value="${casedet[0]}" />
|
<input type="hidden" name="uuid" id="row${status.count}uuid" value="${casedet.uuid}" />
|
||||||
${status.count}</td>
|
${status.count}</td>
|
||||||
<td>${casedet[1]}</td>
|
<td>${casedet.mvcode}</td>
|
||||||
<td>${casedet[2]}</td>
|
<td>${casedet.applno}</td>
|
||||||
<td>${casedet[3]}</td>
|
<td>${casedet.customername}</td>
|
||||||
<td>${casedet[4]}</td>
|
<td>${casedet.apptype}</td>
|
||||||
<td>${casedet[5]}</td>
|
<td>${casedet.product}</td>
|
||||||
<td>${casedet[6]}</td>
|
<td>${casedet.earlier}</td>
|
||||||
<td>${casedet[7]}</td>
|
<td>${casedet.negative}</td>
|
||||||
<td>${casedet[8]}</td>
|
<td>${casedet.deduperunon}</td>
|
||||||
<td>${casedet[9]}</td>
|
<td>${casedet.bkbranchname}</td>
|
||||||
<td align="center"><input type="checkbox" name="chkrow${status.count}" id="chkrow${status.count}" checked onclick="checkList('chkrow','selall')" /></td>
|
<td align="center"><input type="checkbox" value="${casedet.uuid}" checked /></td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<input type="button" class="button" name="btngenreport" style="float:right;margin-top:10px" value="Generate Report" id="btngenreport" accesskey="G" onclick="return ValidateSendDedupe('senddedupe');" />
|
<div class="matrix-workflow-actions">
|
||||||
|
<button type="button" class="button" name="btngenreport" id="btngenreport" accesskey="G">Generate Report</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form:hidden path="uuids" id="hfdelstat" />
|
<form:hidden path="uuids" id="hfdelstat" />
|
||||||
<form:hidden path="suuid" />
|
<form:hidden path="suuid" />
|
||||||
@@ -103,15 +102,9 @@
|
|||||||
</form:form>
|
</form:form>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
InitSendDedupe();
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty msg}">
|
<c:if test="${not empty msg}">
|
||||||
<script language="javascript" type="text/javascript">contentType="html"; CallMessage('${msg}',3000,200,300); </script>
|
<script>CygnusNotifications.show({type:"success", message:"${msg}"});</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,12 +9,7 @@
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
<title>Cygnus 1.0 | Dedupe Viewer</title>
|
<title>Cygnus 1.0 | Dedupe Viewer</title>
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/appjs/dedupedo.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -24,23 +19,22 @@
|
|||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/dedupe-workflows-v1.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/dedupe-workflows-v1.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/matrix-dialog-child.js" type="text/javascript"></script>
|
<script src="/matrix/js/matrix-dialog-child.js" type="text/javascript"></script>
|
||||||
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/matrix-dialog-child.js" type="text/javascript"></script>
|
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
||||||
|
<script src="/matrix/js/edp/dedupe/dedupe-match.js?v=1" defer></script>
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="matrix-shell matrix-v2 matrix-tool-workspace matrix-dedupe-workflow matrix-dedupe-match">
|
<body class="matrix-shell matrix-v2 matrix-tool-workspace matrix-dedupe-workflow matrix-dedupe-match">
|
||||||
<div id='PageFrame'>
|
<div id='PageFrame'>
|
||||||
<!-- Title Bar -->
|
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
|
||||||
<!-- -->
|
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<div id="formcontainer" class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="dedupeDetails" id="dedupeDetails" modelAttribute="dedupeDetails" >
|
<form:form method="post" action="${pageContext.request.contextPath}/ver/updatededupe"
|
||||||
|
name="dedupeDetails" id="dedupeDetails" modelAttribute="dedupeDetails"
|
||||||
|
data-records-url="${pageContext.request.contextPath}/ver/deduperecords">
|
||||||
<!-- Parent Record Details -->
|
<!-- Parent Record Details -->
|
||||||
<div>
|
<div class="matrix-dedupe-match__source">
|
||||||
<form:hidden path="customername"/>
|
<form:hidden path="customername"/>
|
||||||
<form:hidden path="dob" id="cdob"/>
|
<form:hidden path="dob" id="cdob"/>
|
||||||
<form:hidden path="mobile" id="mob"/>
|
<form:hidden path="mobile" id="mob"/>
|
||||||
@@ -50,8 +44,8 @@
|
|||||||
<form:hidden path="offaddress" id="oaddress"/>
|
<form:hidden path="offaddress" id="oaddress"/>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/page.png" />
|
<img class="matrix-title-icon" src="/matrix/images/page.png" alt="" />
|
||||||
<span class="matrix-title-text">Source Record (MV Code - ${dedupeDetails.mvcode}) (Category - ${dedupeDetails.category})</span>
|
<span class="matrix-title-text fw-bold">Source Record (MV Code - ${dedupeDetails.mvcode}) (Category - ${dedupeDetails.category})</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Form (Source Record) -->
|
<!-- Form (Source Record) -->
|
||||||
@@ -85,13 +79,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Earlier / Negative Details Container -->
|
<!-- Earlier / Negative Details Container -->
|
||||||
<div style="border:1px solid #a7abb4;">
|
<div class="matrix-dedupe-match__comparison">
|
||||||
<table style="width:100%" border="0" cellspacing="0" >
|
<table style="width:100%" border="0" cellspacing="0" >
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:50%" valign="top">
|
<td style="width:50%" valign="top">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/ear_details.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/ear_details.png" alt="" />
|
||||||
<span class="matrix-title-text">Earlier Details <span id='efound'></span></span>
|
<span class="matrix-title-text">Earlier Details <span id='efound'></span></span>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -116,25 +110,22 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="4"><textarea style="width:443px;font-size:12pt" rows="4" id="earaddress" readonly="readonly" ></textarea></td>
|
<td colspan="4"><textarea style="width:443px;font-size:12pt" rows="4" id="earaddress" readonly="readonly" ></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Residence Phone</td>
|
|
||||||
<td>Office Phone</td>
|
|
||||||
<td>Mobile Number</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><input style="width:150px;font-size:12pt" id="earrphone" readonly="readonly" /></td>
|
|
||||||
<td><input style="width:150px;font-size:12pt" id="earophone" readonly="readonly" /></td>
|
|
||||||
<td><input style="width:112px;font-size:12pt" id="earmobile" readonly="readonly" /></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<input type="button" class="button" name="btnfirst1" style="margin-top:5px;float:left" value="" id="btnfirst" accesskey="H" onclick="findRecord(1,1)" />
|
<div class="matrix-phone-grid">
|
||||||
<input type="button" class="button" name="btnprev1" style="margin-top:5px;float:left" value="" id="btnprev" accesskey="J" onclick="findRecord(2,1)" />
|
<label>Residence Phone<input id="earrphone" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnnext1" style="margin-top:5px;float:left" value="" id="btnnext" accesskey="K" onclick="findRecord(3,1)" />
|
<label>Office Phone<input id="earophone" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnlast1" style="margin-top:5px;float:left" value="" id="btnlast" accesskey="L" onclick="findRecord(4,1)" />
|
<label>Mobile Number<input id="earmobile" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnear" style="margin-top:5px;float:right;margin-right:7px" value="Match Found" id="btnear" accesskey="9" onclick="addRemarks(1,'earremarks')" />
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" class="matrix-record-navigation">
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--first" aria-label="First earlier match" accesskey="H" onclick="findRecord(1,1)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--previous" aria-label="Previous earlier match" accesskey="J" onclick="findRecord(2,1)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--next" aria-label="Next earlier match" accesskey="K" onclick="findRecord(3,1)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--last" aria-label="Last earlier match" accesskey="L" onclick="findRecord(4,1)"></button>
|
||||||
|
<button type="button" class="button matrix-match-action" id="btnear" accesskey="9" onclick="addRemarks(1,'earremarks')">Match Found</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -148,7 +139,7 @@
|
|||||||
<td valign="top" style="width:50%" id="tdneg">
|
<td valign="top" style="width:50%" id="tdneg">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/neg_details.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/neg_details.png" alt="" />
|
||||||
<span class="matrix-title-text">Negative Details <span id='nfound'></span></span>
|
<span class="matrix-title-text">Negative Details <span id='nfound'></span></span>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -173,25 +164,22 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="4"><textarea style="width:438px;font-size:12pt" rows="4" id="negaddress" readonly="readonly" ></textarea></td>
|
<td colspan="4"><textarea style="width:438px;font-size:12pt" rows="4" id="negaddress" readonly="readonly" ></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Residence Phone</td>
|
|
||||||
<td>Office Phone</td>
|
|
||||||
<td>Mobile Number</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><input style="width:150px;font-size:12pt" id="negrphone" readonly="readonly" /></td>
|
|
||||||
<td><input style="width:150px;font-size:12pt" id="negophone" readonly="readonly" /></td>
|
|
||||||
<td><input style="width:112px;font-size:12pt" id="negmobile" readonly="readonly" /></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<input type="button" class="button" name="btnfirst" style="margin-top:5px;float:left" value="" id="btnfirst" accesskey="U" onclick="findRecord(1,2)" />
|
<div class="matrix-phone-grid">
|
||||||
<input type="button" class="button" name="btnprev" style="margin-top:5px;float:left" value="" id="btnprev" accesskey="I" onclick="findRecord(2,2)" />
|
<label>Residence Phone<input id="negrphone" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnnext" style="margin-top:5px;float:left" value="" id="btnnext" accesskey="O" onclick="findRecord(3,2)" />
|
<label>Office Phone<input id="negophone" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnlast" style="margin-top:5px;float:left" value="" id="btnlast" accesskey="P" onclick="findRecord(4,2)" />
|
<label>Mobile Number<input id="negmobile" readonly="readonly" /></label>
|
||||||
<input type="button" class="button" name="btnear" style="margin-top:5px;float:right;margin-right:7px" value="Match Found" id="btnneg" accesskey="0" onclick="addRemarks(2,'negremarks')" />
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" class="matrix-record-navigation">
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--first" aria-label="First negative match" accesskey="U" onclick="findRecord(1,2)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--previous" aria-label="Previous negative match" accesskey="I" onclick="findRecord(2,2)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--next" aria-label="Next negative match" accesskey="O" onclick="findRecord(3,2)"></button>
|
||||||
|
<button type="button" class="matrix-record-nav matrix-record-nav--last" aria-label="Last negative match" accesskey="P" onclick="findRecord(4,2)"></button>
|
||||||
|
<button type="button" class="button matrix-match-action" id="btnneg" accesskey="0" onclick="addRemarks(2,'negremarks')">Match Found</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -207,13 +195,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Earlier / Negative Details Container -->
|
<!-- Earlier / Negative Details Container -->
|
||||||
<div style="border:1px solid #a7abb4;">
|
<div class="matrix-dedupe-match__remarks">
|
||||||
<table style="width:100%" border="0" cellspacing="0" >
|
<table style="width:100%" border="0" cellspacing="0" >
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:50%" valign="top">
|
<td style="width:50%" valign="top">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/ear_rem.png" id="earimg" align="absmiddle" onclick="editRemarks('earremarks')" />
|
<img class="matrix-title-icon" src="/matrix/images/ear_rem.png" id="earimg" alt="" onclick="editRemarks('earremarks')" />
|
||||||
<span class="matrix-title-text">Earlier Match Remarks</span>
|
<span class="matrix-title-text">Earlier Match Remarks</span>
|
||||||
<div class="nedtrem" id="ctrldiv">
|
<div class="nedtrem" id="ctrldiv">
|
||||||
<img src="/matrix/images/edit_rem.png" align="absmiddle" onclick="editRemarks('earremarks',1)" title="Remove current record remarks" />
|
<img src="/matrix/images/edit_rem.png" align="absmiddle" onclick="editRemarks('earremarks',1)" title="Remove current record remarks" />
|
||||||
@@ -224,7 +212,7 @@
|
|||||||
<div id="FormPanel2" class="FormPanel">
|
<div id="FormPanel2" class="FormPanel">
|
||||||
<table align="center" class="matrix-form-controls" style="width:100%">
|
<table align="center" class="matrix-form-controls" style="width:100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td><form:textarea path="earremarks" style="width:98%" rows="3" readonly="true" ></form:textarea></td>
|
<td><form:textarea path="earremarks" style="width:98%" rows="9" readonly="true" ></form:textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -233,7 +221,7 @@
|
|||||||
<td style="width:50%" valign="top">
|
<td style="width:50%" valign="top">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/neg_rem.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/neg_rem.png" alt="" />
|
||||||
<span class="matrix-title-text">Negative Match Remarks</span>
|
<span class="matrix-title-text">Negative Match Remarks</span>
|
||||||
<div class="nedtrem" id="ctrldiv">
|
<div class="nedtrem" id="ctrldiv">
|
||||||
<img src="/matrix/images/edit_rem.png" align="absmiddle" onclick="editRemarks('negremarks',2)" title="Remove current record remarks" />
|
<img src="/matrix/images/edit_rem.png" align="absmiddle" onclick="editRemarks('negremarks',2)" title="Remove current record remarks" />
|
||||||
@@ -244,7 +232,7 @@
|
|||||||
<div id="FormPanel2" class="FormPanel">
|
<div id="FormPanel2" class="FormPanel">
|
||||||
<table align="center" class="matrix-form-controls" style="width:100%">
|
<table align="center" class="matrix-form-controls" style="width:100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td><form:textarea path="negremarks" style="width:98%" rows="3" readonly="true" ></form:textarea></td>
|
<td><form:textarea path="negremarks" style="width:98%" rows="9" readonly="true" ></form:textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -259,23 +247,12 @@
|
|||||||
<form:hidden path="uuid" />
|
<form:hidden path="uuid" />
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<input type="hidden" id="invalidfields" value="0" />
|
||||||
<input type="button" class="button" name="btncancel" style="margin-left:1px;margin-top:5px;float:right" value="Close" id="btncancel" accesskey="C" onclick="MatrixDialog.close(0)" />
|
<div class="matrix-workflow-actions">
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return SubmitForm('updatededupe','_parent','dedupeDetails');" />
|
<input type="button" class="button" name="btncancel" value="Close" id="btncancel" accesskey="C" onclick="MatrixDialog.close(0)" />
|
||||||
|
<button type="submit" class="button" name="btnsave" id="btnsave" accesskey="S">Save</button>
|
||||||
|
</div>
|
||||||
</form:form>
|
</form:form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
FindMatchedRecords('${dedupeDetails.uuid}');
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Process Message -->
|
|
||||||
<c:if test="${not empty msg}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${msg}',3000,200,300); </script>
|
|
||||||
<c:if test="${status == true}">
|
|
||||||
<script language="javascript" type="text/javascript">MatrixDialog.close(1);</script>
|
|
||||||
</c:if>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,686 +0,0 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
|
|
||||||
pageEncoding="ISO-8859-1"%>
|
|
||||||
<%@page language="java" session="true" %>
|
|
||||||
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
||||||
<title>Cygnus 1.0 |
|
|
||||||
<c:if test="${caseDetails.getFormMode() eq 1}">Add Cases</c:if>
|
|
||||||
<c:if test="${caseDetails.getFormMode() eq 2}">Edit Details</c:if>
|
|
||||||
</title>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/appjs/punching.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/validator.js?ver=2" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ajax.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ajax-dynamic-list.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/textbox.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/table.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/autocomplete.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/punch-workspace-v3.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/add-cases-v4.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/matrix-dialog-child.js" type="text/javascript"></script>
|
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-dialog-child.js" type="text/javascript"></script>
|
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-punch-workspace matrix-add-cases">
|
|
||||||
<div id='PageFrame'>
|
|
||||||
<c:if test="${caseDetails.getFormMode() eq 1}">
|
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
|
||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
|
||||||
</c:if>
|
|
||||||
|
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
|
||||||
<form:form method="post" name="caseDetails" id="caseDetails" modelAttribute="caseDetails" >
|
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
|
||||||
<div>
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
|
||||||
<span class="matrix-title-text" align="absmiddle">Common Details</span>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${caseDetails.getFormMode() eq 1}">
|
|
||||||
<div class="divselect" id="divportfolio" style="width:167px;position:absolute;top:3px;right:13px;">
|
|
||||||
<form:select path="PortfolioId" multiple="false" id="portlist" style="width:185px" onchange="SubmitForm('casedet','_parent','caseDetails')">
|
|
||||||
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
|
||||||
<c:forEach items="${portlist}" var="port">
|
|
||||||
<form:option value="${port[0]}" label="${port[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<form:hidden path="PortfolioId" id="portlist" />
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section1) -->
|
|
||||||
<div id="FormPanel1" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls" width="99%">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
MV Code
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input style="width:65px;text-transform:uppercase" readonly="true" path="MvCode" value="${caseDeails.getMvCode()}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Appl No.
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="25" style="width:115px;text-transform:uppercase" id="ApplNo" path="ApplNo" value="${caseDetails.getApplNo()}" onblur="if(validate(this,'t','AlphaNumeric')){FindSameDet(this,'A','CustomerName');}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Bank Code
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="25" style="width:70px;text-transform:uppercase" path="BankCode" value="${caseDetails.getBankCode()}" onblur="validate(this,'f','AlphaNumeric');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Branch
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divbranch" style="width:135px;">
|
|
||||||
<form:select path="BankBranchId" multiple="false" id="branchlist" style="width:153px" onblur="validate(this,'t','');">
|
|
||||||
<form:option value="-1" label="SELECT" selected="true"/>
|
|
||||||
<c:forEach items="${branchlist}" var="brnch">
|
|
||||||
<form:option value="${brnch[0]}" label="${brnch[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Product
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divproduct" style="width:132px;">
|
|
||||||
<form:select path="Product" multiple="false" id="prodlist" style="width:150px" onblur="validate(this,'t','');">
|
|
||||||
<form:option value="-1" label="SELECT" selected="true"/>
|
|
||||||
<c:forEach items="${prodlist}" var="prod">
|
|
||||||
<form:option value="${prod[0]}" label="${prod[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Name
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="60" style="width:200px" path="CustomerName" value="${caseDetails.getCustomerName()}" onblur="validate(this,'t','AlphaSpace');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Father Name
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="25" style="width:145px" path="FatherName" value="${caseDetails.getFatherName()}" onblur="validate(this,'f','AlphaSpace');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
App Type
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divapptype" style="width:135px;">
|
|
||||||
<form:select path="CustomerType" multiple="false" id="typelist" style="width:153px" onchange="ToggleChks((this.value.toUpperCase()!='APPLICANT' && this.value.toUpperCase()!='-1'),'chksresi!C0L!chksoff!C0L!chksprop!C0L!','!C0L!')" onblur="validate(this,'t','');">
|
|
||||||
<form:option value="-1" label="SELECT" selected="true"/>
|
|
||||||
<c:forEach items="${typelist}" var="type">
|
|
||||||
<form:option value="${type[0]}" label="${type[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Category
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divcategory" style="width:115px;">
|
|
||||||
<form:select path="Category" multiple="false" id="catlist" style="width:133px">
|
|
||||||
<form:option value="-1" label="SELECT" selected="true"/>
|
|
||||||
<c:forEach items="${catlist}" var="cat">
|
|
||||||
<form:option value="${cat[0]}" label="${cat[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
DOB
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="10" style="width:80px" path="DOB" id="dob" value="${caseDetails.getDOB()}" onkeydown="return addSlashes(this,event)" onblur="validate(this,'f','Date')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Mobile No.
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="21" style="width:120px" path="MobileNo" value="${caseDetails.getMobileNo()}" onblur="validate(this,'f','AllowWrong');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Loan Amt
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="15" style="width:100px" path="LoanAmount" value="${caseDetails.getLoanAmount()}" onblur="validate(this,'f','LoanAmount');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
C Person
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="25" style="width:200px" path="ContactPerson" value="${caseDetails.getContactPerson()}" onblur="validate(this,'f','AlphaSpace');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Special Inst.
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<form:input maxlength="50" id="splist" style="width:833px" path="SpecialInst" value="${caseDetails.getSpecialInst()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Residence Details (Section2) Visible for portfolios in which residence visit/ residence TVR could be initiated-->
|
|
||||||
<div id="section2">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
|
||||||
<span class="matrix-title-text">Residence Details</span>
|
|
||||||
<div class="divchk" id="ctrldiv">
|
|
||||||
<form:checkbox path="Rvr" id="chkresi" onclick="HandleClick(this)" />RVR
|
|
||||||
<form:checkbox path="SameResi" id="chksresi" onclick="return FindSameDet(this,'R','ResiPhone')" /><span id="chksresi">Same Resi</span>
|
|
||||||
<form:checkbox path="Rtvr" id="chkteler" onclick="HandleClick(this)" /><span id="chkteler">RTV</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section2) -->
|
|
||||||
<div id="FormPanel2" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls" style="width:100%">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
House No.
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="20" style="width:70px" path="ResiAdd1" value="${caseDetails.getResiAdd1()}" onblur="validate(this,document.getElementById('chkresi').checked ? 't':'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Sub Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="70" style="width:180px" path="ResiAdd2" value="${caseDetails.getResiAdd2()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
City
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<div class="divselect" id="divrcity" style="width:110px;">
|
|
||||||
<form:select path="ResiCity" multiple="false" id="ResiAdd3_citylist" style="width:128px" onblur="validate(this,document.getElementById('chkresi').checked ? 't':'f','')" >
|
|
||||||
<form:option value="-1" label="Select" selected="true"/>
|
|
||||||
<form:option value="Unknown" label="Unknown"/>
|
|
||||||
<c:forEach items="${citylist}" var="city">
|
|
||||||
<form:option value="${city[0]}" label="${city[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="50" style="width:180px" path="ResiAdd3" value="${caseDetails.getResiAdd3()}" onkeyup="ajax_showOptions(this,event)" onblur="onLocalityBlur(this,document.getElementById('chkresi').checked ? 't':'f')" />
|
|
||||||
<form:hidden path="ResiLoc" id="ResiAdd3_hidden" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Landmark
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="50" style="width:150px" path="ResiLandmark" value="${caseDetails.getResiLandmark()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Pincode
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="6" style="width:45px" id="ResiAdd3_Pincode" path="ResiPincode" value="${caseDetails.getResiPincode()}" onblur="validate(this,document.getElementById('chkresi').checked ? 't':'f','Pincode')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Phone No.
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="25" style="width:107px" path="ResiPhone" value="${caseDetails.getResiPhone()}" onblur="validate(this,document.getElementById('chkteler').checked ? 't':'f','Phone')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Office Details (Section3) Visible for portfolios in which office visit/ office TVR could be initiated-->
|
|
||||||
<div id="section3">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/optmale.png" />
|
|
||||||
<span class="matrix-title-text">Office Details</span>
|
|
||||||
<div class="divchk" id="ctrldiv">
|
|
||||||
<form:checkbox path="Ovr" id="chkoffice" onclick="HandleClick(this)" />OVR
|
|
||||||
<form:checkbox path="RCO" id="chkrco" style="display:none" onclick="HandleClick(this)" /><span id="chkrco">RCO</span>
|
|
||||||
<form:checkbox path="SameOffice" id="chksoff" onclick="return FindSameDet(this,'O','OffPhone')" /><span id="chksoff">Same Office</span>
|
|
||||||
<form:checkbox path="Otvr" id="chkteleo" onclick="HandleClick(this)" /><span id="chkteleo">OTV</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section3) -->
|
|
||||||
<div id="FormPanel3" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Company
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="50" style="width:215px" path="CompanyName" value="${caseDetails.getCompanyName()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Plot No.
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="20" style="width:90px" path="OffAdd1" value="${caseDetails.getOffAdd1()}" onblur="validate(this,document.getElementById('chkoffice').checked ? 't':'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Sub Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="70" style="width:200px" path="OffAdd2" value="${caseDetails.getOffAdd2()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
City
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<div class="divselect" id="divocity" style="width:110px;">
|
|
||||||
<form:select path="OffCity" multiple="false" id="OffAdd3_citylist" style="width:128px" onblur="validate(this,document.getElementById('chkoffice').checked ? 't':'f','')">
|
|
||||||
<form:option value="-1" label="Select" selected="true"/>
|
|
||||||
<form:option value="Unknown" label="Unknown"/>
|
|
||||||
<c:forEach items="${citylist}" var="city">
|
|
||||||
<form:option value="${city[0]}" label="${city[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="50" style="width:200px" path="OffAdd3" value="${caseDetails.getOffAdd3()}" onkeyup="ajax_showOptions(this,event)" onblur="validate(this,document.getElementById('chkoffice').checked ? 't':'f','SplInstruction')" />
|
|
||||||
<form:hidden path="OffLoc" id="OffAdd3_hidden" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Pincode
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="6" style="width:45px" id="OffAdd3_Pincode" path="OffPincode" value="${caseDetails.getOffPincode()}" onblur="validate(this,document.getElementById('chkoffice').checked ? 't':'f','Pincode')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Landmark
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="50" style="width:215px" path="OffLandmark" value="${caseDetails.getOffLandmark()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Department
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="25" style="width:200px" path="Department" value="${caseDetails.getDepartment()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Designation
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="25" style="width:210px" path="Designation" value="${caseDetails.getDesignation()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Office Phone-Extn
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input maxlength="25" style="width:150px" path="OffPhone" value="${caseDetails.getOffPhone()}" onblur="validate(this,document.getElementById('chkteleo').checked ? 't':'f','Phone')" />-<form:input type="text" style="width:23px" path="Extension" value="${caseDetails.getExtension()}" onblur="validate(this,'f','Extension')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Property Details (Section4) Visible for portfolios in which property visit could be initiated-->
|
|
||||||
<div id="section4">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
|
||||||
<span class="matrix-title-text">Property Details</span>
|
|
||||||
<div class="divchk" id="ctrldiv">
|
|
||||||
<form:checkbox path="Pvr" id="chkprop" onclick="HandleClick(this)" />PVR
|
|
||||||
<form:checkbox path="RCP" id="chkrcp" style="display:none" onclick="HandleClick(this)" /><span id="chkrcp">RCP</span>
|
|
||||||
<form:checkbox path="OCP" id="chkocp" style="display:none" onclick="HandleClick(this)" /><span id="chkocp">OCP</span>
|
|
||||||
<form:checkbox path="SameProp" id="chksprop" onclick="return FindSameDet(this,'P','PropAdd3_Pincode')" /><span id="chksprop">Same Property</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section4) -->
|
|
||||||
<div id="FormPanel4" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
House / Plot No.
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="20" style="width:120px" path="PropAdd1" value="${caseDetails.getPropAdd1()}" onblur="validate(this,document.getElementById('chkprop').checked ? 't':'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Sub Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="70" style="width:200px" path="PropAdd2" value="${caseDetails.getPropAdd2()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
City
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<div class="divselect" id="divpcity" style="width:110px;">
|
|
||||||
<form:select path="PropCity" multiple="false" id="PropAdd3_citylist" style="width:128px" onblur="validate(this,document.getElementById('chkprop').checked ? 't':'f','')">
|
|
||||||
<form:option value="-1" label="Select" selected="true"/>
|
|
||||||
<form:option value="Unknown" label="Unknown"/>
|
|
||||||
<c:forEach items="${citylist}" var="city">
|
|
||||||
<form:option value="${city[0]}" label="${city[1]}" />
|
|
||||||
</c:forEach>
|
|
||||||
</form:select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Locality
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="50" style="width:200px" path="PropAdd3" value="${caseDetails.getPropAdd3()}" onkeyup="ajax_showOptions(this,event)" onblur="validate(this,document.getElementById('chkprop').checked ? 't':'f','SplInstruction')" />
|
|
||||||
<form:hidden path="PropLoc" id="PropAdd3_hidden" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Landmark
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="50" style="width:180px" path="PropLandmark" value="${caseDetails.getPropLandmark()}" onblur="validate(this,'f','SplInstruction')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget" style="margin-left:2px">
|
|
||||||
<div class="lblcontainer" style="padding:1px">
|
|
||||||
Pincode
|
|
||||||
</div>
|
|
||||||
<br >
|
|
||||||
<div class="inputcontainer" style="padding:1px">
|
|
||||||
<form:input readonly="true" maxlength="6" style="width:45px" id="PropAdd3_Pincode" path="PropPincode" value="${caseDetails.getResiPincode()}" onblur="validate(this,document.getElementById('chkprop').checked ? 't':'f','Pincode')" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Reference Details (Section5) Visible for portfolios in which reference calling could be initiated-->
|
|
||||||
<div id="section5">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/ref.png" />
|
|
||||||
<span class="matrix-title-text">Reference Details</span>
|
|
||||||
<div class="divchk" id="ctrldiv">
|
|
||||||
<form:checkbox path="Refvr" id="chkref" onclick="setFormValidation(this,'FormPanel5','Ref1Name,Ref1Address,Ref1Contactno','t,f,t','AlphaSpace,SplInstruction,Phone',false)" />Ref Check
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section5) -->
|
|
||||||
<div id="FormPanel5" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls">
|
|
||||||
<tr>
|
|
||||||
<td> </td>
|
|
||||||
<td>Name</td>
|
|
||||||
<td>Address</td>
|
|
||||||
<td>Contact Numbers</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Reference 1 </td>
|
|
||||||
<td><form:input maxlength="30" style="width:200px" path="Ref1Name" value="${caseDetails.getRef1Name()}" onblur="validate(this,document.getElementById('chkref').checked ? 't':'f','AlphaSpace')" /></td>
|
|
||||||
<td><form:input maxlength="100" style="width:450px" path="Ref1Address" value="${caseDetails.getRef1Address()}" onblur="validate(this,'f','SplInstruction')" /></td>
|
|
||||||
<td><form:input maxlength="25" style="width:160px" path="Ref1Contactno" value="${caseDetails.getRef1Contactno()}" onblur="validate(this,document.getElementById('chkref').checked ? 't':'f','Phone')" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td> </td>
|
|
||||||
<td>Name</td>
|
|
||||||
<td>Address</td>
|
|
||||||
<td>Contact Numbers</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Reference 2 </td>
|
|
||||||
<td><form:input maxlength="30" style="width:200px" path="Ref2Name" value="${caseDetails.getRef2Name()}" onblur="validate(this,'f','AlphaSpace')" /></td>
|
|
||||||
<td><form:input maxlength="100" style="width:450px" path="Ref2Address" value="${caseDetails.getRef2Address()}" onblur="validate(this,'f','SplInstruction')" /></td>
|
|
||||||
<td><form:input maxlength="25" style="width:160px" path="Ref2Contactno" value="${caseDetails.getRef2Contactno()}" onblur="validate(this,'f','Phone')" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Dynamic Form (Section6). All controls under this section will be generated dynamically during runtime-->
|
|
||||||
<div id="section6">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/othdet.png" />
|
|
||||||
<span class="matrix-title-text">Other Details</span>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<div id="FormPanel6" class="FormPanel">
|
|
||||||
${caseDetails.getDynamicPanel()}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<!-- Document Details (Section7) Visible for portfolios in which document verification could be done-->
|
|
||||||
<div id="section7">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/documents.png" />
|
|
||||||
<span class="matrix-title-text">Document Details</span>
|
|
||||||
<div class="divchk" id="ctrldiv">
|
|
||||||
<form:checkbox path="Docvr" id="chkdoc" onclick="hideForm(this.id,'FormPanel7')" />Doc VR
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section7) -->
|
|
||||||
<div id="FormPanel7" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls">
|
|
||||||
<tr>
|
|
||||||
<td>Document</td>
|
|
||||||
<td>Vendor</td>
|
|
||||||
<td>Service Provider</td>
|
|
||||||
<td>Name</td>
|
|
||||||
<td>Unique No.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="divselect" id="divdoclist" style="width:90px;">
|
|
||||||
<select id="doclist" style="width:108px">
|
|
||||||
<option value="-1" selected="true">
|
|
||||||
<c:forEach items="${doclist}" var="doc">
|
|
||||||
<option value="${doc[0]}" >${doc[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="text" style="width:150px" value="" id="vendor" /></td>
|
|
||||||
<td><input type="text" style="width:200px" value="" id="serviceprovider" /></td>
|
|
||||||
<td><input type="text" style="width:200px" value="" id="name" /></td>
|
|
||||||
<td><input type="text" style="width:180px" value="" id="uniqueno" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<form:hidden path="DynamicFields" value="${caseDetails.getDynamicFields()}" />
|
|
||||||
<form:hidden path="VisibleContents" value="${caseDetails.getVisibleContents()}" />
|
|
||||||
<form:hidden path="FormMode" />
|
|
||||||
<form:hidden path="UUID" />
|
|
||||||
<form:hidden path="CaseId" />
|
|
||||||
<!-- -->
|
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
|
||||||
<c:if test="${caseDetails.getFormMode() eq 2}">
|
|
||||||
<input type="button" class="button" name="btncancel" style="margin-left:1px;margin-top:5px;float:right" value="Cancel" id="btncancel" accesskey="C" onclick="MatrixDialog.close(0)" />
|
|
||||||
</c:if>
|
|
||||||
<input type="button" class="button" name="btnsave" style="margin-top:5px;float:right" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitForm('caseDetails');" />
|
|
||||||
</form:form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
HideSections('rtv');
|
|
||||||
HideSections('otv');
|
|
||||||
HideSections('section');
|
|
||||||
UnhideSections('${visibleContents}','!C0L!');
|
|
||||||
hideForm('chkresi','FormPanel2');
|
|
||||||
hideForm('chkoffice','FormPanel3');
|
|
||||||
hideForm('chkprop','FormPanel4');
|
|
||||||
hideForm('chkref','FormPanel5');
|
|
||||||
hideForm('chkdoc','FormPanel7');
|
|
||||||
ToggleChks((document.getElementById('chkresi').checked && document.getElementById('chkoffice').checked),'chkrco'+ColDelim,ColDelim);
|
|
||||||
ToggleChks((document.getElementById('chkresi').checked),'chkrcp'+ColDelim,ColDelim);
|
|
||||||
ToggleChks((document.getElementById('chkoffice').checked),'chkocp'+ColDelim,ColDelim);
|
|
||||||
ToggleChks((document.getElementById('typelist').value.toUpperCase()!='APPLICANT' && document.getElementById('typelist').value.toUpperCase()!='-1'),'chksresi!C0L!chksoff!C0L!chksprop!C0L!','!C0L!');
|
|
||||||
document.getElementById('ApplNo').focus();
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Process Message -->
|
|
||||||
<c:if test="${not empty caseDetails.getErrMsg()}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${caseDetails.getErrMsg()}',3000,200,300); </script>
|
|
||||||
<c:if test="${caseDetails.isProcessFlag()==true and caseDetails.getFormMode()==2}">
|
|
||||||
<script language="javascript" type="text/javascript">MatrixDialog.close(1);</script>
|
|
||||||
</c:if>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
|
||||||
</html>
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/editcases.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/punching/edit-cases.js?ver=1" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -21,11 +21,10 @@
|
|||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/edit-cases-v1.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
|
|
||||||
<title>Cygnus 1.0 | Edit Cases</title>
|
<title>Cygnus 1.0 | Edit Cases</title>
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="/matrix/css/edit-cases-v1.css?v=8" rel="stylesheet" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body class="matrix-shell matrix-v2 matrix-tool-workspace matrix-edit-cases">
|
<body class="matrix-shell matrix-v2 matrix-tool-workspace matrix-edit-cases">
|
||||||
<div id='PageFrame'>
|
<div id='PageFrame'>
|
||||||
@@ -33,22 +32,22 @@
|
|||||||
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
<div id="formcontainer" class="matrix-tool-workspace__content">
|
||||||
<form:form method="post" name="caseGrid" id="caseGrid" modelAttribute="caseGrid" target="_blank">
|
<form:form method="post" name="caseGrid" id="caseGrid" modelAttribute="caseGrid" target="_parent">
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
<!-- Common Details (Section1) Visible for all portfolios-->
|
||||||
<div>
|
<div>
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text" align="absmiddle">List of Cases</span>
|
<span class="matrix-title-text" align="absmiddle">List of Cases</span>
|
||||||
<div class="divselect" id="divportfolio" style="width:167px;position:absolute;top:3px;right:30px;">
|
<form:select path="PortfolioId" multiple="false" id="portlist" cssClass="matrix-edit-cases__portfolio-select" onchange="SubmitForm('caselist','_parent','caseGrid')">
|
||||||
<form:select path="PortfolioId" multiple="false" id="portlist" style="width:185px" onchange="SubmitForm('caselist','_parent','caseGrid')">
|
|
||||||
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
<form:option value="-1" label="SELECT PORTFOLIO" selected="true"/>
|
||||||
<c:forEach items="${portlist}" var="port">
|
<c:forEach items="${portlist}" var="port">
|
||||||
<form:option value="${port[0]}" label="${port[1]}" />
|
<form:option value="${port.value}" label="${port.label}" />
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</form:select>
|
</form:select>
|
||||||
</div>
|
<button class="matrix-edit-cases__refresh" type="button" title="Refresh Grid" onclick="SubmitForm('caselist','_parent','caseGrid')">
|
||||||
<img class="matrix-title-action" src="/matrix/images/reload.png" title="Refresh Grid" onclick="SubmitForm('caselist','_parent','caseGrid')"/>
|
<img src="/matrix/images/reload.png" alt="" />
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="TablePanel" class="tableContainer">
|
<div id="TablePanel" class="tableContainer">
|
||||||
@@ -71,17 +70,17 @@
|
|||||||
<c:forEach items="${caseList}" var="casedet" varStatus="status">
|
<c:forEach items="${caseList}" var="casedet" varStatus="status">
|
||||||
<tr id="row${status.count}" tabindex="0" title="Open this case for editing">
|
<tr id="row${status.count}" tabindex="0" title="Open this case for editing">
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="row${status.count}uuid" id="row${status.count}uuid" value="${casedet[0]}" />
|
<input type="hidden" name="row${status.count}uuid" id="row${status.count}uuid" value="${casedet.documentCaseId}" />
|
||||||
<input type="hidden" name="row${status.count}portid" id="row${status.count}portid" value="${casedet[9]}" />
|
<input type="hidden" name="row${status.count}portid" id="row${status.count}portid" value="${casedet.portfolioId}" />
|
||||||
${status.count}</td>
|
${status.count}</td>
|
||||||
<td>${casedet[1]}</td>
|
<td>${casedet.mvCode}</td>
|
||||||
<td>${casedet[2]}</td>
|
<td>${casedet.fileNumber}</td>
|
||||||
<td>${casedet[3]}</td>
|
<td>${casedet.customerName}</td>
|
||||||
<td>${casedet[4]}</td>
|
<td>${casedet.applicationType}</td>
|
||||||
<td>${casedet[5]}</td>
|
<td>${casedet.product}</td>
|
||||||
<td>${casedet[6]}</td>
|
<td>${casedet.receivedOn}</td>
|
||||||
<td>${casedet[7]}</td>
|
<td>${casedet.punchedBy}</td>
|
||||||
<td>${casedet[8]}</td>
|
<td>${casedet.branchCode}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -3,6 +3,12 @@
|
|||||||
<%@page language="java" session="true" %>
|
<%@page language="java" session="true" %>
|
||||||
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<c:set var="pageFormMode" value="${not empty model ? model.formMode : formmode}" />
|
||||||
|
<c:set var="pagePortfolioId" value="${not empty model ? model.portfolioId : portfolio_id}" />
|
||||||
|
<c:set var="pageDynamicFields" value="${not empty model ? model.dynamicFields : dynamicfields}" />
|
||||||
|
<c:set var="pageDocumentCaseId" value="${not empty model ? model.documentCaseId : duuid}" />
|
||||||
|
<c:set var="pageUserId" value="${not empty model ? model.userId : usid}" />
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
@@ -12,12 +18,16 @@
|
|||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
|
<script language="javascript" src="/matrix/js/lib/notifications.js?ver=1" type="text/javascript"></script>
|
||||||
|
<script language="javascript" src="/matrix/js/lib/payload-crypto.js?ver=1" type="text/javascript"></script>
|
||||||
|
<script language="javascript" src="/matrix/js/lib/form-validation.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/punching.js?ver=4" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/punching/initiation.js?ver=8" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/punching/initiation-validation.js?ver=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ajax.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/edp/punching/application-save.js?ver=2" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ajax-dynamic-list.js?ver=1" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js?ver=2" type="text/javascript"></script>
|
||||||
|
<script language="javascript" src="/matrix/js/ajax-dynamic-list.js?ver=2" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
||||||
@@ -26,11 +36,11 @@
|
|||||||
<link href="/matrix/css/table.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/table.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/autocomplete.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/autocomplete.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/punch-workspace-v3.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/punch-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
||||||
<link href="/matrix/css/add-cases-v4.css?v=1" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/add-cases-v4.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
||||||
@@ -44,10 +54,10 @@
|
|||||||
<!-- Title Bar -->
|
<!-- Title Bar -->
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<c:if test="${formmode!=2}">
|
<c:if test="${pageFormMode!=2}">
|
||||||
<!-- Dynamic Menu -->
|
<!-- Dynamic Menu -->
|
||||||
<nav class="matrix-shell__navigation" aria-label="Primary navigation">
|
<nav class="matrix-shell__navigation" aria-label="Primary navigation">
|
||||||
<c:out value="${Sessvals.menuHtml}" escapeXml="false" />
|
<c:out value="${sessionScope.userSession.menuHtml}" escapeXml="false" />
|
||||||
</nav>
|
</nav>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -59,21 +69,33 @@
|
|||||||
<div class="title matrix-form-title">
|
<div class="title matrix-form-title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
||||||
<span class="matrix-title-text matrix-form-title__heading">Common Details <span id='recfound'></span></span>
|
<span class="matrix-title-text matrix-form-title__heading">Common Details <span id='recfound'></span></span>
|
||||||
<label class="matrix-form-title__field">Skip To <input type="text" class="textbox" style="width:30px" onkeypress="return NumberOnly(event)" onblur="GotoRecord(this,'recno')"></label>
|
<label class="matrix-form-title__field">Skip To <input type="text" class="textbox" style="width:50px" onkeypress="return NumberOnly(event)" onblur="GotoRecord(this,'recno')"></label>
|
||||||
<label class="matrix-form-title__field">Search By File No <input type="text" class="textbox" style="width:100px" onblur="GotoRecord(this,'query')"></label>
|
<label class="matrix-form-title__field">Search By File No <input type="text" class="textbox" style="width:150px" onblur="GotoRecord(this,'query')"></label>
|
||||||
|
|
||||||
<!-- Checkbox for AUTO CUT diabled for now -->
|
<!-- Checkbox for AUTO CUT diabled for now -->
|
||||||
<label class="matrix-form-title__check"><input type="checkbox" name="autocut" checked id="autocut" /> Auto Cut-Off</label>
|
<label class="matrix-form-title__check"><input type="checkbox" name="autocut" checked id="autocut" /> Auto Cut-Off</label>
|
||||||
<c:if test="${formmode==2}">
|
<c:if test="${pageFormMode==2}">
|
||||||
<input type="hidden" id="portfolio_id" name="portfolio_id" value="-1" />
|
<input type="hidden" id="portfolio_id" name="portfolioId" value="${pagePortfolioId}" />
|
||||||
|
<button type="button" class="matrix-edit-back" onclick="history.back()" title="Back to case list">
|
||||||
|
<span aria-hidden="true">←</span> Back
|
||||||
|
</button>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${formmode!=2}">
|
<c:if test="${pageFormMode!=2}">
|
||||||
<div class="divselect matrix-form-title__end" id="divportfolio" style="width:217px;">
|
<div class="divselect matrix-form-title__end" id="divportfolio" style="width:297px;">
|
||||||
<select id="portfolio_id" name="portfolio_id" style="width:235px" onchange="SubmitForm('caseadd','_parent','casedetails')">
|
<select id="portfolio_id" name="portfolioId" style="width:315px" onchange="SubmitForm('caseadd','_parent','casedetails')">
|
||||||
<option value="-1" selected >SELECT PORTFOLIO</option>
|
<option value="-1" selected >SELECT PORTFOLIO</option>
|
||||||
<c:forEach items="${portlist}" var="port">
|
<c:choose>
|
||||||
<option value="${port[0]}">${port[1]}</option>
|
<c:when test="${not empty model}">
|
||||||
|
<c:forEach items="${model.options['portfolio.']}" var="port">
|
||||||
|
<option value="${port.value}"><c:out value="${port.label}" /></option>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:forEach items="${portlist}" var="port">
|
||||||
|
<option value="${port[0]}"><c:out value="${port[1]}" /></option>
|
||||||
|
</c:forEach>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -97,7 +119,7 @@
|
|||||||
Appl No.
|
Appl No.
|
||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<input type="text" id="applno" name="applno" maxlength="25" style="width:115px;text-transform:uppercase" value="" onblur="if(validate(this,'t','AlphaNumeric')){FindSameDet(this,'A','customername');}" />
|
<input type="text" id="applno" name="applno" maxlength="25" style="width:115px;text-transform:uppercase" value="" onblur="if(CygnusInitiationValidation.validateField(this)){FindSameDet(this,'A','customername');}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget">
|
<div class="widget">
|
||||||
@@ -105,7 +127,7 @@
|
|||||||
Bank Code
|
Bank Code
|
||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<input type="text" maxlength="25" id="bankcode" name="bankcode" style="width:70px;text-transform:uppercase" value="" onblur="validate(this,'f','AlphaNumeric');" />
|
<input type="text" maxlength="25" id="bankcode" name="bankcode" style="width:70px;text-transform:uppercase" value="" onblur="CygnusInitiationValidation.validateField(this);" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget">
|
<div class="widget">
|
||||||
@@ -114,11 +136,16 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<div class="divselect" id="divbranch" style="width:135px;">
|
<div class="divselect" id="divbranch" style="width:135px;">
|
||||||
<select id="bank_branch_id" name="bank_branch_id" style="width:153px" onblur="validate(this,'t','');">
|
<select id="bank_branch_id" name="bank_branch_id" style="width:153px" onblur="CygnusInitiationValidation.validateField(this);">
|
||||||
<option value="-1" selected >SELECT</option>
|
<option value="-1" selected >SELECT</option>
|
||||||
<c:forEach items="${branchlist}" var="brnch">
|
<c:choose>
|
||||||
<option value="${brnch[0]}">${brnch[1]}</option>
|
<c:when test="${not empty model}">
|
||||||
|
<c:forEach items="${model.options['branch.']}" var="option">
|
||||||
|
<option value="${option.value}"><c:out value="${option.label}" /></option>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise><c:forEach items="${branchlist}" var="brnch"><option value="${brnch[0]}"><c:out value="${brnch[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -129,11 +156,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<div class="divselect" id="divproduct" style="width:132px;">
|
<div class="divselect" id="divproduct" style="width:132px;">
|
||||||
<select id="product" name="product" style="width:150px" onblur="validate(this,'t','');">
|
<select id="product" name="product" style="width:150px" onblur="CygnusInitiationValidation.validateField(this);">
|
||||||
<option value="-1" selected >SELECT</option>
|
<option value="-1" selected >SELECT</option>
|
||||||
<c:forEach items="${prodlist}" var="prod">
|
<c:choose>
|
||||||
<option value="${prod[0]}">${prod[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['product.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${prodlist}" var="prod"><option value="${prod[0]}"><c:out value="${prod[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -143,7 +171,7 @@
|
|||||||
Name
|
Name
|
||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<input type="text" id="customername" name="customername" maxlength="100" style="width:200px" value="" onblur="validate(this,'t','AlphaSpace');" />
|
<input type="text" id="customername" name="customername" maxlength="100" style="width:200px" value="" onblur="CygnusInitiationValidation.validateField(this);" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget">
|
<div class="widget">
|
||||||
@@ -160,11 +188,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inputcontainer">
|
<div class="inputcontainer">
|
||||||
<div class="divselect" id="divapptype" style="width:135px;">
|
<div class="divselect" id="divapptype" style="width:135px;">
|
||||||
<select id="apptype" name="apptype" style="width:153px" onchange="ToggleChks((this.value.toUpperCase()!='APPLICANT' && this.value.toUpperCase()!='-1'),'sradd!C0L!soadd!C0L!spadd!C0L!','!C0L!')" onblur="validate(this,'t','');">
|
<select id="apptype" name="apptype" style="width:153px" onchange="ToggleChks((this.value.toUpperCase()!='APPLICANT' && this.value.toUpperCase()!='-1'),['sradd','soadd','spadd'])" onblur="CygnusInitiationValidation.validateField(this);">
|
||||||
<option value="-1" selected>SELECT</option>
|
<option value="-1" selected>SELECT</option>
|
||||||
<c:forEach items="${typelist}" var="type">
|
<c:choose>
|
||||||
<option value="${type[0]}">${type[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['applicationType.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${typelist}" var="type"><option value="${type[0]}"><c:out value="${type[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -177,9 +206,10 @@
|
|||||||
<div class="divselect" id="divcategory" style="width:115px;">
|
<div class="divselect" id="divcategory" style="width:115px;">
|
||||||
<select id="category" name="category" style="width:133px">
|
<select id="category" name="category" style="width:133px">
|
||||||
<option value="-1" selected>SELECT</option>
|
<option value="-1" selected>SELECT</option>
|
||||||
<c:forEach items="${catlist}" var="cat">
|
<c:choose>
|
||||||
<option value="${cat[0]}">${cat[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['category.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${catlist}" var="cat"><option value="${cat[0]}"><c:out value="${cat[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -238,10 +268,10 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
||||||
<span class="matrix-title-text">Residence Details</span>
|
<span class="matrix-title-text">Residence Details</span>
|
||||||
<div class="divchk" id="ctrldiv">
|
<div class="divchk ctrldiv">
|
||||||
<input type="checkbox" id="rv" name="rv" onclick="HandleClick(this)" />RVR
|
<input type="checkbox" id="rv" name="rv" onclick="HandleClick(this)" />RVR
|
||||||
<input type="checkbox" id="sradd" name="rv" onclick="return FindSameDet(this,'R','rphone')" /><span id="sradd">Same Resi</span>
|
<input type="checkbox" id="sradd" name="sradd" onclick="return FindSameDet(this,'R','rphone')" /><span id="sradd-label">Same Resi</span>
|
||||||
<input type="checkbox" id="rtv" name="rv" onclick="HandleClick(this)" /><span id="rtv">RTV</span>
|
<input type="checkbox" id="rtv" name="rtv" onclick="HandleClick(this)" /><span id="rtv-label">RTV</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -287,9 +317,10 @@
|
|||||||
<select id="rcity" name="colr_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
<select id="rcity" name="colr_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
||||||
<option value="-1">Select</option>
|
<option value="-1">Select</option>
|
||||||
<option value="Unknown">Unknown</option>
|
<option value="Unknown">Unknown</option>
|
||||||
<c:forEach items="${citylist}" var="city">
|
<c:choose>
|
||||||
<option value="${city[0]}">${city[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['city.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${citylist}" var="city"><option value="${city[0]}"><c:out value="${city[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -345,11 +376,11 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/optmale.png" />
|
<img class="matrix-title-icon" src="/matrix/images/optmale.png" />
|
||||||
<span class="matrix-title-text">Office Details</span>
|
<span class="matrix-title-text">Office Details</span>
|
||||||
<div class="divchk" id="ctrldiv">
|
<div class="divchk ctrldiv">
|
||||||
<input type="checkbox" id="ov" onclick="HandleClick(this)" />OVR
|
<input type="checkbox" id="ov" onclick="HandleClick(this)" />OVR
|
||||||
<input type="checkbox" id="rco" style="display:none" onclick="HandleClick(this)" /><span id="rco">RCO</span>
|
<input type="checkbox" id="rco" style="display:none" onclick="HandleClick(this)" /><span id="rco-label">RCO </span>
|
||||||
<input type="checkbox" id="soadd" onclick="return FindSameDet(this,'O','ophone')" /><span id="soadd">Same Office</span>
|
<input type="checkbox" id="soadd" onclick="return FindSameDet(this,'O','ophone')" /><span id="soadd-label">Same Office</span>
|
||||||
<input type="checkbox" id="otv" onclick="HandleClick(this)" /><span id="otv">OTV</span>
|
<input type="checkbox" id="otv" onclick="HandleClick(this)" /><span id="otv-label">OTV</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -404,9 +435,10 @@
|
|||||||
<select id="ocity" name="colo_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
<select id="ocity" name="colo_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
||||||
<option value="-1">Select</option>
|
<option value="-1">Select</option>
|
||||||
<option value="Unknown">Unknown</option>
|
<option value="Unknown">Unknown</option>
|
||||||
<c:forEach items="${citylist}" var="city">
|
<c:choose>
|
||||||
<option value="${city[0]}">${city[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['city.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${citylist}" var="city"><option value="${city[0]}"><c:out value="${city[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -445,7 +477,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br >
|
<br >
|
||||||
<div class="inputcontainer" style="padding:1px">
|
<div class="inputcontainer" style="padding:1px">
|
||||||
<input type="text" id="department" name="designation" maxlength="50" style="width:100px" value="" onblur="validate(this,'f','SplInstruction')" />
|
<input type="text" id="department" name="department" maxlength="50" style="width:100px" value="" onblur="validate(this,'f','SplInstruction')" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget" style="margin-left:2px">
|
<div class="widget" style="margin-left:2px">
|
||||||
@@ -462,8 +494,10 @@
|
|||||||
Office Phone-Extn
|
Office Phone-Extn
|
||||||
</div>
|
</div>
|
||||||
<br >
|
<br >
|
||||||
<div class="inputcontainer" style="padding:1px">
|
<div class="inputcontainer matrix-phone-extension" style="padding:1px">
|
||||||
<input type="text" id="ophone" name="ophone" maxlength="25" style="width:100px" value="" onblur="validate(this,document.getElementById('otv').checked ? 't':'f','Phone')" />-<input type="text" id="extension" name="extension" style="width:23px" maxlength="10" value="" onblur="validate(this,'f','Extension')" />
|
<input type="text" id="ophone" name="ophone" maxlength="25" value="" onblur="validate(this,document.getElementById('otv').checked ? 't':'f','Phone')" />
|
||||||
|
<span aria-hidden="true">-</span>
|
||||||
|
<input type="text" id="extension" name="extension" maxlength="10" value="" aria-label="Office phone extension" onblur="validate(this,'f','Extension')" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -480,11 +514,11 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
<img class="matrix-title-icon" src="/matrix/images/resdet.png" />
|
||||||
<span class="matrix-title-text">Property Details</span>
|
<span class="matrix-title-text">Property Details</span>
|
||||||
<div class="divchk" id="ctrldiv">
|
<div class="divchk ctrldiv">
|
||||||
<input type="checkbox" id="pv" onclick="HandleClick(this)" />PVR
|
<input type="checkbox" id="pv" onclick="HandleClick(this)" />PVR
|
||||||
<input type="checkbox" id="rcp" style="display:none" onclick="HandleClick(this)" /><span id="rcp">RCP</span>
|
<input type="checkbox" id="rcp" style="display:none" onclick="HandleClick(this)" /><span id="rcp-label">RCP </span>
|
||||||
<input type="checkbox" id="ocp" style="display:none" onclick="HandleClick(this)" /><span id="ocp">OCP</span>
|
<input type="checkbox" id="ocp" style="display:none" onclick="HandleClick(this)" /><span id="ocp-label">OCP </span>
|
||||||
<input type="checkbox" id="spadd" onclick="return FindSameDet(this,'P','ppincode')" /><span id="spadd">Same Property</span>
|
<input type="checkbox" id="spadd" onclick="return FindSameDet(this,'P','ppincode')" /><span id="spadd-label">Same Property</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -499,7 +533,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br >
|
<br >
|
||||||
<div class="inputcontainer" style="padding:1px">
|
<div class="inputcontainer" style="padding:1px">
|
||||||
<input type="text" id="paddr1" name="paddr1" readonly="readonly" maxlength="40" style="width:90px" value="" onblur="validate(this,document.getElementById('rv').checked ? 't':'f','SplInstruction')" />
|
<input type="text" id="paddr1" name="paddr1" readonly="readonly" maxlength="40" style="width:90px" value="" onblur="CygnusInitiationValidation.validateField(this);" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget" style="margin-left:2px">
|
<div class="widget" style="margin-left:2px">
|
||||||
@@ -530,9 +564,10 @@
|
|||||||
<select id="pcity" name="colp_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
<select id="pcity" name="colp_citylist" style="width:128px" onblur="HandleBlur(this)" >
|
||||||
<option value="-1">Select</option>
|
<option value="-1">Select</option>
|
||||||
<option value="Unknown">Unknown</option>
|
<option value="Unknown">Unknown</option>
|
||||||
<c:forEach items="${citylist}" var="city">
|
<c:choose>
|
||||||
<option value="${city[0]}">${city[1]}</option>
|
<c:when test="${not empty model}"><c:forEach items="${model.options['city.']}" var="option"><option value="${option.value}"><c:out value="${option.label}" /></option></c:forEach></c:when>
|
||||||
</c:forEach>
|
<c:otherwise><c:forEach items="${citylist}" var="city"><option value="${city[0]}"><c:out value="${city[1]}" /></option></c:forEach></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -553,7 +588,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br >
|
<br >
|
||||||
<div class="inputcontainer" style="padding:1px">
|
<div class="inputcontainer" style="padding:1px">
|
||||||
<input type="text" id="ppincode" name="colp_pincode" readonly="readonly" maxlength="6" style="width:45px" value="" onblur="validate(this,document.getElementById('rv').checked ? 't':'f','Pincode')" />
|
<input type="text" id="ppincode" name="colp_pincode" readonly="readonly" maxlength="6" style="width:45px" value="" onblur="CygnusInitiationValidation.validateField(this);" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="widget" style="margin-left:2px">
|
<div class="widget" style="margin-left:2px">
|
||||||
@@ -579,7 +614,7 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/ref.png" />
|
<img class="matrix-title-icon" src="/matrix/images/ref.png" />
|
||||||
<span class="matrix-title-text">Reference Details</span>
|
<span class="matrix-title-text">Reference Details</span>
|
||||||
<div class="divchk" id="ctrldiv">
|
<div class="divchk ctrldiv">
|
||||||
<input type="checkbox" id="refv" name="refv" onclick="HandleClick(this)" />Ref Check
|
<input type="checkbox" id="refv" name="refv" onclick="HandleClick(this)" />Ref Check
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -621,12 +656,15 @@
|
|||||||
<div id="section6">
|
<div id="section6">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/othdet.png" />
|
<img class="matrix-title-icon" src="/matrix/images/edit_form.png" alt="" />
|
||||||
<span class="matrix-title-text">Other Details</span>
|
<span class="matrix-title-text">Other Details</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div id="FormPanel6" class="FormPanel">
|
<div id="FormPanel6" class="FormPanel">
|
||||||
${dynamichtml}
|
<c:choose>
|
||||||
|
<c:when test="${not empty model}"><c:out value="${model.dynamicHtml}" escapeXml="false" /></c:when>
|
||||||
|
<c:otherwise><c:out value="${dynamichtml}" escapeXml="false" /></c:otherwise>
|
||||||
|
</c:choose>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -641,7 +679,7 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
<img class="matrix-title-icon" src="/matrix/images/documents.png" />
|
<img class="matrix-title-icon" src="/matrix/images/documents.png" />
|
||||||
<span class="matrix-title-text">Document Details</span>
|
<span class="matrix-title-text">Document Details</span>
|
||||||
<div class="divchk" id="ctrldiv">
|
<div class="divchk ctrldiv">
|
||||||
<input type="checkbox" name="docv" id="docv" />Doc VR
|
<input type="checkbox" name="docv" id="docv" />Doc VR
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -650,42 +688,65 @@
|
|||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<input type="hidden" id="dynamicfields" name="dynamicfields" value="${dynamicfields}" />
|
<input type="hidden" id="dynamicfields" name="dynamicfields" value="${pageDynamicFields}" />
|
||||||
<input type="hidden" id="visiblecontents" name="visiblecontents" value="${visiblecontents}" />
|
<input type="hidden" id="visiblecontents" name="visiblecontents" value="${visiblecontents}" />
|
||||||
<input type="hidden" id="uuid" name="uuid" value="${duuid}" />
|
<input type="hidden" id="initial-portfolio-id" value="${pagePortfolioId}" />
|
||||||
|
<c:if test="${not empty model}">
|
||||||
|
<c:forEach items="${model.visibleSections}" var="section">
|
||||||
|
<span hidden class="model-visible-section"><c:out value="${section}" /></span>
|
||||||
|
</c:forEach>
|
||||||
|
</c:if>
|
||||||
|
<input type="hidden" id="uuid" name="uuid" value="${pageDocumentCaseId}" />
|
||||||
<input type="hidden" id="case_id" name="case_id" value="" />
|
<input type="hidden" id="case_id" name="case_id" value="" />
|
||||||
<input type="hidden" id="company_id" name="company_id" value="${Sessvals.getCompanyID()}" />
|
<input type="hidden" id="company_id" name="company_id" value="${sessionScope.userSession.companyId}" />
|
||||||
<input type="hidden" id="branch_id" name="branch_id" value="${Sessvals.getBranchID()}" />
|
<input type="hidden" id="branch_id" name="branch_id" value="${sessionScope.userSession.branchId}" />
|
||||||
<input type="hidden" id="status" name="status" value="" />
|
<input type="hidden" id="status" name="status" value="" />
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
<c:if test="${pageFormMode gt 0}">
|
||||||
<c:if test="${formmode gt 0}">
|
|
||||||
<div style="position:fixed;text-align:right;bottom:0px;width:980px;" class="buttonbar">
|
<div style="position:fixed;text-align:right;bottom:0px;width:980px;" class="buttonbar">
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
|
||||||
<input type="button" class="button" name="btnfirst" style="margin-left:5px;margin-top:-2px;float:left;width:80px" value="" id="btnfirst" accesskey="F" onclick="findRecord(1)" />
|
<input type="button" class="button" name="btnfirst" style="margin-left:5px;margin-top:-2px;float:left;width:80px" value="" id="btnfirst" accesskey="F" onclick="findRecord(1)" />
|
||||||
<input type="button" class="button" name="btnprev" style="margin-top:-2px;float:left;width:80px" value="" id="btnprev" accesskey="P" onclick="findRecord(2)" />
|
<input type="button" class="button" name="btnprev" style="margin-top:-2px;float:left;width:80px" value="" id="btnprev" accesskey="P" onclick="findRecord(2)" />
|
||||||
<input type="button" class="button" name="btnnext" style="margin-top:-2px;float:left;width:80px" value="" id="btnnext" accesskey="N" onclick="findRecord(3)" />
|
<input type="button" class="button" name="btnnext" style="margin-top:-2px;float:left;width:80px" value="" id="btnnext" accesskey="N" onclick="findRecord(3)" />
|
||||||
<input type="button" class="button" name="btnlast" style="margin-top:-2px;float:left;width:80px" value="" id="btnlast" accesskey="L" onclick="findRecord(4)" />
|
<input type="button" class="button" name="btnlast" style="margin-top:-2px;float:left;width:80px" value="" id="btnlast" accesskey="L" onclick="findRecord(4)" />
|
||||||
<input type="button" class="button" name="btnsave" style="float:right" value="Save" id="btnsave" accesskey="S" onclick="return ValidateSubmitForm('casedetails');" />
|
<input type="button" class="button" name="btnsave" style="float:right" value="Save" id="btnsave" accesskey="S" onclick="return CygnusInitiation.save(event);" />
|
||||||
<c:if test="${formmode!=2}">
|
<c:if test="${pageFormMode!=2}">
|
||||||
<input type="button" class="button" name="btnadd" style="float:right" value="Add" id="btnadd" accesskey="A" onclick="return AddNewRecord();" />
|
<input type="button" class="button" name="btnadd" style="float:right" value="Add" id="btnadd" accesskey="A" onclick="return AddNewRecord();" />
|
||||||
</c:if>
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
</form>
|
</form>
|
||||||
<input type="hidden" id="formmode" name="formmode" value="${formmode}" />
|
<input type="hidden" id="formmode" name="formmode" value="${pageFormMode}" />
|
||||||
<input type="hidden" id="usid" name="usid" value="${usid}" />
|
<input type="hidden" id="usid" name="usid" value="${pageUserId}" />
|
||||||
|
<c:if test="${not empty model.messageDetails}">
|
||||||
|
<span id="page-error-code" hidden><c:out value="${model.messageDetails.code}" /></span>
|
||||||
|
<span id="page-error-message" hidden><c:out value="${model.messageDetails.message}" /></span>
|
||||||
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<!-- Page Load Javascript -->
|
<!-- Page Load Javascript -->
|
||||||
<script language="javascript" type="text/javascript">
|
<script language="javascript" type="text/javascript">
|
||||||
InitPage('${portfolio_id}','${visiblecontents}');
|
(function () {
|
||||||
|
CygnusInitiationValidation.bind(document.getElementById("casedetails"));
|
||||||
|
var sectionFields = document.querySelectorAll(".model-visible-section");
|
||||||
|
if (sectionFields.length > 0) {
|
||||||
|
document.getElementById("visiblecontents").value = Array.prototype.map.call(
|
||||||
|
sectionFields, function (field) { return field.textContent; }
|
||||||
|
).join(ColDelim);
|
||||||
|
}
|
||||||
|
InitPage();
|
||||||
|
|
||||||
|
var code = document.getElementById("page-error-code");
|
||||||
|
var errorMessage = document.getElementById("page-error-message");
|
||||||
|
if (code && errorMessage) {
|
||||||
|
CygnusNotifications.show({
|
||||||
|
type: "danger", code: code.textContent,
|
||||||
|
message: errorMessage.textContent, duration: 3000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}());
|
||||||
</script>
|
</script>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- Process Message -->
|
<!-- Process Message -->
|
||||||
<c:if test="${not empty msg}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${msg}',3000,200,300); </script>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,329 +0,0 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
|
|
||||||
pageEncoding="ISO-8859-1"%>
|
|
||||||
<%@page language="java" session="true" %>
|
|
||||||
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
||||||
<title>Cygnus 1.0 | Document Initiation </title>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ajax.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/ajax-dynamic-list.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/appjs/punchingdoc.js" type="text/javascript"></script>
|
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<link href="/matrix/css/button.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/textbox.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/select.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/table.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/autocomplete.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/bootstrap-5.3.8.min.css" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-v2.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/matrix-shell-v2.css?v=7" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/tool-workspace-v3.css?v=2" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/punch-workspace-v3.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
<link href="/matrix/css/add-cases-v4.css?v=1" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/bootstrap-5.3.8.bundle.min.js" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-shell-v2.js" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-frame-dialog.css?v=6" rel="stylesheet" type="text/css" />
|
|
||||||
<script src="/matrix/js/matrix-frame-dialog.js?v=2" defer></script>
|
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="matrix-v2 matrix-shell matrix-tool-workspace matrix-punch-workspace matrix-add-cases">
|
|
||||||
<div id='PageFrame'>
|
|
||||||
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
|
||||||
<%-- Shared shell owns ${Sessvals.menuHtml}. --%>
|
|
||||||
<div id="formcontainer" class="matrix-tool-workspace__content">
|
|
||||||
<form method="post" name="docdetails" id="docdetails" >
|
|
||||||
<!-- Common Details (Section1) Visible for all portfolios-->
|
|
||||||
<div>
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title matrix-form-title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/commondet.png" align="absmiddle" />
|
|
||||||
<span class="matrix-title-text matrix-form-title__heading">Common Details <span id='recfound'></span></span>
|
|
||||||
<label class="matrix-form-title__field">Skip To <input type="text" class="textbox" style="width:30px" onkeypress="return NumberOnly(event)" onblur="GotoRecord(this)"></label>
|
|
||||||
<label class="matrix-form-title__field">Search by File No <input type="text" class="textbox" style="width:200px" onblur="SearchRecord(this)"></label>
|
|
||||||
<!-- Checkbox for AUTO CUT diabled for now -->
|
|
||||||
<!-- <input type="checkbox" name="autocut" id="autocut" /> Automatic Cut-Off -->
|
|
||||||
<div class="divselect matrix-form-title__end" id="divportfolio" style="width:167px;">
|
|
||||||
<select id="portfolio_id" name="portfolio_id" style="width:185px" onchange="SubmitForm('docadd','_parent','docdetails')">
|
|
||||||
<option value="-1" selected >SELECT PORTFOLIO</option>
|
|
||||||
<c:forEach items="${portlist}" var="port">
|
|
||||||
<option value="${port[0]}">${port[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section1) -->
|
|
||||||
<div id="FormPanel1" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls" width="99%">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div style="height:auto;width:16px;float:right;margin-top:4px;">
|
|
||||||
<div id="btnbedit" onclick="EditBasicDetails()" title="edit basic details" style="background:url('/matrix/images/edit_form.png');height:auto;width:16px;cursor:pointer;margin-top:2px"> </div>
|
|
||||||
<div id="btnbsave" onclick="SaveBasicDetails()" title="save details" style="background:url('/matrix/images/disk.png');height:auto;width:16px;cursor:pointer;margin-top:2px"> </div>
|
|
||||||
<div id="btnbcancel" onclick="CancelEdit()" title="cancel" style="background:url('/matrix/images/msgerror.png');height:auto;width:16px;cursor:pointer;margin-top:6px"> </div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Appl No.
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="applno" name="applno" maxlength="25" style="width:150px;text-transform:uppercase" value="" disabled="disabled" onblur="if(validate(this,'t','AlphaNumeric')){FindSameDet(this,'A','customername');}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Name
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="customername" name="customername" maxlength="100" style="width:275px" value="" onblur="validate(this,'t','AlphaSpace');" disabled="disabled" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
DOB
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="dob" name="dob" maxlength="10" style="width:80px" value="" onkeydown="return addSlashes(this,event)" onblur="validate(this,'f','Date')" disabled="disabled" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Loan Amt
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="loanamount" name="loanamount" maxlength="15" style="width:115px" value="" onblur="validate(this,'f','LoanAmount');" disabled="disabled" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Branch
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divbranch" style="width:235px;">
|
|
||||||
<select id="bank_branch_id" name="bank_branch_id" style="width:253px" onblur="validate(this,'t','');" disabled="disabled">
|
|
||||||
<option value="-1" selected >SELECT</option>
|
|
||||||
<c:forEach items="${branchlist}" var="brnch">
|
|
||||||
<option value="${brnch[0]}">${brnch[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Product
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divproduct" style="width:132px;">
|
|
||||||
<select id="product" name="product" style="width:150px" onblur="validate(this,'t','');" disabled="disabled">
|
|
||||||
<option value="-1" selected >SELECT</option>
|
|
||||||
<c:forEach items="${prodlist}" var="prod">
|
|
||||||
<option value="${prod[0]}">${prod[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
App Type
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divapptype" style="width:135px;">
|
|
||||||
<select id="apptype" name="apptype" style="width:153px" onblur="validate(this,'t','');" disabled="disabled">
|
|
||||||
<option value="-1" selected>SELECT</option>
|
|
||||||
<c:forEach items="${typelist}" var="type">
|
|
||||||
<option value="${type[0]}">${type[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Category
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divcategory" style="width:115px;">
|
|
||||||
<select id="category" name="category" style="width:133px" disabled="disabled">
|
|
||||||
<option value="-1" selected>SELECT</option>
|
|
||||||
<c:forEach items="${catlist}" var="cat">
|
|
||||||
<option value="${cat[0]}">${cat[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
${dynamichtml}
|
|
||||||
<input type="button" class="button" name="btnsave" style="float:right" value="Add Docs" id="btnsave" onclick="return AddDocs();" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Document Details Visible for portfolios in which document verification could be done-->
|
|
||||||
<div id="section7">
|
|
||||||
<!-- Title -->
|
|
||||||
<div class="title">
|
|
||||||
<img class="matrix-title-icon" src="/matrix/images/documents.png" />
|
|
||||||
<span class="matrix-title-text">Document Details</span>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Form (Section1) -->
|
|
||||||
<div id="FormPanel1" class="FormPanel">
|
|
||||||
<table align="center" class="matrix-form-controls" width="99%">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Document
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divdoctype" style="width:170px;">
|
|
||||||
<select id="doctype" name="doctype" style="width:188px" onchange="changeLabel(this)" onblur="validate(this,'t','')">
|
|
||||||
<option value="-1" uniqueidentifier="Unique No." sprovider="Service Provider" validuno="xxx" ymon="A.Y/Month" validymon="" defsprovider="" genlist="0" selected>SELECT</option>
|
|
||||||
<c:forEach items="${doclist}" var="doc">
|
|
||||||
<option value="${doc[0]}" uniqueidentifier="${doc[2]}" sprovider="${doc[3]}" validuno="${doc[4]}" ymon="${doc[5]}" validymon="${doc[6]}" defsprovider="${doc[7]}" genlist="${doc[8]}">${doc[1]}</option>
|
|
||||||
</c:forEach>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Name
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="docholdername" name="docholdername" maxlength="100" style="width:200px" value="" onblur="validate(this,'t','AlphaSpace');" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer" id="sprovider">
|
|
||||||
Serivce Provider
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="serviceprovider" name="serviceprovider" maxlength="100" style="width:200px" value="" onblur="validate(this,'t','SplInstruction');" />
|
|
||||||
<input type="hidden" id="bank_id" name="serviceprovider_hidden" value="0" />
|
|
||||||
<input type="hidden" id="serviceprovider_citylist" name="serviceprovider_citylist" value="0" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer" id="uniqueidentifier">
|
|
||||||
Unique No.
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="uniqueno" name="uniqueno" maxlength="50" style="width:140px" value="" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer" id="yearmon">
|
|
||||||
A.Y/Month
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<input type="text" id="yearmonth" name="yearmonth" maxlength="100" style="width:180px" value="" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Location
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divcity" style="width:120px;" >
|
|
||||||
<select id="city" name="city" style="width:138px" onblur="validate(this,'t','');">
|
|
||||||
<option value="-1" selected>SELECT</option>
|
|
||||||
<option value="CITY" selected>CITY</option>
|
|
||||||
<option value="SATELLITE CITY">SATELLITE CITY</option>
|
|
||||||
<option value="OUT STATION">OUT STATION</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="widget">
|
|
||||||
<div class="lblcontainer">
|
|
||||||
Vendor
|
|
||||||
</div>
|
|
||||||
<div class="inputcontainer">
|
|
||||||
<div class="divselect" id="divvendor" style="width:120px;">
|
|
||||||
<select id="vendor_id" name="vendor_id" style="width:138px" onblur="validate(this,'f','');">
|
|
||||||
<option value="-1" selected>SELECT</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
${docdynamichtml}
|
|
||||||
<input type="button" class="button" name="btnadd" style="float:right" value="Add" id="btnadd" onclick="return AddNewDoc();" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="FormPanel2" class="FormPanel">
|
|
||||||
<table border="0" cellspacing="0" width="100%" id="casetable">
|
|
||||||
<thead class="thead">
|
|
||||||
<tr title="Row Title" id="rowtitle">
|
|
||||||
<td style="font-size:12px;width:20px">S.No</td>
|
|
||||||
<td style="font-size:12px;width:150px">Name</td>
|
|
||||||
<td style="font-size:12px;width:150px">Document</td>
|
|
||||||
<td style="font-size:12px;width:150px">Provider</td>
|
|
||||||
<td style="font-size:12px;width:150px">Unique No.</td>
|
|
||||||
<td style="font-size:12px;width:100px">Extra</td>
|
|
||||||
<td style="font-size:12px;width:50px">Location</td>
|
|
||||||
<td style="font-size:12px;width:50px">Vendor</td>
|
|
||||||
<td style="font-size:12px">Action</td>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- -->
|
|
||||||
</div>
|
|
||||||
<input type="hidden" id="dynamicfields" name="dynamicfields" value="${dynamicfields}" />
|
|
||||||
<input type="hidden" id="docdynamicfields" name="dynamicfields" value="${docdynamicfields}" />
|
|
||||||
<input type="hidden" id="uuid" name="uuid" value="" />
|
|
||||||
<input type="hidden" id="case_id" name="case_id" value="" />
|
|
||||||
<input type="hidden" id="company_id" name="company_id" value="${Sessvals.getCompanyID()}" />
|
|
||||||
<input type="hidden" id="branch_id" name="branch_id" value="${Sessvals.getBranchID()}" />
|
|
||||||
<input type="hidden" id="status" name="status" value="" />
|
|
||||||
<input type="hidden" id="docv" name="docv" value="0" />
|
|
||||||
<!-- -->
|
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
|
||||||
<c:if test="${formmode gt 0}">
|
|
||||||
<div style="position:fixed;text-align:right;bottom:0px;width:980px;" class="buttonbar">
|
|
||||||
<input type="hidden" id="invalidfields" value="0" />
|
|
||||||
<input type="button" class="button" name="btnfirst" style="margin-left:5px;margin-top:-2px;float:left;width:80px" value="" id="btnfirst" accesskey="F" onclick="findRecord(1)" />
|
|
||||||
<input type="button" class="button" name="btnprev" style="margin-top:-2px;float:left;width:80px" value="" id="btnprev" accesskey="P" onclick="findRecord(2)" />
|
|
||||||
<input type="button" class="button" name="btnnext" style="margin-top:-2px;float:left;width:80px" value="" id="btnnext" accesskey="N" onclick="findRecord(3)" />
|
|
||||||
<input type="button" class="button" name="btnlast" style="margin-top:-2px;float:left;width:80px" value="" id="btnlast" accesskey="L" onclick="findRecord(4)" />
|
|
||||||
<input type="button" class="button" name="btnadd" style="float:right" value="Add New Record" id="btnadd" accesskey="A" onclick="return AddNewRecord();" />
|
|
||||||
</div>
|
|
||||||
</c:if>
|
|
||||||
</form>
|
|
||||||
<input type="hidden" id="formmode" name="formmode" value="${formmode}" />
|
|
||||||
<input type="hidden" id="usid" name="usid" value="${usid}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
<!-- Page Load Javascript -->
|
|
||||||
<script language="javascript" type="text/javascript">
|
|
||||||
InitPage('${portfolio_id}');
|
|
||||||
</script>
|
|
||||||
<!-- -->
|
|
||||||
<!-- Process Message -->
|
|
||||||
<c:if test="${not empty msg}">
|
|
||||||
<script language="javascript" type="text/javascript"> CallMessage('${msg}',3000,200,300); </script>
|
|
||||||
</c:if>
|
|
||||||
<!-- -->
|
|
||||||
</html>
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
|
|||||||
@@ -1,29 +1,69 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
pageEncoding="ISO-8859-1"%>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html>
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
<meta charset="UTF-8" />
|
||||||
<script language="javascript" src="/matrix/js/lib/constants.js" type="text/javascript"></script>
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<script language="javascript" src="/matrix/js/lib/jsfuncs.js" type="text/javascript"></script>
|
<link href="<c:url value='/css/bootstrap-5.3.8.min.css' />" rel="stylesheet" />
|
||||||
<script language="javascript" src="/matrix/js/jquery1.7.2.js" type="text/javascript"></script>
|
<link href="<c:url value='/css/matrix-v2.css?v=6' />" rel="stylesheet" />
|
||||||
<script language="javascript" src="/matrix/js/ui/uifuncs.js" type="text/javascript"></script>
|
<link href="<c:url value='/css/matrix-shell-v2.css?v=7' />" rel="stylesheet" />
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<link href="<c:url value='/css/matrix-frame-dialog.css?v=6' />" rel="stylesheet" />
|
||||||
|
<link href="<c:url value='/css/matrix-theme-v2.css?v=4' />" rel="stylesheet" />
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<script src="<c:url value='/js/matrix-shell-v2.js' />" defer></script>
|
||||||
<link href="/matrix/css/div.css" rel="stylesheet" type="text/css" />
|
<script src="<c:url value='/js/matrix-frame-dialog.js?v=2' />" defer></script>
|
||||||
<title>Cygnus 1.0 | 404 Error</title>
|
<title>Cygnus 1.0 | <c:out value="${empty messageDetails.title ? 'Page unavailable' : messageDetails.title}" /></title>
|
||||||
<script src="/matrix/js/matrix-accessibility-v1.js?v=1" defer></script>
|
|
||||||
<link href="/matrix/css/matrix-theme-v2.css?v=4" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
</head>
|
||||||
<body class="matrix-error-page">
|
<body class="matrix-v2 matrix-shell matrix-error-page matrix-error-page--${empty messageDetails.httpStatus ? 404 : messageDetails.httpStatus}">
|
||||||
<form method="post" name="unaccess" id="unaccess">
|
<c:choose>
|
||||||
<main class="matrix-error-card" role="alert" aria-labelledby="errorTitle">
|
<c:when test="${not empty Sessvals and not empty Sessvals.menuHtml}">
|
||||||
<div class="matrix-error-card__code">404</div>
|
<%@ include file="/WEB-INF/app/fragments/app-shell-header.jspf" %>
|
||||||
<h1 id="errorTitle">Page unavailable</h1>
|
</c:when>
|
||||||
<p>Unauthorized access or the requested page could not be found.</p>
|
<c:otherwise>
|
||||||
<button type="button" class="matrix-error-card__action" onclick="SubmitForm('logout', '_parent', 'unaccess');">Return to sign in</button>
|
<%@ include file="/WEB-INF/app/fragments/app-title.jspf" %>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<main class="matrix-error-layout" id="mainContent">
|
||||||
|
<section class="matrix-error-card" role="alert" aria-labelledby="errorTitle">
|
||||||
|
<div class="matrix-error-card__status" aria-hidden="true">
|
||||||
|
<span><c:out value="${empty messageDetails.httpStatus ? 404 : messageDetails.httpStatus}" /></span>
|
||||||
|
</div>
|
||||||
|
<div class="matrix-error-card__content">
|
||||||
|
<span class="matrix-error-card__eyebrow">
|
||||||
|
Error <c:out value="${empty messageDetails.code ? 'HTTP-404' : messageDetails.code}" />
|
||||||
|
</span>
|
||||||
|
<h1 id="errorTitle">
|
||||||
|
<c:out value="${empty messageDetails.title ? 'Page unavailable' : messageDetails.title}" />
|
||||||
|
</h1>
|
||||||
|
<p class="matrix-error-card__message">
|
||||||
|
<c:out value="${empty messageDetails.message ? 'The requested page is unavailable.' : messageDetails.message}" />
|
||||||
|
</p>
|
||||||
|
<c:if test="${not empty messageDetails.description}">
|
||||||
|
<p class="matrix-error-card__description"><c:out value="${messageDetails.description}" /></p>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<div class="matrix-error-card__actions">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${not empty Sessvals and not empty Sessvals.menuHtml}">
|
||||||
|
<form method="post" action="<c:url value='/ver/dashboard' />">
|
||||||
|
<button type="submit" class="matrix-error-card__action">Return to dashboard</button>
|
||||||
|
</form>
|
||||||
|
<button type="button" class="matrix-error-card__action matrix-error-card__action--secondary" onclick="history.back()">Go back</button>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a class="matrix-error-card__action" href="<c:url value='/ver/login' />">Return to sign in</a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="${not empty messageDetails.referenceId}">
|
||||||
|
<p class="matrix-error-card__reference">
|
||||||
|
Reference ID: <code><c:out value="${messageDetails.referenceId}" /></code>
|
||||||
|
</p>
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</main>
|
</main>
|
||||||
</form>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<span>Cygnus 1.0</span>
|
<span>Cygnus 1.0</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="matrix-shell__context" aria-label="Current session">
|
<div class="matrix-shell__context" aria-label="Current session">
|
||||||
<span class="matrix-shell__company"><c:out value="${Sessvals.getCompanyCode()}" /> (<c:out value="${Sessvals.getBranchLocation()}" />)</span>
|
<span class="matrix-shell__company"><c:out value="${sessionScope.userSession.companyCode}" /> (<c:out value="${sessionScope.userSession.branchLocation}" />)</span>
|
||||||
<span class="matrix-shell__user"><c:out value="${Sessvals.getUserDisplayName()}" /> (<c:out value="${Sessvals.getUserGroupName()}" />)</span>
|
<span class="matrix-shell__user"><c:out value="${sessionScope.userSession.userDisplayName}" /> (<c:out value="${sessionScope.userSession.userGroupName}" />)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/msgdialog.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/progressbar.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/progressbar.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/ui/select.js" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/appjs/cutoff.js" type="text/javascript"></script>
|
<script src="/matrix/js/edp/cutoff/cutoff.js?v=1" type="text/javascript"></script>
|
||||||
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
<script language="javascript" src="/matrix/js/validator.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
<link href="/matrix/css/matrix.css" rel="stylesheet" type="text/css" />
|
||||||
|
|||||||
@@ -38,6 +38,14 @@
|
|||||||
</session-config>
|
</session-config>
|
||||||
|
|
||||||
<!-- Error Page -->
|
<!-- Error Page -->
|
||||||
|
<error-page>
|
||||||
|
<error-code>404</error-code>
|
||||||
|
<location>/ver/error</location>
|
||||||
|
</error-page>
|
||||||
|
<error-page>
|
||||||
|
<error-code>500</error-code>
|
||||||
|
<location>/ver/error</location>
|
||||||
|
</error-page>
|
||||||
<error-page>
|
<error-page>
|
||||||
<exception-type>org.springframework.web.HttpSessionRequiredException</exception-type>
|
<exception-type>org.springframework.web.HttpSessionRequiredException</exception-type>
|
||||||
<location>/matrix/index.jsp</location>
|
<location>/matrix/index.jsp</location>
|
||||||
|
|||||||
@@ -31,6 +31,12 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Legacy forms separate labels and controls with a BR. In the modern flex
|
||||||
|
layout that BR becomes an extra flex row and creates an unintended gap. */
|
||||||
|
.matrix-add-cases .matrix-form-controls .widget > br {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.matrix-add-cases .matrix-form-controls .widget[style*="display:none"] {
|
.matrix-add-cases .matrix-form-controls .widget[style*="display:none"] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
@@ -57,6 +63,41 @@
|
|||||||
.matrix-add-cases .matrix-form-controls textarea {
|
.matrix-add-cases .matrix-form-controls textarea {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .matrix-phone-extension {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(0, 1fr) auto 48px;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .matrix-phone-extension > input {
|
||||||
|
width: 100% !important;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .matrix-edit-back {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
min-height: 28px;
|
||||||
|
margin-left: auto;
|
||||||
|
padding: 3px 10px;
|
||||||
|
color: #245f91;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 600;
|
||||||
|
border: 1px solid #9eb5c8;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #f6f9fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .matrix-edit-back:hover,
|
||||||
|
.matrix-add-cases .matrix-edit-back:focus-visible {
|
||||||
|
color: #fff;
|
||||||
|
border-color: #28699d;
|
||||||
|
background: #28699d;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-add-cases .matrix-form-controls .widget:has(#splist),
|
.matrix-add-cases .matrix-form-controls .widget:has(#splist),
|
||||||
@@ -89,3 +130,87 @@
|
|||||||
.matrix-add-cases .matrix-form-controls .widget:has(#splist),
|
.matrix-add-cases .matrix-form-controls .widget:has(#splist),
|
||||||
.matrix-add-cases .matrix-form-controls .widget:has(textarea) { grid-column: span 6; }
|
.matrix-add-cases .matrix-form-controls .widget:has(textarea) { grid-column: span 6; }
|
||||||
}
|
}
|
||||||
|
.matrix-add-cases .inputcontainer {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .inputcontainer > input.errtxt,
|
||||||
|
.matrix-add-cases .inputcontainer > textarea.errtxt {
|
||||||
|
padding-right: 24px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases .matrix-validation-error-icon {
|
||||||
|
display: block;
|
||||||
|
margin: 0 !important;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases #section2 > .title,
|
||||||
|
.matrix-add-cases #section3 > .title,
|
||||||
|
.matrix-add-cases #section4 > .title,
|
||||||
|
.matrix-add-cases #section5 > .title,
|
||||||
|
.matrix-add-cases #section6 > .title,
|
||||||
|
.matrix-add-cases #section7 > .title {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 6px 8px;
|
||||||
|
min-height: 38px;
|
||||||
|
height: auto !important;
|
||||||
|
padding: 5px 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases #section2 > .title > .matrix-title-icon,
|
||||||
|
.matrix-add-cases #section3 > .title > .matrix-title-icon,
|
||||||
|
.matrix-add-cases #section4 > .title > .matrix-title-icon,
|
||||||
|
.matrix-add-cases #section5 > .title > .matrix-title-icon,
|
||||||
|
.matrix-add-cases #section6 > .title > .matrix-title-icon,
|
||||||
|
.matrix-add-cases #section7 > .title > .matrix-title-icon {
|
||||||
|
display: block;
|
||||||
|
flex: 0 0 16px;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: 0 !important;
|
||||||
|
object-fit: contain;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases #section2 > .title > .matrix-title-text,
|
||||||
|
.matrix-add-cases #section3 > .title > .matrix-title-text,
|
||||||
|
.matrix-add-cases #section4 > .title > .matrix-title-text,
|
||||||
|
.matrix-add-cases #section5 > .title > .matrix-title-text,
|
||||||
|
.matrix-add-cases #section6 > .title > .matrix-title-text,
|
||||||
|
.matrix-add-cases #section7 > .title > .matrix-title-text {
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases #section2 > .title > .divchk,
|
||||||
|
.matrix-add-cases #section3 > .title > .divchk,
|
||||||
|
.matrix-add-cases #section4 > .title > .divchk,
|
||||||
|
.matrix-add-cases #section5 > .title > .divchk,
|
||||||
|
.matrix-add-cases #section7 > .title > .divchk {
|
||||||
|
position: static !important;
|
||||||
|
right: auto !important;
|
||||||
|
float: none !important;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
align-self: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-height: 18px;
|
||||||
|
margin: 0 0 0 auto !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
line-height: 18px !important;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-add-cases #section2 > .title > .divchk input[type="checkbox"],
|
||||||
|
.matrix-add-cases #section3 > .title > .divchk input[type="checkbox"],
|
||||||
|
.matrix-add-cases #section4 > .title > .divchk input[type="checkbox"],
|
||||||
|
.matrix-add-cases #section5 > .title > .divchk input[type="checkbox"],
|
||||||
|
.matrix-add-cases #section7 > .title > .divchk input[type="checkbox"] {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,16 +4,57 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow .title {
|
.matrix-cutoff-workflow .title {
|
||||||
margin-bottom: 10px;
|
display: flex !important;
|
||||||
|
align-items: center;
|
||||||
|
min-height: 38px;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 6px 10px !important;
|
||||||
|
gap: 8px;
|
||||||
|
border: 1px solid #aebfce !important;
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
background: #f7f9fb !important;
|
||||||
|
color: #263746 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow .title > .divselect {
|
.matrix-cutoff-workflow .matrix-cutoff-title-actions {
|
||||||
width: 132px !important;
|
display: flex;
|
||||||
margin-left: auto !important;
|
align-items: center;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
gap: 8px;
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow .title > .divselect select {
|
.matrix-cutoff-workflow .matrix-cutoff-title-actions > .divselect {
|
||||||
|
position: static !important;
|
||||||
|
width: 150px !important;
|
||||||
|
height: 28px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .matrix-cutoff-title-actions > .divselect select {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
|
height: 28px !important;
|
||||||
|
padding: 2px 28px 2px 8px !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-weight: 400 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .matrix-title-action {
|
||||||
|
position: static !important;
|
||||||
|
flex: 0 0 28px;
|
||||||
|
width: 28px !important;
|
||||||
|
height: 28px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 6px !important;
|
||||||
|
border: 0 !important;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .matrix-title-action:hover,
|
||||||
|
.matrix-cutoff-workflow .matrix-title-action:focus {
|
||||||
|
background: #e5edf4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow .tableContainer {
|
.matrix-cutoff-workflow .tableContainer {
|
||||||
@@ -21,7 +62,7 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
border: 1px solid #c3d0da !important;
|
border: 1px solid #c3d0da !important;
|
||||||
border-radius: 6px;
|
border-radius: 0 0 6px 6px;
|
||||||
background: #f4f8fb !important;
|
background: #f4f8fb !important;
|
||||||
box-shadow: 0 2px 8px rgba(31, 52, 72, .08);
|
box-shadow: 0 2px 8px rgba(31, 52, 72, .08);
|
||||||
}
|
}
|
||||||
@@ -77,9 +118,23 @@
|
|||||||
.matrix-cutoff-workflow .tableContainer table table {
|
.matrix-cutoff-workflow .tableContainer table table {
|
||||||
width: calc(100% - 18px) !important;
|
width: calc(100% - 18px) !important;
|
||||||
margin: 8px 0 8px auto;
|
margin: 8px 0 8px auto;
|
||||||
border: 1px solid #c7d4df;
|
border: 1px solid #9fb2c3;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background: #f8fafc;
|
background: #fff !important;
|
||||||
|
box-shadow: 0 2px 6px rgba(31, 52, 72, .12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .tableContainer > table > tbody > tr[id$="child"] > td {
|
||||||
|
padding: 6px 10px 8px !important;
|
||||||
|
background: #dfeaf3 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .tableContainer table table > tbody > tr > td {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .tableContainer table table > tbody > tr:nth-child(even) > td {
|
||||||
|
background: #f1f6fa !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow .tableContainer input[type="checkbox"] {
|
.matrix-cutoff-workflow .tableContainer input[type="checkbox"] {
|
||||||
@@ -89,10 +144,42 @@
|
|||||||
accent-color: #245a91;
|
accent-color: #245a91;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow form > input.button {
|
.matrix-cutoff-workflow .matrix-workflow-actions {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
min-height: 46px;
|
||||||
|
padding: 8px 10px;
|
||||||
|
border-top: 1px solid #b8c9d8;
|
||||||
|
background: #f7fafd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .matrix-workflow-actions > input.button {
|
||||||
min-width: 96px;
|
min-width: 96px;
|
||||||
margin: 10px 0 0 8px !important;
|
margin: 0 !important;
|
||||||
float: right !important;
|
float: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .matrix-workflow-actions .matrix-button,
|
||||||
|
.matrix-cutoff-workflow .matrix-workflow-actions > input.button,
|
||||||
|
.matrix-cutoff-workflow form > input.button,
|
||||||
|
.matrix-cutoff-workflow form > a.button {
|
||||||
|
min-height: 30px;
|
||||||
|
padding: 5px 14px !important;
|
||||||
|
border: 1px solid #245a91 !important;
|
||||||
|
border-radius: 4px !important;
|
||||||
|
color: #fff !important;
|
||||||
|
background: #28639b !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-weight: 600 !important;
|
||||||
|
line-height: 18px !important;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-cutoff-workflow .customLink {
|
||||||
|
color: #245a91;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-cutoff-workflow form::after {
|
.matrix-cutoff-workflow form::after {
|
||||||
|
|||||||
@@ -7,6 +7,149 @@
|
|||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-tool-workspace__content .title > .matrix-title-icon {
|
||||||
|
display: block;
|
||||||
|
width: 17px !important;
|
||||||
|
height: 17px !important;
|
||||||
|
flex: 0 0 17px;
|
||||||
|
margin: 0 !important;
|
||||||
|
object-fit: contain;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-tool-workspace__content .title > .matrix-title-text {
|
||||||
|
line-height: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-dedupe-run__title {
|
||||||
|
display: flex !important;
|
||||||
|
min-height: 38px;
|
||||||
|
align-items: center;
|
||||||
|
gap: 7px;
|
||||||
|
padding: 5px 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-dedupe-run__title > .matrix-title-action {
|
||||||
|
width: 17px !important;
|
||||||
|
height: 17px !important;
|
||||||
|
margin-left: auto !important;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist {
|
||||||
|
overflow: hidden;
|
||||||
|
border: 1px solid #aebfcd;
|
||||||
|
border-radius: 5px;
|
||||||
|
background: #f4f8fb;
|
||||||
|
box-shadow: 0 3px 10px rgba(31, 52, 72, .09);
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__header {
|
||||||
|
display: flex !important;
|
||||||
|
min-height: 38px;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 4px 8px !important;
|
||||||
|
flex-wrap: nowrap !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__heading,
|
||||||
|
.matrix-dedupe-worklist__actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__heading {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
gap: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-dedupe-worklist__header > .matrix-dedupe-worklist__actions {
|
||||||
|
min-width: 0;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
gap: 7px;
|
||||||
|
flex-wrap: nowrap !important;
|
||||||
|
width: auto !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__portfolio {
|
||||||
|
min-width: 0;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
height: 29px !important;
|
||||||
|
padding: 2px 28px 2px 8px !important;
|
||||||
|
font-size: 13px !important;
|
||||||
|
font-weight: 400 !important;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__refresh {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 29px;
|
||||||
|
height: 29px;
|
||||||
|
flex: 0 0 29px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 3px;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__refresh:hover,
|
||||||
|
.matrix-dedupe-worklist__refresh:focus-visible {
|
||||||
|
background: #e2ebf3;
|
||||||
|
outline: 1px solid #9fb5c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__refresh img {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__table-wrap {
|
||||||
|
margin: 8px;
|
||||||
|
border: 1px solid #c3d0da;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__table-wrap thead th {
|
||||||
|
padding: 7px 9px;
|
||||||
|
color: #31475b;
|
||||||
|
background: #e8eef4;
|
||||||
|
border-color: #d3dce5;
|
||||||
|
font-size: 11px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__table-wrap tbody td {
|
||||||
|
padding: 6px 9px;
|
||||||
|
border-color: #dce4eb;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__row {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__row:nth-child(even) td {
|
||||||
|
background: #edf3f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__row:hover td,
|
||||||
|
.matrix-dedupe-worklist__row:focus td {
|
||||||
|
background: #dfedf8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-worklist__empty {
|
||||||
|
padding: 24px !important;
|
||||||
|
color: #637586;
|
||||||
|
text-align: center;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
.matrix-dedupe-workflow .title > .divselect {
|
.matrix-dedupe-workflow .title > .divselect {
|
||||||
width: min(320px, 38vw) !important;
|
width: min(320px, 38vw) !important;
|
||||||
margin-left: auto !important;
|
margin-left: auto !important;
|
||||||
@@ -70,14 +213,50 @@
|
|||||||
.matrix-dedupe-workflow .tableContainer table table {
|
.matrix-dedupe-workflow .tableContainer table table {
|
||||||
width: calc(100% - 18px) !important;
|
width: calc(100% - 18px) !important;
|
||||||
margin: 8px 0 8px auto;
|
margin: 8px 0 8px auto;
|
||||||
border: 1px solid #c7d4df;
|
border: 1px solid #9fb2c3;
|
||||||
background: #f8fafc;
|
border-radius: 4px;
|
||||||
|
background: #fff !important;
|
||||||
|
box-shadow: 0 2px 6px rgba(31, 52, 72, .12);
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-workflow form > input.button {
|
/* Migration convention: nested data grids must remain visually distinct. */
|
||||||
|
.matrix-dedupe-workflow .tableContainer > table > tbody > tr:has(> td > table) > td {
|
||||||
|
padding: 6px 10px 8px !important;
|
||||||
|
background: #dfeaf3 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .tableContainer table table > tbody > tr > td {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .tableContainer table table > tbody > tr:nth-child(even) > td {
|
||||||
|
background: #f1f6fa !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-workflow-actions {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
min-height: 46px;
|
||||||
|
padding: 8px 10px;
|
||||||
|
border-top: 1px solid #b8c9d8;
|
||||||
|
background: #f7fafd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-workflow .matrix-workflow-actions .button {
|
||||||
min-width: 108px;
|
min-width: 108px;
|
||||||
margin: 10px 0 0 8px !important;
|
margin: 0 !important;
|
||||||
float: right !important;
|
float: none !important;
|
||||||
|
min-height: 30px;
|
||||||
|
padding: 5px 14px !important;
|
||||||
|
border: 1px solid #245a91 !important;
|
||||||
|
border-radius: 4px !important;
|
||||||
|
color: #fff !important;
|
||||||
|
background: #28639b !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-weight: 600 !important;
|
||||||
|
line-height: 18px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-workflow form::after {
|
.matrix-dedupe-workflow form::after {
|
||||||
@@ -106,39 +285,187 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match #dedupeDetails .title {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
min-height: 36px;
|
||||||
|
align-items: center;
|
||||||
|
gap: 7px;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 6px 9px !important;
|
||||||
|
border-bottom: 1px solid #aebfcd !important;
|
||||||
|
background: #eef3f7 !important;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match #dedupeDetails .title > .matrix-title-icon {
|
||||||
|
display: block;
|
||||||
|
width: 17px !important;
|
||||||
|
height: 17px !important;
|
||||||
|
flex: 0 0 17px;
|
||||||
|
margin: 0 !important;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match #dedupeDetails .title > .matrix-title-text {
|
||||||
|
min-width: 0;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match #dedupeDetails .title > .nedtrem {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match #dedupeDetails .title > .nedtrem img {
|
||||||
|
width: 17px;
|
||||||
|
height: 17px;
|
||||||
|
object-fit: contain;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.matrix-dedupe-match .FormPanel {
|
.matrix-dedupe-match .FormPanel {
|
||||||
padding: 10px 12px;
|
padding: 5px 10px;
|
||||||
border: 0 !important;
|
border: 0 !important;
|
||||||
|
background: #f4f8fb !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-match .matrix-form-controls {
|
.matrix-dedupe-match .matrix-form-controls {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
border-spacing: 7px 4px;
|
table-layout: fixed;
|
||||||
|
border-spacing: 8px 2px;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-form-controls td {
|
||||||
|
height: auto !important;
|
||||||
|
padding: 1px 8px !important;
|
||||||
|
color: #34495b;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 14px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-match .matrix-form-controls input:not([type="hidden"]),
|
.matrix-dedupe-match .matrix-form-controls input:not([type="hidden"]),
|
||||||
.matrix-dedupe-match .matrix-form-controls textarea {
|
.matrix-dedupe-match .matrix-form-controls textarea {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
width: 100% !important;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
min-height: 30px;
|
||||||
|
padding: 4px 7px !important;
|
||||||
border: 1px solid #b8c7d3 !important;
|
border: 1px solid #b8c7d3 !important;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background: #fff !important;
|
background: #fff !important;
|
||||||
|
color: #24313d;
|
||||||
|
font-size: 12px !important;
|
||||||
|
font-weight: 400 !important;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-form-controls input:not([type="hidden"]) {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__comparison,
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__remarks {
|
||||||
|
border: 1px solid #aebfcd !important;
|
||||||
|
background: #dfeaf3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__comparison > table,
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__remarks > table {
|
||||||
|
width: 100%;
|
||||||
|
table-layout: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__comparison > table > tbody > tr > td + td,
|
||||||
|
.matrix-dedupe-match .matrix-dedupe-match__remarks > table > tbody > tr > td + td {
|
||||||
|
border-left: 1px solid #b8c9d8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-record-navigation {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-phone-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
|
gap: 10px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-phone-grid label {
|
||||||
|
display: flex;
|
||||||
|
min-width: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 3px;
|
||||||
|
margin: 0;
|
||||||
|
color: #34495b;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-phone-grid input {
|
||||||
|
width: 100% !important;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-record-nav {
|
||||||
|
width: 32px;
|
||||||
|
height: 29px;
|
||||||
|
flex: 0 0 32px;
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid #9fb3c4;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: #f7fafc;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-record-nav:hover,
|
||||||
|
.matrix-dedupe-match .matrix-record-nav:focus-visible {
|
||||||
|
border-color: #28699d;
|
||||||
|
background-color: #e2edf6;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-record-nav--first { background-image: url('/matrix/images/first.png'); }
|
||||||
|
.matrix-dedupe-match .matrix-record-nav--previous { background-image: url('/matrix/images/prev.png'); }
|
||||||
|
.matrix-dedupe-match .matrix-record-nav--next { background-image: url('/matrix/images/next.png'); }
|
||||||
|
.matrix-dedupe-match .matrix-record-nav--last { background-image: url('/matrix/images/last.png'); }
|
||||||
|
|
||||||
|
.matrix-dedupe-match .matrix-match-action {
|
||||||
|
width: auto !important;
|
||||||
|
min-width: 108px;
|
||||||
|
min-height: 29px;
|
||||||
|
margin: 0 0 0 auto !important;
|
||||||
|
padding: 4px 12px !important;
|
||||||
|
float: none !important;
|
||||||
|
background-image: none !important;
|
||||||
|
text-indent: 0 !important;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-match .matrix-form-controls textarea {
|
.matrix-dedupe-match .matrix-form-controls textarea {
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-dedupe-match :is(#btnfirst, #btnprev, #btnnext, #btnlast) {
|
|
||||||
width: 30px !important;
|
|
||||||
min-width: 30px;
|
|
||||||
padding: 3px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.matrix-dedupe-match :is(#btnear, #btnneg) {
|
.matrix-dedupe-match :is(#btnear, #btnneg) {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
|
background-image: none !important;
|
||||||
background-color: #245a91 !important;
|
background-color: #245a91 !important;
|
||||||
border-color: #245a91 !important;
|
border-color: #245a91 !important;
|
||||||
|
text-indent: 0 !important;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 760px) {
|
@media (max-width: 760px) {
|
||||||
|
|||||||
@@ -75,7 +75,8 @@
|
|||||||
right:8px;
|
right:8px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
}
|
}
|
||||||
.title #ctrldiv
|
.title #ctrldiv,
|
||||||
|
.title .ctrldiv
|
||||||
{
|
{
|
||||||
border:none;
|
border:none;
|
||||||
position:relative;
|
position:relative;
|
||||||
|
|||||||
@@ -4,19 +4,66 @@
|
|||||||
background: #f4f8fb;
|
background: #f4f8fb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-edit-cases .matrix-tool-workspace__content > .title .divselect {
|
.matrix-edit-cases #caseGrid > div > .title {
|
||||||
width: min(330px, 38vw) !important;
|
display: flex !important;
|
||||||
margin-left: auto;
|
align-items: center;
|
||||||
position: static !important;
|
flex-wrap: nowrap !important;
|
||||||
|
gap: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-edit-cases .matrix-tool-workspace__content > .title select {
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-title-text {
|
||||||
width: 100% !important;
|
flex: 0 0 auto;
|
||||||
min-height: 28px;
|
white-space: nowrap;
|
||||||
padding: 3px 28px 3px 7px;
|
}
|
||||||
border: 1px solid #9fb1c1;
|
|
||||||
border-radius: 3px;
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__portfolio-select {
|
||||||
background-color: #fff;
|
width: 0 !important;
|
||||||
|
min-width: 0;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
margin: 0 !important;
|
||||||
|
font-family: Tahoma, Arial, sans-serif;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-weight: 400;
|
||||||
|
padding: 2px 30px 2px 7px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__refresh {
|
||||||
|
box-sizing: border-box !important;
|
||||||
|
width: 27px !important;
|
||||||
|
height: 27px !important;
|
||||||
|
min-width: 27px !important;
|
||||||
|
min-height: 27px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
flex: 0 0 27px;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0 !important;
|
||||||
|
border: 0 !important;
|
||||||
|
border-radius: 0 !important;
|
||||||
|
outline: 0 !important;
|
||||||
|
appearance: none;
|
||||||
|
background: transparent !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__refresh:hover,
|
||||||
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__refresh:focus,
|
||||||
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__refresh:focus-visible,
|
||||||
|
.matrix-edit-cases #caseGrid > div > .title > .matrix-edit-cases__refresh:active {
|
||||||
|
width: 27px !important;
|
||||||
|
height: 27px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
border: 0 !important;
|
||||||
|
outline: 0 !important;
|
||||||
|
background: transparent !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-edit-cases .matrix-edit-cases__refresh img {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-edit-cases .tableContainer {
|
.matrix-edit-cases .tableContainer {
|
||||||
@@ -55,12 +102,4 @@
|
|||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-edit-cases .matrix-tool-workspace__content > .title {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.matrix-edit-cases .matrix-tool-workspace__content > .title .divselect {
|
|
||||||
width: 100% !important;
|
|
||||||
order: 3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,45 +119,103 @@ body .nav-menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.matrix-error-page {
|
body.matrix-error-page {
|
||||||
display: grid;
|
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 24px;
|
|
||||||
place-items: center;
|
|
||||||
color: #263746;
|
color: #263746;
|
||||||
background: var(--matrix-theme-canvas) !important;
|
background: var(--matrix-theme-canvas) !important;
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-error-card {
|
.matrix-error-layout {
|
||||||
width: min(100%, 480px);
|
min-height: calc(100vh - 84px);
|
||||||
|
display: grid;
|
||||||
|
place-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: clamp(24px, 5vw, 64px) 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card {
|
||||||
|
width: min(100%, 760px);
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 150px minmax(0, 1fr);
|
||||||
|
overflow: hidden;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 30px;
|
|
||||||
text-align: center;
|
|
||||||
border: 1px solid var(--matrix-theme-border);
|
border: 1px solid var(--matrix-theme-border);
|
||||||
border-radius: 8px;
|
border-radius: 10px;
|
||||||
background: var(--matrix-theme-panel);
|
background: var(--matrix-theme-panel);
|
||||||
box-shadow: 0 8px 24px rgba(31, 52, 72, .12);
|
box-shadow: 0 8px 24px rgba(31, 52, 72, .12);
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-error-card__code {
|
.matrix-error-card__status {
|
||||||
color: #b42318;
|
min-height: 290px;
|
||||||
font-size: 38px;
|
display: grid;
|
||||||
|
place-items: center;
|
||||||
|
color: #fff;
|
||||||
|
background: #a4473f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-page--401 .matrix-error-card__status,
|
||||||
|
.matrix-error-page--403 .matrix-error-card__status {
|
||||||
|
background: #a66a19;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-page--404 .matrix-error-card__status,
|
||||||
|
.matrix-error-page--405 .matrix-error-card__status {
|
||||||
|
background: #376b94;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__status span {
|
||||||
|
font-size: 42px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-error-card h1 {
|
.matrix-error-card__content {
|
||||||
margin: 10px 0 6px;
|
padding: 34px 38px 28px;
|
||||||
font-size: 21px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-error-card p {
|
.matrix-error-card__eyebrow {
|
||||||
margin: 0 0 20px;
|
color: #607587;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
letter-spacing: .08em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card h1 {
|
||||||
|
margin: 8px 0 10px;
|
||||||
|
font-size: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__message {
|
||||||
|
margin: 0 0 8px;
|
||||||
|
color: #344b5e;
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__description {
|
||||||
|
margin: 0;
|
||||||
color: #536779;
|
color: #536779;
|
||||||
|
line-height: 1.55;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 9px;
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__actions form {
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-error-card__action {
|
.matrix-error-card__action {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
min-height: 34px;
|
min-height: 34px;
|
||||||
padding: 6px 16px;
|
padding: 6px 16px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -166,6 +224,55 @@ body.matrix-error-page {
|
|||||||
background: #245a91;
|
background: #245a91;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__action:hover,
|
||||||
|
.matrix-error-card__action:focus {
|
||||||
|
color: #fff;
|
||||||
|
background: #1d4e7d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__action--secondary {
|
||||||
|
color: #334b5e;
|
||||||
|
border-color: #aebdca;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__action--secondary:hover,
|
||||||
|
.matrix-error-card__action--secondary:focus {
|
||||||
|
color: #263746;
|
||||||
|
background: #e4edf4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__reference {
|
||||||
|
margin: 22px 0 0;
|
||||||
|
padding-top: 14px;
|
||||||
|
color: #6b7e8e;
|
||||||
|
border-top: 1px solid #d5e0e8;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__reference code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 620px) {
|
||||||
|
.matrix-error-card {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__status {
|
||||||
|
min-height: 82px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__status span {
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-error-card__content {
|
||||||
|
padding: 26px 24px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compact toolbars for legacy forms that place controls in their title bar. */
|
/* Compact toolbars for legacy forms that place controls in their title bar. */
|
||||||
|
|||||||
@@ -123,6 +123,22 @@ body.matrix-v2 #PageFrame {
|
|||||||
border-radius: var(--matrix-radius-sm);
|
border-radius: var(--matrix-radius-sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.matrix-v2 #cygnus-notifications .alert-dismissible {
|
||||||
|
position: relative;
|
||||||
|
padding-right: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matrix-v2 #cygnus-notifications .alert-dismissible > .btn-close {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: 10px;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
/* Shared title treatment for migrated and legacy-backed views. */
|
/* Shared title treatment for migrated and legacy-backed views. */
|
||||||
.matrix-v2 .title,
|
.matrix-v2 .title,
|
||||||
.matrix-v2 .card-header,
|
.matrix-v2 .card-header,
|
||||||
|
|||||||
@@ -53,11 +53,14 @@
|
|||||||
min-width: 72px;
|
min-width: 72px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.matrix-punch-workspace .buttonbar input[id="btnsave"],
|
.matrix-punch-workspace .buttonbar input[id="btnsave"] {
|
||||||
.matrix-punch-workspace .buttonbar input[id="btnadd"] {
|
|
||||||
margin-left: auto !important;
|
margin-left: auto !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.matrix-punch-workspace .buttonbar input[id="btnadd"] {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.matrix-punch-workspace #formcontainer > .title {
|
.matrix-punch-workspace #formcontainer > .title {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
z-index: 21;
|
z-index: 21;
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ Owner of DHTMLgoodies.com
|
|||||||
var ajax_list_externalFile = 'getlocality'; // Path to external file
|
var ajax_list_externalFile = 'getlocality'; // Path to external file
|
||||||
var minimumLettersBeforeLookup = 1; // Number of letters entered before a lookup is performed.
|
var minimumLettersBeforeLookup = 1; // Number of letters entered before a lookup is performed.
|
||||||
|
|
||||||
var ajax_list_objects = new Array();
|
|
||||||
var ajax_list_cachedLists = new Array();
|
var ajax_list_cachedLists = new Array();
|
||||||
var ajax_list_activeInput = false;
|
var ajax_list_activeInput = false;
|
||||||
var ajax_list_activeItem;
|
var ajax_list_activeItem;
|
||||||
@@ -75,19 +74,13 @@ Owner of DHTMLgoodies.com
|
|||||||
ajax_list_activeInput.value = tmpValue;
|
ajax_list_activeInput.value = tmpValue;
|
||||||
if(document.getElementsByName(ajax_list_activeInput.name + '_hidden')[0])
|
if(document.getElementsByName(ajax_list_activeInput.name + '_hidden')[0])
|
||||||
{
|
{
|
||||||
document.getElementsByName(ajax_list_activeInput.name + '_hidden')[0].value = inputObj.id.split("#-#")[0];
|
document.getElementsByName(ajax_list_activeInput.name + '_hidden')[0].value = inputObj.dataset.localityId;
|
||||||
if(ajax_list_externalFile == 'getlocality')
|
if(ajax_list_externalFile == 'getlocality')
|
||||||
{
|
{
|
||||||
document.getElementsByName(ajax_list_activeInput.name + '_pincode')[0].value = inputObj.id.split("#-#")[1];
|
document.getElementsByName(ajax_list_activeInput.name + '_pincode')[0].value = inputObj.dataset.pincode;
|
||||||
document.getElementsByName(ajax_list_activeInput.name + '_citylist')[0].value = inputObj.id.split("#-#")[2];
|
document.getElementsByName(ajax_list_activeInput.name + '_citylist')[0].value = inputObj.dataset.city;
|
||||||
}
|
}
|
||||||
//$('#'+ajax_list_activeInput.name + '_pincode').val(inputObj.id.split("#-#")[1]);
|
|
||||||
//$('#'+ajax_list_activeInput.name + '_citylist').val(inputObj.id.split("#-#")[2]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//var f1=setTimeout('ajax_list_activeInput.focus()',1);
|
|
||||||
//var f2=setTimeout('ajax_list_activeInput.value = ajax_list_activeInput.value',1);
|
|
||||||
|
|
||||||
ajax_options_hide();
|
ajax_options_hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +112,7 @@ Owner of DHTMLgoodies.com
|
|||||||
|
|
||||||
ajax_optionDiv.innerHTML = '';
|
ajax_optionDiv.innerHTML = '';
|
||||||
ajax_list_activeItem = false;
|
ajax_list_activeItem = false;
|
||||||
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length<=1){
|
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length===0){
|
||||||
ajax_options_hide();
|
ajax_options_hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -129,19 +122,20 @@ Owner of DHTMLgoodies.com
|
|||||||
ajax_list_optionDivFirstItem = false;
|
ajax_list_optionDivFirstItem = false;
|
||||||
var optionsAdded = false;
|
var optionsAdded = false;
|
||||||
for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){
|
for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){
|
||||||
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].length==0)continue;
|
var locality = ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no];
|
||||||
|
if(!locality || !locality.location)continue;
|
||||||
optionsAdded = true;
|
optionsAdded = true;
|
||||||
var div = document.createElement('DIV');
|
var div = document.createElement('DIV');
|
||||||
var items = ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].split(/!C0L!/gi);
|
|
||||||
|
|
||||||
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1 && ajax_list_activeInput.value == items[0]){
|
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1 && ajax_list_activeInput.value == locality.location){
|
||||||
ajax_options_hide();
|
ajax_options_hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.textContent = locality.location;
|
||||||
div.innerHTML = items[items.length-1];
|
div.dataset.localityId = locality.id;
|
||||||
div.id = items[0];
|
div.dataset.pincode = locality.pincode || '';
|
||||||
|
div.dataset.city = locality.city || '';
|
||||||
div.className='optionDiv';
|
div.className='optionDiv';
|
||||||
div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false); };
|
div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false); };
|
||||||
div.onclick = ajax_option_setValue;
|
div.onclick = ajax_option_setValue;
|
||||||
@@ -156,17 +150,6 @@ Owner of DHTMLgoodies.com
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex)
|
|
||||||
{
|
|
||||||
if(whichIndex!=currentListIndex)return;
|
|
||||||
var letters = inputObj.value;
|
|
||||||
var content = ajax_list_objects[ajaxIndex].response;
|
|
||||||
var elements = content.split('!R0W!');
|
|
||||||
ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()] = elements;
|
|
||||||
ajax_option_list_buildList(letters,paramToExternalFile);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function ajax_option_resize(inputObj)
|
function ajax_option_resize(inputObj)
|
||||||
{
|
{
|
||||||
ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
|
ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
|
||||||
@@ -252,16 +235,25 @@ Owner of DHTMLgoodies.com
|
|||||||
}else{
|
}else{
|
||||||
var tmpIndex=currentListIndex/1;
|
var tmpIndex=currentListIndex/1;
|
||||||
ajax_optionDiv.innerHTML = '';
|
ajax_optionDiv.innerHTML = '';
|
||||||
var ajaxIndex = ajax_list_objects.length;
|
|
||||||
ajax_list_objects[ajaxIndex] = new sack();
|
|
||||||
if(cityval.toUpperCase() == "GURGAON") {
|
if(cityval.toUpperCase() == "GURGAON") {
|
||||||
cityval = "Gurugram";
|
cityval = "Gurugram";
|
||||||
}
|
}
|
||||||
//var url = ajax_list_externalFile + '?' + paramToExternalFile + '='+cityval+'&letters=' + inputObj.value.replace(" ","+");
|
var letters=inputObj.value;
|
||||||
var url = ajax_list_externalFile + '?city='+cityval+'&letters=' + inputObj.value.replace(" ","+");
|
var url=ajax_list_externalFile+'?'+new URLSearchParams({city:cityval,letters:letters}).toString();
|
||||||
ajax_list_objects[ajaxIndex].requestFile = url; // Specifying which file to get
|
fetch(url,{method:'GET',credentials:'same-origin',headers:{Accept:'application/json'}})
|
||||||
ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,tmpIndex); }; // Specify function that will be executed after file has been found
|
.then(function(response){return response.json().then(function(body){return {response:response,body:body};});})
|
||||||
ajax_list_objects[ajaxIndex].runAJAX(); // Execute AJAX function
|
.then(function(result){
|
||||||
|
if(!result.response.ok || !result.body || !result.body.success) throw result.body && result.body.message ? result.body.message : {};
|
||||||
|
var localities=Array.isArray(result.body.data && result.body.data.localities) ? result.body.data.localities : [];
|
||||||
|
ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()]=localities;
|
||||||
|
if(tmpIndex==currentListIndex) ajax_option_list_buildList(letters,paramToExternalFile);
|
||||||
|
})
|
||||||
|
.catch(function(error){
|
||||||
|
if(tmpIndex!=currentListIndex)return;
|
||||||
|
ajax_options_hide();
|
||||||
|
CygnusNotifications.show({type:'danger',code:error.code || 'APP-5002',
|
||||||
|
message:error.message || 'Cygnus could not load localities.',referenceId:error.referenceId});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user