Compare commits

..

134 Commits

Author SHA1 Message Date
djankowski 4c155e0e63 Merge pull request 'Development' (#779) from Development into master
Merging changes from development into master after successful testing.
2026-06-18 15:09:37 -04:00
djankowski 8388cd59a8 Merge pull request 'Development' (#776) from Development into master
Merging from dev into master after successful testing.
2026-06-04 09:12:30 -04:00
djankowski 5a09069b08 Merge pull request 'Development' (#774) from Development into master
Merging dev into master after successful testing
2026-05-28 08:47:08 -04:00
djankowski 9e10948e59 Merge pull request 'Development' (#770) from Development into master
Merging development into master after successful testing.
2026-05-15 10:06:27 -04:00
djankowski f8663e038f Merge pull request 'Development' (#752) from Development into master
Merging from dev into master after successful testing.
2026-04-01 10:21:52 -04:00
djankowski 124cfb14ab Merge pull request 'Development' (#749) from Development into master
Merging from dev into Master after successful testing.
2026-03-27 10:50:22 -04:00
djankowski 4852b7c2c0 Merge pull request 'Development' (#735) from Development into master
Merging changes from dev into master after successful testing.
2026-03-12 15:17:28 -04:00
djankowski dd4b08ec2b Merge pull request 'Development' (#732) from Development into master
Merging changes from dev into master after successful testing.
2026-03-11 11:09:47 -04:00
djankowski 6aef00ffc6 Merge pull request 'Development' (#708) from Development into master
Merging dev into master after successful testing.
2026-02-09 08:26:02 -05:00
djankowski 76eb6fca13 Merge pull request 'Development' (#706) from Development into master
Merging dev into master after successful testing.
2026-02-06 09:37:35 -05:00
djankowski 892b84690e Merge pull request 'Development' (#698) from Development into master
Merging dev into master after successful testing.
2026-01-29 08:46:50 -05:00
djankowski b0bfb4d3f6 Merge pull request 'Development' (#690) from Development into master
Merging Development into master after successful testing.
2026-01-22 08:17:16 -05:00
djankowski af1a05ff40 Merge pull request 'Development' (#681) from Development into master
Merging C2025-043 from dev into master after successful testing.
2026-01-13 16:35:02 -05:00
djankowski de89200eae Merge pull request 'Development' (#678) from Development into master
Merging dev into master after successful testing.
2026-01-05 08:22:25 -05:00
djankowski 7009ca78f2 Merge pull request 'Development' (#675) from Development into master
Merging dev into master after successful testing.
2025-12-18 08:34:38 -05:00
djankowski 03c58b7ae3 Merge pull request 'Development' (#672) from Development into master
Merging changes from dev into Master after successful testing
2025-12-11 08:44:58 -05:00
djankowski c9166f6f92 Merge pull request 'Development' (#669) from Development into master
Merging all changes from dev into master after successful testing.
2025-12-05 11:50:16 -05:00
djankowski 343d6a8c9a Merge pull request 'Development' (#650) from Development into master
Merging from dev into master after successful testing.
2025-11-06 09:23:19 -05:00
djankowski 8c5c7a5d93 Merge pull request 'Development' (#634) from Development into master
Merging dev into master after successful testing.
2025-10-09 12:50:13 -04:00
djankowski 864ec2709c Merge pull request 'Development' (#620) from Development into master
Merging Dev into master after successful testing.
2025-09-24 08:25:00 -04:00
djankowski 4b1ca8d7bf Merge pull request 'Development' (#612) from Development into master
Merging data into master after successful testing
2025-09-11 12:13:22 -04:00
djankowski 3b73d54ea2 Merge pull request 'Development' (#600) from Development into master
Merging dev into master after successful testing.
2025-08-15 08:37:48 -04:00
djankowski 2ca433c83f Merge pull request 'Development' (#576) from Development into master
Merging Dev into Master after successful testing.
2025-07-28 08:20:18 -04:00
djankowski 0b40569727 Merge pull request 'Development' (#570) from Development into master
Reviewed-on: #570
2025-06-23 14:58:28 -04:00
djankowski afb0247d87 Merge pull request 'Development' (#559) from Development into master
Merging changes from dev into master after successful testing.
2025-05-20 13:24:21 -04:00
djankowski bce8461a7e Merge pull request 'Development' (#555) from Development into master
Merging all changes from dev into master after successful testing.
2025-05-15 15:01:00 -04:00
djankowski 9d5cc43d71 Merge pull request 'Development' (#543) from Development into master
Merging dev into master after successful testing.
2025-05-01 11:25:49 -04:00
djankowski bc1370ab29 Merge pull request 'Development' (#540) from Development into master
Merging changes from Development into master after successful testing.
2025-04-23 15:13:56 -04:00
djankowski eaf2b14cfc Merge pull request 'Development' (#535) from Development into master
Merging all changes from development into master after successful testing.
2025-03-26 09:25:11 -04:00
djankowski 1cf7d81aa5 Merge pull request 'Development' (#530) from Development into master
Merging all changes through B2025-017 from dev into master after successful testing.
2025-03-04 10:24:28 -05:00
djankowski f11a9536f0 Merge pull request 'Development' (#524) from Development into master
Merging all changes through B2025-015 from development into master after successful testing.
2025-02-20 15:33:44 -05:00
djankowski c7bdcf0104 Merge pull request 'Development' (#516) from Development into master
Merging changes from development into master after successful testing
2025-02-11 15:25:38 -05:00
djankowski df026499d5 Merge pull request 'Development' (#512) from Development into master
Merging all changes from development into master after successful testing.
2025-02-10 09:20:43 -05:00
djankowski a3aa4157b8 Merge pull request 'Development' (#508) from Development into master
Merging all changes through B2025-012 from development into master after successful testing.
2025-02-05 10:50:35 -05:00
djankowski 8f3268e1bc Merge pull request 'Development' (#504) from Development into master
Merging all changes from development into master after successful testing.
2025-01-30 15:55:02 -05:00
djankowski 5721d440e9 Merge branch 'master' of https://git.volian.com/Volian/SourceCode 2025-01-21 10:42:15 -05:00
djankowski 505c396283 Merge pull request 'Development' (#489) from Development into master
Merging from development into master after successful testing.
2025-01-21 10:41:15 -05:00
djankowski 643e6bc94f Merge pull request 'Development' (#486) from Development into master
Merging all items through B2025-003 from development in master after successful testing.
2025-01-09 15:02:16 -05:00
djankowski 76502e6d97 Merge pull request 'Development' (#481) from Development into master
Merging all changes through F2024-087 after successful testing.
2024-12-11 11:52:34 -05:00
djankowski 851a0b3810 Merge pull request 'Development' (#464) from Development into master
Merging all items through B2024-092 from development into master after successful testing.
2024-11-11 11:39:01 -05:00
djankowski fd8dbb4c8b Merge pull request 'Development' (#454) from Development into master
Merging all changes from development into master after successful testing.
2024-11-01 14:18:00 -04:00
djankowski 4ffd994c5e Merge pull request 'Development' (#450) from Development into master
Merging all development items into master after successful testing.
2024-10-31 09:11:59 -04:00
djankowski a34828113a Merge pull request 'Development' (#416) from Development into master
Merging C2017-031 and B2024-075 from development into master after successful testing.
2024-10-03 12:08:30 -04:00
djankowski 461329468c Merge pull request 'Development' (#413) from Development into master
Merging F2023-136 and F2024-074 in master after successful testing
2024-09-27 14:27:22 -04:00
djankowski 35de5df04d Merge pull request 'Development' (#410) from Development into master
Merging all items through B2024-03 from development into master after successful testing.
2024-09-17 12:03:23 -04:00
djankowski 4f0548fd60 Merge pull request 'Development' (#402) from Development into master
Merging C2021-034 and B2024-065 into master after successful testing.
2024-09-06 09:56:37 -04:00
djankowski 5c1d96cc51 Merge pull request 'Development' (#399) from Development into master
Merging all fixes through B2024-063 from development into master after successful testing.
2024-08-27 15:58:15 -04:00
djankowski 57049c0c52 Merge pull request 'Development' (#392) from Development into master
Merging B2024-059 and B2024-058 from development into master after successful testing.
2024-08-15 14:55:27 -04:00
djankowski 31326e1c91 Merge pull request 'Development' (#389) from Development into master
Merging all changes through F2024-069 from development into master after successful testing.
2024-08-09 13:06:40 -04:00
djankowski 3c60994a0a Merge pull request 'Development' (#373) from Development into master
Merging all changes through B2024-053 from development into master after successful testing.
2024-08-01 08:37:23 -04:00
djankowski 773cc42346 Merge pull request 'Development' (#362) from Development into master
Merging B2024-046 and B2024-047 from development into master after successful testing.
2024-07-25 10:44:42 -04:00
djankowski f46a1f39dc Merge pull request 'Development' (#359) from Development into master
Merging B2024-042 from development into master after successful testing.
2024-07-22 11:14:19 -04:00
djankowski b7175bf77f Merge pull request 'Development' (#357) from Development into master
Merging C2024-005 from development into master after successful testing.
2024-07-18 15:41:20 -04:00
djankowski ec22232aa8 Merge pull request 'Development' (#356) from Development into master
Merging all items through B2024-041 from development into master after successful testing.
2024-07-18 09:51:54 -04:00
djankowski f303cd2236 Merge pull request 'Development' (#348) from Development into master
Merging F2024-065 and F2024-066 from development into master after successful testing.
2024-07-03 10:45:41 -04:00
djankowski f40cef4416 Merge pull request 'Development' (#346) from Development into master
Merging F2024-064 from development into master after successful testing.
2024-07-01 11:54:15 -04:00
djankowski fbca97d38d Merge pull request 'Development' (#344) from Development into master
Merging C2024-013 from development into master after successful testing.
2024-06-25 15:55:32 -04:00
djankowski 28bd2cba5c Merge pull request 'Development' (#342) from Development into master
Merging C2022-029 from development into master after successful testing.
2024-06-20 11:36:59 -04:00
djankowski 4b35f73bbf Merge pull request 'Development' (#340) from Development into master
Merging C2024-004 from development into master after successful testing.
2024-06-19 16:23:23 -04:00
djankowski f4706eb126 Merge pull request 'Development' (#338) from Development into master
Merging C2019-047 from development into master after successful testing.
2024-06-17 08:38:34 -04:00
djankowski 21bcb90558 Merge pull request 'Development' (#335) from Development into master
Merging B2024-036 and F2024-063 from development into master after successful testing.
2024-06-06 14:51:13 -04:00
djankowski ae48ac0cae Merge pull request 'Development' (#332) from Development into master
Merging changes through B2024-035 from development into master after successful testing.
2024-05-30 08:08:28 -04:00
djankowski cb4979d5bc Merge pull request 'Development' (#327) from Development into master
Merging F2024-061 from development into master after successful testing.
2024-05-20 14:11:12 -04:00
djankowski 7d3ae74e1f Merge pull request 'Development' (#325) from Development into master
Merging F2024-060 from development into master after successful testing.
2024-05-16 15:32:13 -04:00
djankowski 9d680aa500 Merge pull request 'Development' (#323) from Development into master
Merging C2024-001 from development into master after successful testing.
2024-05-16 14:17:17 -04:00
djankowski 0d50b1c2fe Merge pull request 'Development' (#321) from Development into master
Merging all items through B2024-030 from development into master after successful testing.
2024-05-15 08:33:58 -04:00
djankowski 75e034863f Merge pull request 'Development' (#315) from Development into master
Merging all changes through B2024-026 from development into master after successful testing.
2024-05-09 14:01:48 -04:00
jjenko 3b42de1571 Merge pull request 'F2024-059_Callaway' (#311) from F2024-059_Callaway into master
Format only changes
2024-05-07 16:00:36 -04:00
djankowski 668472286e Merge pull request 'Development' (#307) from Development into master
Merging all changes through C2023-006 into master after successful testing.
2024-04-26 09:21:44 -04:00
djankowski e00d34c99d Merge pull request 'Development' (#300) from Development into master
Merging C2024-008 and C2024-007 from development into master after successful testing.
2024-04-17 14:57:22 -04:00
djankowski 9fb496dfb3 Merge pull request 'Development' (#297) from Development into master
Merging F2024-053 from development into master after successful testing.
2024-04-11 09:23:34 -04:00
djankowski f4eaa4a3ef Merge pull request 'Development' (#295) from Development into master
Merging F2024-052 from development into master after successful testing.
2024-04-08 11:11:43 -04:00
djankowski 5d50ed6bdf Merge pull request 'Development' (#292) from Development into master
Merging F2024-051, B2024-021, F2024-049, F2024-050 and F2024-045 after successful testing.
2024-04-05 10:54:57 -04:00
djankowski d7ace4eaf9 Merge pull request 'Development' (#287) from Development into master
Merging F2024-047, F2024-048, B2024-017 and B2024-019 from development into master after successful testing.
2024-04-04 11:36:56 -04:00
djankowski 16a4d335ea Merge pull request 'Development' (#282) from Development into master
Merging all items through B2024-018 from development into master after successful testing.
2024-03-27 13:39:46 -04:00
djankowski ba69bb0772 Merge pull request 'Development' (#275) from Development into master
Merging F2024-037 and CSLA updates into master after successful testing.
2024-03-20 16:07:27 -04:00
djankowski 455940caa2 Merge pull request 'Development' (#271) from Development into master
Merging F2024-040 into master after successful testing.
2024-03-18 10:00:30 -04:00
djankowski 439344757e Merge pull request 'Development' (#269) from Development into master
Merging F2024-044, F2024-043, and F2024-019 in master after successful testing.
2024-03-15 09:33:57 -04:00
djankowski ad912691c9 Merge pull request 'Development' (#265) from Development into master
Merging 	F2024-016, 	F2024-032, 	B2024-013, 	F2024-025,	F2024-027 & F2024-028 into master after successful testing.
2024-03-12 14:01:12 -04:00
djankowski 237144aff6 Merge pull request 'Development' (#259) from Development into master
Merging B2024-014 from development into master after successful testing.
2024-03-04 15:02:18 -05:00
djankowski 810332d558 Merge pull request 'Development' (#256) from Development into master
Merging F2024-020 from development into master.  No testing required since formats are under development.
2024-02-29 13:23:48 -05:00
djankowski f8431d0ba1 Merge pull request 'Development' (#252) from Development into master
Merging F2024-022 from development into master.  No testing required since formats are under development.
2024-02-29 09:23:51 -05:00
djankowski 57c3bfa16a Merge pull request 'Development' (#250) from Development into master
Merging C2023-003 and F2024-026 into master after successful testing.
2024-02-28 11:56:15 -05:00
djankowski 61f1077608 Merge pull request 'Development' (#248) from Development into master
Merging F2024-029, B2024-009, F2024-023, B2024-011, B2024-012 and F2024-017 from development into master after successful testing.
2024-02-27 14:21:22 -05:00
djankowski 8877e968b9 Merge pull request 'Development' (#239) from Development into master
Merging F2024-018, B2024-008, B2024-007, and F2024-015 from development into master after successful testing.
2024-02-22 08:22:26 -05:00
djankowski 4575c90bee Merge pull request 'Development' (#233) from Development into master
Merging updated formats from development into master after successful testing.
2024-02-14 16:07:57 -05:00
djankowski 21279a87ae Merge pull request 'Development' (#231) from Development into master
Merging B2024-006 from development into master after successful testing.
2024-02-14 08:19:09 -05:00
djankowski 3d5ad4a17e Merge pull request 'Development' (#229) from Development into master
Merging C2024-002 and F2024-013 from development into master after successful testing.
2024-02-09 11:30:41 -05:00
djankowski 9bb7b044a8 Merge pull request 'Development' (#226) from Development into master
Merging F2024-010, 	F2024-011, 	F2024-008, 	B2024-002, 	F2024-012  and B2024-005 from development into master after successful testing.
2024-02-08 11:38:49 -05:00
djankowski dc8f2f7561 Merge pull request 'Development' (#219) from Development into master
Merging C2022-009 into master after successful testing.
2024-02-02 13:53:22 -05:00
djankowski 829dbf84da Merge pull request 'Development' (#217) from Development into master
Merging F2024-005 and B2024-004 from development into master after successful testing
2024-01-31 08:34:00 -05:00
djankowski 7b156c17f8 Merge pull request 'Development' (#212) from Development into master
Merging all changes up through F2024-006 from development into master after successful testing.
2024-01-24 11:30:40 -05:00
djankowski cbf7cbc164 Merge pull request 'Development' (#198) from Development into master
Merging F2024-002 and F2023-112 from development into master.  No testing required since formats are under development.
2024-01-08 15:24:15 -05:00
djankowski b04faa816e Merge pull request 'Development' (#196) from Development into master
Merging F2023-126, F2024-001, C2022-009, C2023-024 and C2023-023 from development into Master after successful testing.
2024-01-03 10:54:22 -05:00
djankowski 517ebe2902 Merge pull request 'Development' (#189) from Development into master
Initial check-in of Vogtle Background formats.  No testing required since formats are under development.
2023-12-15 15:48:55 -05:00
djankowski 03d0d314e3 Merge pull request 'Development' (#187) from Development into master
Merging B2023-115 from development into master after successful testing.
2023-12-12 15:31:06 -05:00
djankowski 3e804c5cce Merge pull request 'Development' (#185) from Development into master
Merging F2023-133 into from development into master. No testing required since formats are under development.
2023-12-11 10:08:22 -05:00
djankowski ee2b8b538e Merge pull request 'Development' (#183) from Development into master
Merging PROMSFixes from development into master after minor changes to UpdateFormatList.
2023-12-08 14:51:21 -05:00
djankowski fdfd34fe92 Merge pull request 'Development' (#181) from Development into master
Merging F2023-151 from development into master.  No testing required since formats are under development.
2023-12-07 15:55:16 -05:00
djankowski 2d6fb6523b Merge pull request 'Development' (#179) from Development into master
Merging F2023-133 from development into master.  No testing required since formats are under development.
2023-12-07 11:44:31 -05:00
djankowski 3084bf3982 Merge pull request 'Development' (#177) from Development into master
Merging B2023-115 and F2023-150 from development into master.  No testing required since formats are under development.
2023-12-06 09:08:18 -05:00
djankowski 5ba51e8392 Merge pull request 'Development' (#174) from Development into master
Merging F2023-149 from development into master.  No testing required since formats are under development.
2023-12-05 16:30:39 -05:00
djankowski fb5eb43e34 Merge pull request 'Development' (#172) from Development into master
Merging F2023-124 from development into master.  No testing required since formats are under development.
2023-12-04 11:22:59 -05:00
djankowski b154056276 Merge pull request 'Development' (#170) from Development into master
Merging F2023-119 from development into master.  No testing required since formats are under development.
2023-12-01 15:36:22 -05:00
djankowski c67b8f9ca1 Merge pull request 'Development' (#168) from Development into master
Merging F2023-146 from development to master.  No testing required since formats are under development.
2023-12-01 10:02:50 -05:00
djankowski 95e4181360 Merge pull request 'Development' (#166) from Development into master
Merging F2023-148, F2023-148, and B2023-120 from development into Master. No testing required since formats are under development.
2023-11-30 14:38:49 -05:00
djankowski 32dffbe56b Merge pull request 'Development' (#162) from Development into master
Merging B2023-116, B2023-117, and F2023-143 from development to master after successful testing.
2023-11-29 15:58:44 -05:00
jjenko 6b3c8d373b Merge pull request 'F2023-143_Vogtle3&4_Alrm_Footer' (#159) from F2023-143_Vogtle3&4_Alrm_Footer into master
Format only change.
Vogtle 3&4 formats under development. This change will be tested as data in entered into PROMS by Volian
2023-11-27 16:23:44 -05:00
djankowski db29107f47 Merge pull request 'Development' (#156) from Development into master
Merging F2023-142 and B2022-046 in from development to master after successful testing.
2023-11-14 08:45:47 -05:00
djankowski 355537f2ab Merge pull request 'Development' (#153) from Development into master
Merging F2023-140, F2023-123, B2023-007, B2023-108, F2023-139, F2023-138 and B2023-103
2023-11-09 10:33:40 -05:00
djankowski 0729ef0c21 Merge pull request 'Development' (#147) from Development into master
Merging F2023-139 from development into master after successful testing.
2023-10-26 10:10:33 -04:00
djankowski 6fe82bfd0f Merge pull request 'Development' (#145) from Development into master
Merging F2023-138 from development into master after successful testing.
2023-10-25 14:40:15 -04:00
djankowski 39bf072363 Merge pull request 'Development' (#142) from Development into master
Merging B2023-103 from development into master after successful testing.
2023-10-23 15:28:31 -04:00
djankowski da7c384fd8 Merge pull request 'Development' (#139) from Development into master
Merging C2023-017, C2023-019, B2023-104, B2023-101 and B2023-102 from development into master after successful testing.
2023-10-18 10:37:59 -04:00
djankowski 95130fd9a0 Merge pull request 'Development' (#133) from Development into master
Merging C2023-018 from development into master after successful testing.
2023-10-11 09:26:45 -04:00
djankowski 978e2344a3 Merge pull request 'Development' (#131) from Development into master
Merging C2023-016 and C2023-017 from development into master after successful testing.
2023-10-06 10:56:34 -04:00
djankowski c9bf45602c Merge pull request 'Development' (#128) from Development into master
Merging F2023-137 and B2023-100 from development into master. F2023-137 does not require testing since formats are under development. B2023-100 tested successfully.
2023-10-02 11:52:22 -04:00
djankowski aa160b2036 Merge pull request 'Development' (#124) from Development into master
Merging B2023-099 from development into master after successful testing.
2023-09-28 15:58:27 -04:00
djankowski f82b32d351 Merge pull request 'Development' (#122) from Development into master
Merging B2023-097 and B2023-098 from development into master after successful testing.
2023-09-26 14:58:05 -04:00
djankowski e519dc9a57 Merge pull request 'Development' (#120) from Development into master
Merging B2023-094 from development into master after successful testing.
2023-09-22 13:24:17 -04:00
djankowski f020c37db9 Merge pull request 'Development' (#118) from Development into master
Merged B2023-096 from development into master after successful testing.
2023-09-15 11:50:57 -04:00
djankowski 5a4ec3b6b1 Merge pull request 'Development' (#117) from Development into master
Merging F2023-135 and B2023-093 from development into master after successful testing.
2023-09-14 15:58:52 -04:00
djankowski 2602d6c9d2 Merge pull request 'Development' (#113) from Development into master
Merging C2023-015 from development into master.
2023-09-12 09:23:57 -04:00
djankowski ff403583d7 Merge pull request 'Development' (#111) from Development into master
Merging B2023-091 and B2023-078 from development into master.
2023-08-30 16:07:17 -04:00
djankowski c5577cc2bd Merge pull request 'Development' (#108) from Development into master
Merging F2023-134 from development into master.  No testing required since formats are under development.
2023-08-24 15:01:12 -04:00
djankowski 78be6e5dc1 Merge pull request 'Development' (#106) from Development into master
Merging GitAutomation from Development into Master.
2023-08-24 09:13:06 -04:00
djankowski b954a41375 Merge pull request 'Development' (#104) from Development into master
Merging B2023-089 and F2023-131 from Development into Master.  No testing required since formats are under development.
2023-08-24 09:05:31 -04:00
djankowski 0100a11cfe Merge pull request 'Development' (#101) from Development into master
Merging F2023-125 from development into master.  No testing required since formats are under development.
2023-08-23 08:19:00 -04:00
djankowski 04cf2e8534 Merge pull request 'Development' (#99) from Development into master
Merging F2023-130 from Development into Master. No testing required since formats are under development.
2023-08-22 15:04:22 -04:00
djankowski be00724818 Merge pull request 'Development' (#97) from Development into master
Merging B2023-088 from development into master.  No testing required since formats are under development.
2023-08-22 10:52:09 -04:00
djankowski 274d93c61a Merge pull request 'Development' (#94) from Development into master
Merging F2023-122 from development into master.  No testing required since formats are under development.
2023-08-22 08:53:57 -04:00
djankowski 7dc4c30436 Merge pull request 'Development' (#92) from Development into master
Merging F2023-127 from development into master.  No testing required since formats are under development.
2023-08-22 08:33:56 -04:00
djankowski 028ef4bc31 Merge pull request 'Development' (#89) from Development into master
Merging F2023-128 and F2023-129 from development into master.  No testing required since formats are under development.
2023-08-21 11:46:01 -04:00
djankowski 42124d65c7 Merge pull request 'Development' (#87) from Development into master
Merging F2023-118,  F2023-120 and F2023-121 from development into master.  No testing required since formats are under development.
2023-08-16 10:13:52 -04:00
11 changed files with 1491 additions and 1549 deletions
-1
View File
@@ -179,7 +179,6 @@
<Content Include="fmtall\CPL_00all.xml" /> <Content Include="fmtall\CPL_00all.xml" />
<Content Include="fmtall\CPL_01all.xml" /> <Content Include="fmtall\CPL_01all.xml" />
<Content Include="fmtall\CPL_02all.xml" /> <Content Include="fmtall\CPL_02all.xml" />
<Content Include="fmtall\CPL_04all.xml" />
<Content Include="fmtall\CPL_03all.xml" /> <Content Include="fmtall\CPL_03all.xml" />
<Content Include="fmtall\CPSAMGDataall.xml" /> <Content Include="fmtall\CPSAMGDataall.xml" />
<Content Include="fmtall\CPSAMGDEVall.xml" /> <Content Include="fmtall\CPSAMGDEVall.xml" />
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1817,7 +1817,7 @@ ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete a
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
where ii.DeleteStatus > 0 where ii.DeleteStatus > 0
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus) update ga set ga.contentauditid = (select max(auditid) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0 from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
end end
go go
+14 -59
View File
@@ -5547,12 +5547,6 @@ ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation'
GO GO
------- -------
-- =============================================
-- Author: Matthew Schill
-- Modify date: 07/14/2026
-- Description: Reworked ve_GetParentItem for Performance improvement
-- =============================================
/****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/ /****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
DROP FUNCTION [ve_GetParentItem]; DROP FUNCTION [ve_GetParentItem];
@@ -5561,46 +5555,35 @@ GO
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved. Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/ *****************************************************************************/
CREATE OR ALTER FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int CREATE FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int
WITH EXECUTE AS OWNER WITH EXECUTE AS OWNER
AS AS
BEGIN BEGIN
DECLARE @ParentID int; DECLARE @ParentID int;
WITH Itemz([ItemID]) as WITH Itemz([ItemID],[IsFound]) as
( (
select ii.itemid from items ii WITH (NOLOCK) where ii.itemid = @ItemID select ii.itemid,0 from items ii where ii.itemid = @ItemID
union all union all
select ii.previousid from items ii WITH (NOLOCK) select ii.previousid,0 from items ii
join itemz zz on ii.itemid = zz.itemid join itemz zz on ii.itemid = zz.itemid
where ii.previousid is not null where ii.previousid is not null
and zz.isfound = 0
union all
select ii.itemid,1
from parts pp
join itemz zz on pp.itemid = zz.itemid
join items ii on ii.contentid = pp.contentid
) )
select top 1 @ParentID = ii.itemid select top 1 @ParentID = itemid from itemz
from itemz where isfound = 1 OPTION (MAXRECURSION 10000)
inner join parts pp WITH (NOLOCK) on pp.itemid = itemz.itemid
inner join items ii WITH (NOLOCK) on ii.contentid = pp.contentid
OPTION (MAXRECURSION 10000)
RETURN @ParentID RETURN @ParentID
END END
GO GO
IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded' IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded'
ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation' ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation'
go go
IF EXISTS (SELECT * FROM dbo.sysIndexes WHERE name like 'IX_PartsItemID')
DROP INDEX [IX_PartsItemID] ON [dbo].[tblParts];
GO
CREATE NONCLUSTERED INDEX IX_PartsItemID
ON [dbo].[tblParts] ([ItemID] ASC)
INCLUDE([ContentID],[DeleteStatus],[FromType]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
PRINT 'Added IX_PartsItemID Index. Speeds up Getting Parent Items'
GO
/****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/ /****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
DROP FUNCTION [vefn_CanTransitionBeCreated]; DROP FUNCTION [vefn_CanTransitionBeCreated];
@@ -25007,34 +24990,6 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber
ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation' ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation'
GO GO
/*
==========================================================================================================
Author: Matthew Schill
Create Date: 06/29/2026
Description: Added an ISNULL check when setting GridAudits.contentauditid.
Was Causing Deletion of some Grids to fail.
==========================================================================================================
*/
/****** Object: Trigger [tr_Contents_Delete] ******/
ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete as
begin
update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), ActionDTS = getdate(),
UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc)
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS)
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
where ii.DeleteStatus > 0
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
end
go
-- Display the status of Trigger alter
IF (@@Error = 0) PRINT 'Trigger Alteration: tr_Contents_Delete Succeeded'
ELSE PRINT 'Trigger Alteration: tr_Contents_Delete Error on Creation'
GO
/* /*
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
| ADD New Code Before this Block | | ADD New Code Before this Block |
@@ -25068,8 +25023,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255) DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255) DECLARE @RevDescription varchar(255)
set @RevDate = '07/16/2026 8:30 AM' set @RevDate = '05/26/2026 7:00 AM'
set @RevDescription = 'Reworked ve_GetParentItem for Performance improvement' set @RevDescription = 'Get Most Recent Revision when Duplicates'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
+93 -122
View File
@@ -8,6 +8,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using static System.Net.Mime.MediaTypeNames;
namespace VEPROMS.CSLA.Library namespace VEPROMS.CSLA.Library
@@ -60,7 +61,6 @@ namespace VEPROMS.CSLA.Library
#region Structs / Internal Classes #region Structs / Internal Classes
[Serializable] [Serializable]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
public struct roHdr public struct roHdr
{ {
public int hSize; public int hSize;
@@ -78,7 +78,6 @@ namespace VEPROMS.CSLA.Library
}; };
[Serializable] [Serializable]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
public struct rodbi public struct rodbi
{ {
public int dbiID; public int dbiID;
@@ -92,7 +91,6 @@ namespace VEPROMS.CSLA.Library
}; };
[Serializable] [Serializable]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
public struct rogrp public struct rogrp
{ {
public string value; public string value;
@@ -104,7 +102,6 @@ namespace VEPROMS.CSLA.Library
}; };
[Serializable] [Serializable]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
public struct rochild public struct rochild
{ {
public int ID; public int ID;
@@ -136,7 +133,7 @@ namespace VEPROMS.CSLA.Library
private List<string> _baseAccPageKeys; private List<string> _baseAccPageKeys;
// RofstLookup/Conversion Variables // RofstLookup/Conversion Variables
private readonly int _rofstID; private int _rofstID;
private DocVersionInfo _myDocVersionInfo; private DocVersionInfo _myDocVersionInfo;
private int _selectedSlave; private int _selectedSlave;
private string _otherChild = string.Empty; private string _otherChild = string.Empty;
@@ -152,7 +149,7 @@ namespace VEPROMS.CSLA.Library
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database // B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
private frmRofstLoadStatus _frmRofstLoadStatus = null; private frmRofstLoadStatus _frmRofstLoadStatus = null;
private Dictionary<int, int> _dicRoCounts = null; private Dictionary<int, int> _dicRoCounts = null;
private readonly bool _showLoadingStatus = true; private bool _showLoadingStatus = true;
private int _curRoCnt = 0; private int _curRoCnt = 0;
private int _dbRoCnt = 0; private int _dbRoCnt = 0;
@@ -417,6 +414,7 @@ namespace VEPROMS.CSLA.Library
ROFSTLookup.rochild rc = RofstDataGetChildByAccPageID(_rofstID, accPageBase); ROFSTLookup.rochild rc = RofstDataGetChildByAccPageID(_rofstID, accPageBase);
//if (rc.ID >=0 && rc.roid.Length < 16 && Regex.IsMatch(accPageKey, @".*\.[A-Z]") && rc.children != null && rc.children.Count() > 0)
if (rc.ID >= 0 && rc.roid.Length < 16 && !string.IsNullOrEmpty(accPageExt) && rc.children != null && rc.children.Count() > 0) if (rc.ID >= 0 && rc.roid.Length < 16 && !string.IsNullOrEmpty(accPageExt) && rc.children != null && rc.children.Count() > 0)
{ {
// Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type, // Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type,
@@ -509,6 +507,8 @@ namespace VEPROMS.CSLA.Library
// B2023-037: Handle <=, >=, +-, -> and <- symbols. Convert to unicode for output, i.e. print and edit/view (when editing // B2023-037: Handle <=, >=, +-, -> and <- symbols. Convert to unicode for output, i.e. print and edit/view (when editing
// step, will show as 2 characters, not unicode, unless ro inserted when code replaced link text with unicode. // step, will show as 2 characters, not unicode, unless ro inserted when code replaced link text with unicode.
//(_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue ||
// _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue))
bool arrows1 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue; bool arrows1 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
bool arrows2 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue; bool arrows2 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
@@ -681,10 +681,11 @@ namespace VEPROMS.CSLA.Library
if (minutes > 0) duration = string.Format("{0} min(s) ", minutes.ToString("n0")); if (minutes > 0) duration = string.Format("{0} min(s) ", minutes.ToString("n0"));
if (secs < 0) secs = 0.00; if (secs < 0) secs = 0.00;
duration += string.Format("{0,10:#####0.00} sec(s)", secs).Trim(); duration = duration + string.Format("{0,10:#####0.00} sec(s)", secs).Trim();
return duration; return duration;
//return string.Format("{0,10:#####0.00}", TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds);
} }
//C2026-008 Re-Architect RO.FST to include RO Modification date/time //C2026-008 Re-Architect RO.FST to include RO Modification date/time
@@ -1474,20 +1475,19 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.roHdr ConvertFst2Objects(byte[] ab) private ROFSTLookup.roHdr ConvertFst2Objects(byte[] ab)
{ {
ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr();
{
hSize = BitConverter.ToInt32(ab, 0), roh.hSize = BitConverter.ToInt32(ab, 0);
hYear = BitConverter.ToInt16(ab, 4), roh.hYear = BitConverter.ToInt16(ab, 4);
hMonth = ab[6], roh.hMonth = ab[6];
hDay = ab[7], roh.hDay = ab[7];
hcYear = BitConverter.ToInt16(ab, 8), roh.hcYear = BitConverter.ToInt16(ab, 8);
hcMonth = ab[10], roh.hcMonth = ab[10];
hcDay = ab[11], roh.hcDay = ab[11];
hcHour = ab[12], roh.hcHour = ab[12];
hcMin = ab[13], roh.hcMin = ab[13];
hcSec = ab[14], roh.hcSec = ab[14];
hcHund = ab[15] roh.hcHund = ab[15];
};
int hdrOffset = BitConverter.ToInt32(ab, 16); int hdrOffset = BitConverter.ToInt32(ab, 16);
int dbs = BitConverter.ToInt16(ab, hdrOffset + 4); int dbs = BitConverter.ToInt16(ab, hdrOffset + 4);
@@ -1525,11 +1525,10 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.rogrp LoadGroup(byte[] ab, int offset, int tableID) private ROFSTLookup.rogrp LoadGroup(byte[] ab, int offset, int tableID)
{ {
ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp();
{
ID = BitConverter.ToInt32(ab, offset), myGrp.ID = BitConverter.ToInt32(ab, offset);
ParentID = BitConverter.ToInt32(ab, offset + 4) myGrp.ParentID = BitConverter.ToInt32(ab, offset + 4);
};
int numChildren = BitConverter.ToInt16(ab, offset + 8); int numChildren = BitConverter.ToInt16(ab, offset + 8);
@@ -1661,7 +1660,7 @@ namespace VEPROMS.CSLA.Library
} }
// Update Progress Bar Accordingly // Update Progress Bar Accordingly
if (_totalRoCnt > 0) _pctComplete += ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0); if (_totalRoCnt > 0) _pctComplete = _pctComplete + ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0);
OnProgressChanged(displayText, Convert.ToInt32(_pctComplete), 100); OnProgressChanged(displayText, Convert.ToInt32(_pctComplete), 100);
} }
@@ -1721,13 +1720,15 @@ namespace VEPROMS.CSLA.Library
protected virtual void OnProgressChanged(string title, string displayText, int curVal = 0, int maxVal = 100) protected virtual void OnProgressChanged(string title, string displayText, int curVal = 0, int maxVal = 100)
{ {
// If frmRofstLoadStatus is not null then call Update Progress Method // If frmRofstLoadStatus is not null then call Update Progress Method
_frmRofstLoadStatus?.UpdateProgress(title, displayText, curVal, maxVal); if (_frmRofstLoadStatus != null)
_frmRofstLoadStatus.UpdateProgress(title, displayText, curVal, maxVal);
} }
protected virtual void OnProgressChanged(string displayText, int curVal = 0, int maxVal = 100) protected virtual void OnProgressChanged(string displayText, int curVal = 0, int maxVal = 100)
{ {
// If frmRofstLoadStatus is not null then call Update Progress Method // If frmRofstLoadStatus is not null then call Update Progress Method
_frmRofstLoadStatus?.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal); if (_frmRofstLoadStatus != null)
_frmRofstLoadStatus.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal);
} }
#endregion #endregion
@@ -1738,20 +1739,19 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.roHdr ConvertToRoHdrObject(SafeDataReader dr, bool loadChildren) private ROFSTLookup.roHdr ConvertToRoHdrObject(SafeDataReader dr, bool loadChildren)
{ {
ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr();
{
hSize = (int)dr.GetValue("hSize"), rh.hSize = (int)dr.GetValue("hSize");
hYear = (int)dr.GetValue("hYear"), rh.hYear = (int)dr.GetValue("hYear");
hMonth = (byte)dr.GetValue("hMonth"), rh.hMonth = (byte)dr.GetValue("hMonth");
hDay = (byte)dr.GetValue("hDay"), rh.hDay = (byte)dr.GetValue("hDay");
hcYear = (int)dr.GetValue("hcYear"), rh.hcYear = (int)dr.GetValue("hcYear");
hcMonth = (byte)dr.GetValue("hcMonth"), rh.hcMonth = (byte)dr.GetValue("hcMonth");
hcDay = (byte)dr.GetValue("hcDay"), rh.hcDay = (byte)dr.GetValue("hcDay");
hcHour = (byte)dr.GetValue("hcHour"), rh.hcHour = (byte)dr.GetValue("hcHour");
hcMin = (byte)dr.GetValue("hcMin"), rh.hcMin = (byte)dr.GetValue("hcMin");
hcSec = (byte)dr.GetValue("hcSec"), rh.hcSec = (byte)dr.GetValue("hcSec");
hcHund = (byte)dr.GetValue("hcHund") rh.hcHund = (byte)dr.GetValue("hcHund");
};
if (loadChildren) if (loadChildren)
{ {
@@ -1763,16 +1763,15 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.rodbi ConvertToRodbiObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren) private ROFSTLookup.rodbi ConvertToRodbiObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
{ {
ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi();
{
dbiID = (int)dr.GetValue("dbiID"), rd.dbiID = (int)dr.GetValue("dbiID");
dbiType = (int)dr.GetValue("dbiType"), rd.dbiType = (int)dr.GetValue("dbiType");
dbiAW = (int)dr.GetValue("dbiAW"), rd.dbiAW = (int)dr.GetValue("dbiAW");
dbiAP = (string)dr.GetValue("dbiAP"), rd.dbiAP = (string)dr.GetValue("dbiAP");
dbiTitle = (string)dr.GetValue("dbiTitle"), rd.dbiTitle = (string)dr.GetValue("dbiTitle");
ID = (int)dr.GetValue("ID"), rd.ID = (int)dr.GetValue("ID");
ParentID = (int)dr.GetValue("ParentID") rd.ParentID = (int)dr.GetValue("ParentID");
};
if (loadChildren || loadAllChildren) if (loadChildren || loadAllChildren)
{ {
@@ -1784,14 +1783,13 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.rochild ConvertToRochildObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren) private ROFSTLookup.rochild ConvertToRochildObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
{ {
ROFSTLookup.rochild rc = new ROFSTLookup.rochild ROFSTLookup.rochild rc = new ROFSTLookup.rochild();
{
ID = (int)dr.GetValue("ID"), rc.ID = (int)dr.GetValue("ID");
ParentID = (int)dr.GetValue("ParentID"), rc.ParentID = (int)dr.GetValue("ParentID");
type = (int)dr.GetValue("type"), rc.type = (int)dr.GetValue("type");
title = (string)dr.GetValue("title"), rc.title = (string)dr.GetValue("title");
roid = (string)dr.GetValue("roid") rc.roid = (string)dr.GetValue("roid");
};
if (!string.IsNullOrEmpty((string)dr.GetValue("appid"))) if (!string.IsNullOrEmpty((string)dr.GetValue("appid")))
{ {
@@ -1813,12 +1811,11 @@ namespace VEPROMS.CSLA.Library
private ROFSTLookup.RoExtension ConvertToRoExtensionObject(SafeDataReader dr) private ROFSTLookup.RoExtension ConvertToRoExtensionObject(SafeDataReader dr)
{ {
ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension();
{
Offset = (int)dr.GetValue("Offset"), re.Offset = (int)dr.GetValue("Offset");
RoidExt = (string)dr.GetValue("RoidExt"), re.RoidExt = (string)dr.GetValue("RoidExt");
AccPageExt = (string)dr.GetValue("AccPageExt") re.AccPageExt = (string)dr.GetValue("AccPageExt");
};
return re; return re;
} }
@@ -1878,6 +1875,7 @@ namespace VEPROMS.CSLA.Library
// Instead of returning the RoChildBase object with a single RoReturnVal object attached, just return the single Ro ReturnValue object. // Instead of returning the RoChildBase object with a single RoReturnVal object attached, just return the single Ro ReturnValue object.
var roRetVal = child.children.First(); var roRetVal = child.children.First();
//child.title = roRetVal.title;
child.appid = roRetVal.appid; child.appid = roRetVal.appid;
child.roid = roRetVal.roid; child.roid = roRetVal.roid;
child.value = roRetVal.value; child.value = roRetVal.value;
@@ -2131,68 +2129,41 @@ namespace VEPROMS.CSLA.Library
return ProcessRO(match, multiRtnVal); return ProcessRO(match, multiRtnVal);
} }
private string ProcessMacros(string str)
{
// Takes the RO text value and sees if a macro has been used. // Takes the RO text value and sees if a macro has been used.
// If so it will perform the macro operation on the substring in the text value // If so it will perform the macro operation on the substring in the text value
// Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space // Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space
private static string ProcessMacros(string str)
{
if (string.IsNullOrEmpty(str) || str.ToUpper().IndexOf("@HSP(") < 0) if (string.IsNullOrEmpty(str))
return str; return str;
string rtnstr = str;
int indx;
string processingstr = str; //holds current string being processed while ((indx = rtnstr.ToUpper().IndexOf("@HSP(")) > -1)
int indx; //current position of @HSP( in string {
int endpos = 0; //end of last parens string resstr = rtnstr.Substring(0, indx);
int endHsp = rtnstr.IndexOf(")", indx);
StringBuilder sb = new StringBuilder(); //B2026 - 002 handle if parens inside a HSP
Stack<char> endparens = new Stack<char>(); int startpos = indx + 5;
while (rtnstr.Substring(startpos, endHsp - startpos).Contains("("))
while ((indx = processingstr.ToUpper().IndexOf("@HSP(")) > -1)
{ {
sb.Append(processingstr.Substring(0, indx)); // initial string before @HSP( startpos = rtnstr.IndexOf("(", startpos + 1, endHsp - startpos) + 1;
endHsp = rtnstr.IndexOf(")", endHsp + 1);
for (int i = indx + 5; i < processingstr.Length; i++)
{
char ch = processingstr[i];
if (ch == '(')
{
//if opening paren inside HSP add it to the stack to look for a closing parens
endparens.Push(ch);
}
else if (ch == ')' && endparens.Count > 0)
{
//if cloing parens and it matches an opening parens inside of HSP, remove a level
_ = endparens.Pop();
}
else if (ch == ')' && endparens.Count == 0)
{
//if closing parens and at same level as HSP, break out since found correct closing parens
endpos = i;
break;
}
else if (i == processingstr.Length - 1)
{
//if hit the end of the string and no matching closing parens found, take to the end of the string
endpos = processingstr.Length;
}
} }
//Add the text inside the @HSP(...) string tmpstr = rtnstr.Substring(indx + 5, endHsp - indx - 5);
string tmpstr = processingstr.Substring(indx + 5, endpos - indx - 5);
// B2017-012 Don't convert space to hard spaces for XY Plots. // B2017-012 Don't convert space to hard spaces for XY Plots.
if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?"); if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?");
sb.Append(tmpstr);
//Set the processing string to after the ending parens found in case multiple @HSP resstr = resstr + tmpstr;
processingstr = endpos + 1 >= processingstr.Length ? "" : processingstr.Substring(endpos + 1); rtnstr = resstr + rtnstr.Substring(endHsp + 1);
} }
//add text after last end parens return rtnstr;
sb.Append(processingstr);
return sb.ToString();
} }
private int StringLength(byte[] ab, int offset) private int StringLength(byte[] ab, int offset)
@@ -2304,7 +2275,7 @@ namespace VEPROMS.CSLA.Library
{ {
rc.roid = FormatRoidKey(roid).Substring(0, 12); rc.roid = FormatRoidKey(roid).Substring(0, 12);
DocVersionConfig dvc = _myDocVersionInfo?.DocVersionConfig; DocVersionConfig dvc = (_myDocVersionInfo != null) ? _myDocVersionInfo.DocVersionConfig : null;
if (dvc != null) dvc.SelectedSlave = this.SelectedSlave; if (dvc != null) dvc.SelectedSlave = this.SelectedSlave;
switch (rc.roid) switch (rc.roid)
@@ -2312,49 +2283,49 @@ namespace VEPROMS.CSLA.Library
case "FFFF00000001": case "FFFF00000001":
rc.title = "Number"; rc.title = "Number";
rc.appid = "U-NUMBER"; rc.appid = "U-NUMBER";
rc.value = dvc?.Unit_Number; rc.value = (dvc != null) ? dvc.Unit_Number : null;
break; break;
case "FFFF00000002": case "FFFF00000002":
rc.title = "Other Number"; rc.title = "Other Number";
rc.appid = "U-OTHERNUMBER"; rc.appid = "U-OTHERNUMBER";
rc.value = dvc?.Other_Unit_Number; rc.value = (dvc != null) ? dvc.Other_Unit_Number : null;
break; break;
case "FFFF00000003": case "FFFF00000003":
rc.title = "Text"; rc.title = "Text";
rc.appid = "U-TEXT"; rc.appid = "U-TEXT";
rc.value = dvc?.Unit_Text; rc.value = (dvc != null) ? dvc.Unit_Text : null;
break; break;
case "FFFF00000004": case "FFFF00000004":
rc.title = "Other Text"; rc.title = "Other Text";
rc.appid = "U-OTHERTEXT"; rc.appid = "U-OTHERTEXT";
rc.value = dvc?.Other_Unit_Text; rc.value = (dvc != null) ? dvc.Other_Unit_Text : null;
break; break;
case "FFFF00000005": case "FFFF00000005":
rc.title = "ID"; rc.title = "ID";
rc.appid = "U-ID"; rc.appid = "U-ID";
rc.value = dvc?.Unit_ID; rc.value = (dvc != null) ? dvc.Unit_ID : null;
break; break;
case "FFFF00000006": case "FFFF00000006":
rc.title = "Other ID"; rc.title = "Other ID";
rc.appid = "U-OTHERID"; rc.appid = "U-OTHERID";
rc.value = dvc?.Other_Unit_ID; rc.value = (dvc != null) ? dvc.Other_Unit_ID : null;
break; break;
case "FFFF00000007": case "FFFF00000007":
rc.title = "Name"; rc.title = "Name";
rc.appid = "U-NAME"; rc.appid = "U-NAME";
rc.value = dvc?.Unit_Name; rc.value = (dvc != null) ? dvc.Unit_Name : null;
break; break;
case "FFFF00000008": case "FFFF00000008":
rc.title = "Other Name"; rc.title = "Other Name";
rc.appid = "U-OTHERNAME"; rc.appid = "U-OTHERNAME";
rc.value = dvc?.Other_Unit_Name; rc.value = (dvc != null) ? dvc.Other_Unit_Name : null;
break; break;
} }
+4 -17
View File
@@ -2,12 +2,13 @@ using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using VEPROMS.CSLA.Library; using VEPROMS.CSLA.Library;
using Volian.Base.Library; using Volian.Base.Library;
@@ -91,10 +92,6 @@ namespace Volian.Controls.Library
//This flag will be set when the docversion gets updated to let it know that the full tree needs a refresh //This flag will be set when the docversion gets updated to let it know that the full tree needs a refresh
private bool changedDocVersion = false; private bool changedDocVersion = false;
//B2026-057 PROMS Crash when Closing Tabs
// this flag will prevent multiple asking in a row if should updste ROs
private static bool askedAboutchangedDocVersion = false;
public ROFstInfo MyROFST public ROFstInfo MyROFST
{ {
get { return _myROFST; } get { return _myROFST; }
@@ -138,7 +135,6 @@ namespace Volian.Controls.Library
if (_docVersionInfo?.VersionID != value?.VersionID) if (_docVersionInfo?.VersionID != value?.VersionID)
{ {
changedDocVersion = true; changedDocVersion = true;
askedAboutchangedDocVersion = false;
} }
_docVersionInfo = value; _docVersionInfo = value;
@@ -652,10 +648,9 @@ namespace Volian.Controls.Library
{ {
//do nothing - is still checked out //do nothing - is still checked out
} }
else if (changedDocVersion && !askedAboutchangedDocVersion) else if (changedDocVersion && MessageBox.Show($"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
if (MessageBox.Show($"There exists a newer ROFST for this RO database that was loaded for other sets.\r\n\r\nDo you want to update this set's ROs to be consistent/use the latest loaded ROFST?", "Load ROs", MessageBoxButtons.YesNo) == DialogResult.Yes)
{ {
InitialProgressBarMessage = "Updating ROs"; InitialProgressBarMessage = "Updating ROs";
ROFstInfo roFstInfo = ROFstInfo.Get(fstid); ROFstInfo roFstInfo = ROFstInfo.Get(fstid);
@@ -669,14 +664,6 @@ namespace Volian.Controls.Library
MyROFST = roFstInfo; MyROFST = roFstInfo;
updatedROs = true; updatedROs = true;
askedAboutchangedDocVersion = false;
}
else
{
askedAboutchangedDocVersion = true;
}
} }
} }
+254 -224
View File
@@ -15,8 +15,6 @@ using System.Linq;
namespace Volian.Controls.Library namespace Volian.Controls.Library
{ {
#pragma warning disable IDE1006 // Naming Styles
#pragma warning disable IDE0044 // Add readonly modifier
public partial class DisplaySearch : UserControl public partial class DisplaySearch : UserControl
{ {
#region Public Events/Handlers #region Public Events/Handlers
@@ -26,12 +24,14 @@ namespace Volian.Controls.Library
private void OnPrintRequest(DisplaySearchEventArgs args) private void OnPrintRequest(DisplaySearchEventArgs args)
{ {
PrintRequest?.Invoke(this, args); if (PrintRequest != null)
PrintRequest(this, args);
} }
private void OnSearchComplete(DisplaySearchEventArgs args) private void OnSearchComplete(DisplaySearchEventArgs args)
{ {
SearchComplete?.Invoke(this, args); if (SearchComplete != null)
SearchComplete(this, args);
} }
#endregion #endregion
@@ -218,10 +218,8 @@ namespace Volian.Controls.Library
{ {
if (_TmrRefresh == null) if (_TmrRefresh == null)
{ {
_TmrRefresh = new Timer _TmrRefresh = new Timer();
{ _TmrRefresh.Interval = 1000;
Interval = 1000
};
_TmrRefresh.Tick += _TmrRefresh_Tick; _TmrRefresh.Tick += _TmrRefresh_Tick;
} }
return _TmrRefresh; return _TmrRefresh;
@@ -326,6 +324,7 @@ namespace Volian.Controls.Library
{ {
if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2])
{ // RO Search { // RO Search
ROFSTLookup.rochild[] chld = null;
ROFSTLookup.rochild ch; ROFSTLookup.rochild ch;
if (cmboTreeROs.SelectedNode != null) if (cmboTreeROs.SelectedNode != null)
{ {
@@ -337,16 +336,18 @@ namespace Volian.Controls.Library
} }
else else
{ {
if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi db) if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi)
{ {
return $"{_MyRODbID.ToString()}:{string.Format("{0}", db.dbiID.ToString("X4"))}"; ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)cmboTreeROs.SelectedNode.Tag;
return _MyRODbID.ToString() + ":" + string.Format("{0}", db.dbiID.ToString("X4"));
} }
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild roch) else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
{ {
ROFSTLookup.rochild[] chld = roch.children; ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
chld = ch.children;
// build a list of ROs to search // build a list of ROs to search
// B2022-118: remove the ending comma otherwise query will fail // B2022-118: remove the ending comma otherwise query will fail
string strRtnStr = $"{_MyRODbID.ToString()}:{GetROsToSearch(chld)}"; string strRtnStr = _MyRODbID.ToString() + ":" + GetROsToSearch(chld);
if (strRtnStr.EndsWith(",")) if (strRtnStr.EndsWith(","))
strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1); strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1);
return strRtnStr; return strRtnStr;
@@ -390,6 +391,7 @@ namespace Volian.Controls.Library
cmbResultsStyle.Enabled = false; cmbResultsStyle.Enabled = false;
tabSearchTypes.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(tabSearchTypes_SelectedTabChanged); tabSearchTypes.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(tabSearchTypes_SelectedTabChanged);
// Don't do this here. If you do then the /DB parameter has not yet been set, which will cause the database menu to be displayed // Don't do this here. If you do then the /DB parameter has not yet been set, which will cause the database menu to be displayed
//SetupContextMenu(); // so that the symbol list is available without selecting a procedure set or procedure
} }
#endregion #endregion
@@ -445,6 +447,20 @@ namespace Volian.Controls.Library
} }
btnSearch.Enabled = (cbxTranCategory.Items.Count > 0); // B2017-038 disable search button if no format selected btnSearch.Enabled = (cbxTranCategory.Items.Count > 0); // B2017-038 disable search button if no format selected
//enable-disable doc version nodes based on version type if selected //enable-disable doc version nodes based on version type if selected
if (cbxTranVersion.SelectedIndex > -1)
{
if (dicExpandedFolderNodes.Count > 0)
{
foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
{
DocVersionInfo dvi = (DocVersionInfo)n.Tag;
if (cbxTranVersion.Tag.ToString().Contains(dvi.VersionID.ToString()))
n.Enabled = true;
else
n.Enabled = false;
}
}
}
//setup transition format versions //setup transition format versions
this.Cursor = Cursors.WaitCursor; this.Cursor = Cursors.WaitCursor;
if (myFormatVersionList == null) if (myFormatVersionList == null)
@@ -452,22 +468,15 @@ namespace Volian.Controls.Library
this.Refresh(); this.Refresh();
myFormatVersionList = FormatVersionList.GetFormatVersions(); myFormatVersionList = FormatVersionList.GetFormatVersions();
cbxTranVersion.DisplayMember = "Title"; cbxTranVersion.DisplayMember = "Title";
int lastLastFormatID = 0;
List<FormatVersion> fvlst = myFormatVersionList.GroupBy(x => x.FormatID).Select(group => new foreach (FormatVersion fv in myFormatVersionList)
FormatVersion(title: group.Max(x => x.Title), {
formatID: group.Key, if (fv.FormatID != lastLastFormatID)
versionID: group.Max(x => x.VersionID)
)).OrderBy(y => y.Title).ToList();
//B2026-055 Transition Search Improvements
//Added an All option to allow resetting of the enabling/disabling tree options
cbxTranVersion.Items.Add(new FormatVersion("All", -1, -1));
foreach (FormatVersion fv in fvlst)
{ {
cbxTranVersion.Items.Add(fv); cbxTranVersion.Items.Add(fv);
lastLastFormatID = fv.FormatID;
}
} }
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged); cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged); cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged); cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
@@ -492,6 +501,32 @@ namespace Volian.Controls.Library
public void cbxTranFormat_SelectedIndexChanged(object sender, EventArgs e) public void cbxTranFormat_SelectedIndexChanged(object sender, EventArgs e)
{ {
#region 1st cut
//if (cbxTranFormat.SelectedItem.ToString() == "All")
//{
// cbxTranCategory.Items.Clear();
// cbxTranCategory.Items.Add("All");
// cbxTranCategory.Items.Add("Internal");
// cbxTranCategory.Items.Add("External");
// cbxTranCategory.Items.Add("Outside");
// cbxTranCategory.SelectedIndex = 0;
//}
//else if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
//{
// cbxTranCategory.Items.Clear();
// cbxTranCategory.Items.Add("All");
// cbxTranCategory.Items.Add("External");
// cbxTranCategory.Items.Add("Outside");
// cbxTranCategory.SelectedIndex = 0;
//}
//else
//{
// cbxTranCategory.Items.Clear();
// cbxTranCategory.Items.Add("Internal");
// cbxTranCategory.SelectedIndex = 0;
//}
#endregion
#region 2nd cut #region 2nd cut
if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc")) if (cbxTranFormat.SelectedItem.ToString().Contains("{Proc"))
{ {
@@ -521,21 +556,41 @@ namespace Volian.Controls.Library
string versionList = string.Empty; string versionList = string.Empty;
string sep = string.Empty; string sep = string.Empty;
FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion; FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion;
foreach (FormatVersion fv in myFormatVersionList)
versionList = string.Join(",", myFormatVersionList.Where(x => x.FormatID == sfv?.FormatID).Select(y => y.VersionID)); {
if (fv.FormatID == sfv.FormatID)
{
versionList += sep + fv.VersionID;
sep = ",";
}
}
cbxTranVersion.Tag = versionList; cbxTranVersion.Tag = versionList;
cbxTranFormatFillIn(versionList); cbxTranFormatFillIn(versionList);
if (dicExpandedFolderNodes.Count > 0)
List<DevComponents.AdvTree.Node> uncheckNodes = new List<DevComponents.AdvTree.Node>();
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
{ {
FolderInfo fi = n.Tag as FolderInfo; // this was crashing in old version of code foreach (DevComponents.AdvTree.Node n in dicExpandedFolderNodes.Keys)
{
FolderInfo fi = (FolderInfo)n.Tag;
// if this folder has a docversion, use its id: // if this folder has a docversion, use its id:
string svid = null; string svid = null;
if (fi?.FolderDocVersionCount > 0) if (fi.FolderDocVersionCount > 0)
svid = fi.FolderDocVersions[0].VersionID.ToString(); svid = fi.FolderDocVersions[0].VersionID.ToString();
if (svid != null && !string.IsNullOrEmpty(versionList) && !versionList.Split(',').Contains(svid)) if (cbxTranVersion.Tag.ToString().Contains(svid))
n.Enabled = true;
else
n.Enabled = false;
}
}
List<DevComponents.AdvTree.Node> uncheckNodes = new List<Node>();
foreach (DevComponents.AdvTree.Node n in dicSelectedFolderNodes.Keys)
{
FolderInfo fi = (FolderInfo)n.Tag; // this was crashing in old version of code
// if this folder has a docversion, use its id:
string svid = null;
if (fi.FolderDocVersionCount > 0)
svid = fi.FolderDocVersions[0].VersionID.ToString();
if (svid != null && !versionList.Contains(svid))
uncheckNodes.Add(n); uncheckNodes.Add(n);
else else
n.Enabled = true; n.Enabled = true;
@@ -561,17 +616,13 @@ namespace Volian.Controls.Library
dicSelectedFolderNodes.Clear(); dicSelectedFolderNodes.Clear();
} }
} }
//B2026-055 Transition Search Improvements
//Update Enabling/Disabling of Tree Elements
TraverseTree(advTreeProcSets.Nodes[0], cbxTranVersion.Tag?.ToString().Split(','));
this.Cursor = Cursors.Default; this.Cursor = Cursors.Default;
} }
// C2020-033: Update the search panel for Incoming transitions. This gets called from the tree view & the ribbon // C2020-033: Update the search panel for Incoming transitions. This gets called from the tree view & the ribbon
public void UpdateSearchIncTransResults() public void UpdateSearchIncTransResults()
{ {
//IncTransSelectedCount = 0;
tabSearchTypes.SelectedTab = tabSearchTypes.Tabs[4]; tabSearchTypes.SelectedTab = tabSearchTypes.Tabs[4];
lbSrchResultsIncTrans.DataSource = null; lbSrchResultsIncTrans.DataSource = null;
@@ -648,6 +699,13 @@ namespace Volian.Controls.Library
DevComponents.AdvTree.Node newnode; DevComponents.AdvTree.Node newnode;
advTreeStepTypes.Nodes.Clear(); advTreeStepTypes.Nodes.Clear();
// Add a dummy node for searching Word Sections (MS Word sections) // Add a dummy node for searching Word Sections (MS Word sections)
//newnode = new DevComponents.AdvTree.Node();
//newnode.Text = "Word Sections";
//newnode.Selectable = true;
//newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
//newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
//newnode.CheckBoxThreeState = false;
//newnode.CheckBoxVisible = true;
newnode = NewAdvTreeNode("WORD Sections", true, true); // C2020-010: Change Accessory Sections to Word Sections newnode = NewAdvTreeNode("WORD Sections", true, true); // C2020-010: Change Accessory Sections to Word Sections
wordSectionTreeNode = newnode; wordSectionTreeNode = newnode;
// C2021-028: RNO Only search, disable Word section tree node // C2021-028: RNO Only search, disable Word section tree node
@@ -665,6 +723,16 @@ namespace Volian.Controls.Library
StepData sd = sdl[sdr.Index]; // get the step type record StepData sd = sdl[sdr.Index]; // get the step type record
string parentName = sd.ParentType; // this gets the parent of the this step/substep type string parentName = sd.ParentType; // this gets the parent of the this step/substep type
//Console.WriteLine("{0} {1} - {2}", parentName,sd.Type,sdr.Name);
//newnode = new DevComponents.AdvTree.Node();
//newnode.Text = sdr.Name;
//newnode.Name = sd.Type; // this needed for the FindNodeByName() function
//newnode.Tag = sd;
//newnode.Selectable = true;
//newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter;
//newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox;
//newnode.CheckBoxThreeState = false;
//newnode.CheckBoxVisible = true;
if (parentName.Equals("Base")) if (parentName.Equals("Base"))
{ {
newnode = NewAdvTreeNode(sdr.Name, true, true); newnode = NewAdvTreeNode(sdr.Name, true, true);
@@ -758,7 +826,8 @@ namespace Volian.Controls.Library
//C2023-010: Select all child nodes when a subtype is selected //C2023-010: Select all child nodes when a subtype is selected
private void pnode_selected(object sender, EventArgs e) private void pnode_selected(object sender, EventArgs e)
{ {
if (sender is DevComponents.AdvTree.Node pnode && pnode.HasChildNodes) DevComponents.AdvTree.Node pnode = sender as DevComponents.AdvTree.Node;
if (pnode != null && pnode.HasChildNodes)
{ {
CheckTreeNodeChildren(pnode.Nodes); CheckTreeNodeChildren(pnode.Nodes);
} }
@@ -773,21 +842,18 @@ namespace Volian.Controls.Library
int fiCount = fi.ChildFolderCount; int fiCount = fi.ChildFolderCount;
advTreeProcSets.Nodes.Clear(); advTreeProcSets.Nodes.Clear();
lstCheckedDocVersions.Clear(); lstCheckedDocVersions.Clear();
topnode = new DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node();
{ topnode.Text = "Available Procedure Sets";
Text = "Available Procedure Sets", topnode.Tag = fi;
Tag = fi, topnode.DataKey = fi.FolderID;
DataKey = fi.FolderID
};
advTreeProcSets.Nodes.Add(topnode); advTreeProcSets.Nodes.Add(topnode);
//advTreeProcSets.AfterNodeInsert += new TreeNodeCollectionEventHandler(advTreeProcSets_AfterNodeInsert);
//B2023-076: Adding option to select all procedure sets //B2023-076: Adding option to select all procedure sets
DevComponents.AdvTree.Node selectAllNode = new Node DevComponents.AdvTree.Node selectAllNode = new Node();
{ selectAllNode.Text = SelectAllProcedureSetsText;
Text = SelectAllProcedureSetsText, selectAllNode.Tag = SelectAllProcedureSetsText;
Tag = SelectAllProcedureSetsText, selectAllNode.CheckBoxVisible = true;
CheckBoxVisible = true
};
selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked); selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked);
topnode.Nodes.Add(selectAllNode); topnode.Nodes.Add(selectAllNode);
@@ -795,22 +861,18 @@ namespace Volian.Controls.Library
{ {
foreach (FolderInfo fic in fi.SortedChildFolders) foreach (FolderInfo fic in fi.SortedChildFolders)
{ {
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
{ newnode.Text = fic.ToString();
Text = fic.ToString(), newnode.Tag = fic;
Tag = fic, newnode.DataKey = fi.FolderID;
DataKey = fi.FolderID
};
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
cntnd++; cntnd++;
if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion
{ {
if (fic.ChildFolderCount > 0) // B2017-176: Do not display the Working Draft node (don't create dummy for expander) if (fic.ChildFolderCount > 0) // B2017-176: Do not display the Working Draft node (don't create dummy for expander)
{ {
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
{ tnt.Text = DummyNodeText;
Text = DummyNodeText
};
newnode.Nodes.Add(tnt); newnode.Nodes.Add(tnt);
} }
topnode.Nodes.Add(newnode); topnode.Nodes.Add(newnode);
@@ -819,12 +881,10 @@ namespace Volian.Controls.Library
} }
else else
{ {
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
{ newnode.Text = fi.ToString();
Text = fi.ToString(), newnode.Tag = fi;
Tag = fi, newnode.DataKey = fi.FolderID;
DataKey = fi.FolderID
};
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
topnode.Nodes.Add(newnode); topnode.Nodes.Add(newnode);
lstCheckedDocVersions.Add(Mydocversion); lstCheckedDocVersions.Add(Mydocversion);
@@ -835,10 +895,8 @@ namespace Volian.Controls.Library
{ {
cntnd++; cntnd++;
fi = Mydocversion.MyFolder; fi = Mydocversion.MyFolder;
topnode = new DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node();
{ topnode.Text = fi.ToString();
Text = fi.ToString()
};
advTreeProcSets.Nodes.Add(topnode); advTreeProcSets.Nodes.Add(topnode);
topnode.Tag = fi; topnode.Tag = fi;
topnode.DataKey = fi.FolderID; topnode.DataKey = fi.FolderID;
@@ -873,35 +931,30 @@ namespace Volian.Controls.Library
{ {
foreach (FolderInfo fic in fi.SortedChildFolders) foreach (FolderInfo fic in fi.SortedChildFolders)
{ {
DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
{ newnode.Text = fic.ToString();
Text = fic.ToString(), newnode.Tag = fic;
Tag = fic, newnode.DataKey = fic.FolderID;
DataKey = fic.FolderID
};
par.Nodes.Add(newnode); par.Nodes.Add(newnode);
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected. AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
newnode.Enabled = true; newnode.Enabled = true;
if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes) if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes)
{ {
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
{ tnt.Text = DummyNodeText;
Text = DummyNodeText
};
newnode.Nodes.Add(tnt); newnode.Nodes.Add(tnt);
// B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code // B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code
// that would check if this should be enabled if seraching for transition types. The transition controls // that would check if this should be enabled if seraching for transition types. The transition controls
// had a list of associated docversions, so needed to get the docversion in the folder: // had a list of associated docversions, so needed to get the docversion in the folder:
if (tabSearchTypes.SelectedTab == tabTranSearch && !dicSelectedFolderNodes.ContainsKey(newnode))
dicSelectedFolderNodes.Add(newnode, false);
}
if (tabSearchTypes.SelectedTab == tabTranSearch) if (tabSearchTypes.SelectedTab == tabTranSearch)
{ {
//B2026-055 Transition Search Improvements if (!dicSelectedFolderNodes.ContainsKey(newnode)) dicSelectedFolderNodes.Add(newnode, false);
//Update Enabling/Disabling of Tree Elements // get the docversion for this folder, if it has one and determine whether it is enabled for transitions:
TraverseTree(advTreeProcSets.Nodes[0], cbxTranVersion.Tag?.ToString().Split(',')); string svid = null;
if (fic.FolderDocVersionCount > 0)
svid = fic.FolderDocVersions[0].VersionID.ToString();
newnode.Enabled = svid != null && cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(svid) : false;
}
} }
} }
} }
@@ -911,10 +964,10 @@ namespace Volian.Controls.Library
public void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e) public void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
{ {
Node bottomNode = BottomTreeNode(cmboTreeROs.AdvTree.Nodes); Node bottomNode = BottomTreeNode(cmboTreeROs.AdvTree.Nodes);
_ = cmboTreeROs.AdvTree.Nodes[cmboTreeROs.AdvTree.Nodes.Count - 1]; //LastNode Node lastNode = cmboTreeROs.AdvTree.Nodes[cmboTreeROs.AdvTree.Nodes.Count - 1];
int top = cmboTreeROs.AdvTree.Nodes[0].Bounds.Top; int top = cmboTreeROs.AdvTree.Nodes[0].Bounds.Top;
int bottom; int bottom = bottomNode.Bounds.Bottom + 5;
int hScrollBarHeight = cmboTreeROs.AdvTree.HScrollBar != null ? cmboTreeROs.AdvTree.HScrollBar.Height : 0; int hScrollBarHeight = cmboTreeROs.AdvTree.HScrollBar != null ? cmboTreeROs.AdvTree.HScrollBar.Height : 0;
bottom = bottomNode.Bounds.Bottom + 5; bottom = bottomNode.Bounds.Bottom + 5;
cmboTreeROs.AdvTree.Size = new Size(cmboTreeROs.AdvTree.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight)); cmboTreeROs.AdvTree.Size = new Size(cmboTreeROs.AdvTree.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight));
@@ -923,7 +976,10 @@ namespace Volian.Controls.Library
{ {
int yLookFor = (bottom - cmboTreeROs.AdvTree.Size.Height) + 2 * hScrollBarHeight; int yLookFor = (bottom - cmboTreeROs.AdvTree.Size.Height) + 2 * hScrollBarHeight;
Node topNode = FindTreeNodeAt(cmboTreeROs.AdvTree.Nodes, yLookFor); Node topNode = FindTreeNodeAt(cmboTreeROs.AdvTree.Nodes, yLookFor);
topNode?.EnsureVisible(); if (topNode != null)
{
topNode.EnsureVisible();
}
} }
} }
@@ -934,10 +990,8 @@ namespace Volian.Controls.Library
public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc) public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc)
{ {
_AnnotationDetails = annotationDetails; _AnnotationDetails = annotationDetails;
List<AnnotationTypeSearch> annoTypes = new List<AnnotationTypeSearch> List<AnnotationTypeSearch> annoTypes = new List<AnnotationTypeSearch>();
{ annoTypes.Add(new AnnotationTypeSearch("All Annotations", string.Empty));
new AnnotationTypeSearch("All Annotations", string.Empty)
};
AnnotationTypeInfoList annoList = AnnotationTypeInfoList.Get(); AnnotationTypeInfoList annoList = AnnotationTypeInfoList.Get();
foreach (AnnotationTypeInfo ati in annoList) foreach (AnnotationTypeInfo ati in annoList)
annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString())); annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString()));
@@ -1004,15 +1058,14 @@ namespace Volian.Controls.Library
foreach (Symbol sym in sl) foreach (Symbol sym in sl)
{ {
DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem();
{
Text = string.Format("{0}", (char)sym.Unicode), btnCM.Text = string.Format("{0}", (char)sym.Unicode);
// to name button use unicode rather than desc, desc may have spaces or odd chars // to name button use unicode rather than desc, desc may have spaces or odd chars
Name = $"btnCM{sym.Unicode.ToString()}", btnCM.Name = "btnCM" + sym.Unicode.ToString();
Tooltip = sym.Desc, btnCM.Tooltip = sym.Desc;
Tag = string.Format(@"{0}", sym.Unicode), btnCM.Tag = string.Format(@"{0}", sym.Unicode);
FontBold = true btnCM.FontBold = true;
};
btnCM.Click += new System.EventHandler(btnSym_Click); btnCM.Click += new System.EventHandler(btnSym_Click);
galSymbols.SubItems.Add(btnCM); galSymbols.SubItems.Add(btnCM);
} }
@@ -1061,11 +1114,9 @@ namespace Volian.Controls.Library
private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable) private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable)
{ {
DevComponents.AdvTree.Node newnode; DevComponents.AdvTree.Node newnode;
newnode = new DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node();
{ newnode.Text = nodetext;
Text = nodetext, newnode.Selectable = selectable;
Selectable = selectable
};
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected. AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
return newnode; return newnode;
} }
@@ -1112,7 +1163,7 @@ namespace Volian.Controls.Library
// folder properties dialog // folder properties dialog
bool allowNonAdmin = IncTranCvtPerm(); bool allowNonAdmin = IncTranCvtPerm();
List<int> itmsEditable = new List<int>(); // return this list List<int> itmsEditable = new List<int>(); // return this list
int listCount; int listCount = 0;
if (all) // Check all in list if (all) // Check all in list
{ {
listCount = _SearchResults.Count; listCount = _SearchResults.Count;
@@ -1136,13 +1187,14 @@ namespace Volian.Controls.Library
// not all can be converted to text. If count of itmsEditable & lbis are different some cannot be edited. // not all can be converted to text. If count of itmsEditable & lbis are different some cannot be edited.
if (itmsEditable.Count == 0) if (itmsEditable.Count == 0)
{ {
FlexibleMessageBox.Show($"You do not have permission to edit any of the procedures, sections, and/or steps{(all ? "." : " that are selected.")}", FlexibleMessageBox.Show("You do not have permission to edit any of the procedures, sections, and/or steps" + (all ? "." : " that are selected."),
"Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information); "Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information);
return null; return null;
} }
else if (itmsEditable.Count != listCount) else if (itmsEditable.Count != listCount)
{ {
DialogResult ans = FlexibleMessageBox.Show($"You only have permission to edit some of the procedures, sections, and/or steps that are selected.procedures, sections, and/or steps{(all ? "." : " that are selected.")}\r\n\r\n Should the conversion of the transitions to text continue?", DialogResult ans = FlexibleMessageBox.Show("You only have permission to edit some of the procedures, sections, and/or steps that are selected.procedures, sections, and/or steps" + (all ? "." : " that are selected.") +
"\r\n\r\n Should the conversion of the transitions to text continue?",
"Convert Transition to Text", MessageBoxButtons.YesNo, MessageBoxIcon.Question); "Convert Transition to Text", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (ans == DialogResult.No) return null; if (ans == DialogResult.No) return null;
} }
@@ -1163,7 +1215,7 @@ namespace Volian.Controls.Library
private void btnTranCvtSelToTxt_Click(object sender, EventArgs e) private void btnTranCvtSelToTxt_Click(object sender, EventArgs e)
{ {
// First see if all selected can be converted, i.e. user has permission to edit // First see if all selected can be converted, i.e. user has permission to edit
_ = lbSrchResultsIncTrans.CheckedItems; List<ListBoxItem> lbis = lbSrchResultsIncTrans.CheckedItems;
List<int> itmsEditable = TranCvtCheckPermission(false); List<int> itmsEditable = TranCvtCheckPermission(false);
if (itmsEditable == null || itmsEditable.Count == 0) return; if (itmsEditable == null || itmsEditable.Count == 0) return;
TranCvtToTxt(itmsEditable); TranCvtToTxt(itmsEditable);
@@ -1396,10 +1448,8 @@ namespace Volian.Controls.Library
{ {
ROFSTLookup.rodbi db = dbs[i]; ROFSTLookup.rodbi db = dbs[i];
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(db.dbiTitle) DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(db.dbiTitle);
{ tn.Tag = db;
Tag = db
};
cmboTreeROs.Nodes.Add(tn); cmboTreeROs.Nodes.Add(tn);
AddDummyGroup(db, tn); AddDummyGroup(db, tn);
@@ -1452,14 +1502,17 @@ namespace Volian.Controls.Library
if (tn.HasChildNodes && tn.Nodes[0].Text != DummyNodeText) return; // already loaded. if (tn.HasChildNodes && tn.Nodes[0].Text != DummyNodeText) return; // already loaded.
if (tn.HasChildNodes && tn.Nodes[0].Text == DummyNodeText) tn.Nodes[0].Remove(); if (tn.HasChildNodes && tn.Nodes[0].Text == DummyNodeText) tn.Nodes[0].Remove();
ROFSTLookup.rochild[] chld; ROFSTLookup.rochild[] chld = null;
if (tn.Tag is ROFSTLookup.rodbi db)
if (tn.Tag is ROFSTLookup.rodbi)
{ {
ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag;
MyROFSTLookup.LoadChildren(ref db); MyROFSTLookup.LoadChildren(ref db);
chld = db.children; chld = db.children;
} }
else if (tn.Tag is ROFSTLookup.rochild ch) else if (tn.Tag is ROFSTLookup.rochild)
{ {
ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag;
MyROFSTLookup.LoadChildren(ref ch); MyROFSTLookup.LoadChildren(ref ch);
chld = ch.children; chld = ch.children;
} }
@@ -1478,6 +1531,8 @@ namespace Volian.Controls.Library
for (int i = 0; i < chld.Length; i++) for (int i = 0; i < chld.Length; i++)
{ {
ProgressBar_SetValue(i); ProgressBar_SetValue(i);
DevComponents.AdvTree.Node tmp = null;
ROFSTLookup.rochild roc = chld[i]; ROFSTLookup.rochild roc = chld[i];
// if this is a group, i.e. type 0, add a dummy node // if this is a group, i.e. type 0, add a dummy node
@@ -1501,13 +1556,10 @@ namespace Volian.Controls.Library
} }
Node tmp;
if (roc.value == null) if (roc.value == null)
{ {
tmp = new DevComponents.AdvTree.Node(roc.title) tmp = new DevComponents.AdvTree.Node(roc.title);
{ tmp.Tag = roc;
Tag = roc
};
int index = FindIndex(tn.Nodes, tmp.Text); int index = FindIndex(tn.Nodes, tmp.Text);
tn.Nodes.Insert(index, tmp); tn.Nodes.Insert(index, tmp);
@@ -1517,10 +1569,8 @@ namespace Volian.Controls.Library
} }
else else
{ {
tmp = new DevComponents.AdvTree.Node(roc.title) tmp = new DevComponents.AdvTree.Node(roc.title);
{ tmp.Tag = roc;
Tag = roc
};
if (roc.roid.Length == 16) if (roc.roid.Length == 16)
{ {
@@ -1560,8 +1610,9 @@ namespace Volian.Controls.Library
{ {
cbxFndUnLnkROVals.Enabled = false; cbxFndUnLnkROVals.Enabled = false;
} }
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild ro) else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
{ {
ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
// B2022-026 RO Memory Reduction code - check children length // B2022-026 RO Memory Reduction code - check children length
cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0); cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0);
} }
@@ -1583,7 +1634,12 @@ namespace Volian.Controls.Library
bool keeplooking = true; bool keeplooking = true;
//build a stack (bread crumb trail) of where is procedure set came from within the tree. //build a stack (bread crumb trail) of where is procedure set came from within the tree.
Stack<string> crumbs = new Stack<string>(); Stack<string> crumbs = new Stack<string>();
//crumbs.Push(Mydocversion.Name); // ex: "working draft"
//crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
//crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas"
//crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree
//crumbs.Push(Mydocversion.Name); // ex: "working draft"
crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures" crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures"
FolderInfo fi = Mydocversion.MyFolder.MyParent; FolderInfo fi = Mydocversion.MyFolder.MyParent;
while (fi != null) while (fi != null)
@@ -1768,11 +1824,13 @@ namespace Volian.Controls.Library
// item to be clicked and to turn on/off the btnTranCvtSelToTxt button for converting selected to test. // item to be clicked and to turn on/off the btnTranCvtSelToTxt button for converting selected to test.
private void lbSrchResultsIncTrans_ItemClicked(object sender, EventArgs e) private void lbSrchResultsIncTrans_ItemClicked(object sender, EventArgs e)
{ {
if (sender is ListBoxItem lbi) ListBoxItem lbi = sender as ListBoxItem;
if (lbi != null)
{ {
ItemBindingData ibd = lbi.Tag as ItemBindingData; ItemBindingData ibd = lbi.Tag as ItemBindingData;
ItemInfo ii = ibd.DataItem as ItemInfo;
bool allowNonAdmin = IncTranCvtPerm(); bool allowNonAdmin = IncTranCvtPerm();
if (lbi.CheckState == CheckState.Checked && ibd.DataItem is ItemInfo ii) if (lbi.CheckState == CheckState.Checked && ii != null)
{ {
if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion)) if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion))
{ {
@@ -1983,8 +2041,11 @@ namespace Volian.Controls.Library
bool includeSpecialChars = (TextSearchString != @"\?"); // true; bool includeSpecialChars = (TextSearchString != @"\?"); // true;
// Build list of selected types that were searched // Build list of selected types that were searched
string typstr = null; string typstr = null;
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : $"{typstr}, {s}"; foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : typstr + ", " + s;
TypesSelected = $"Filtered By: {typstr ?? "All Step Types"}"; TypesSelected = "Filtered By: " + ((typstr != null) ? typstr : "All Step Types");
//TypesSelected = "Step Types Searched: " + ((typstr != null) ? typstr : "all step types");
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "all step types");
//TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types";
string unitPrefix = string.Empty; string unitPrefix = string.Empty;
if (Mydocversion != null) if (Mydocversion != null)
unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber; unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber;
@@ -2004,8 +2065,11 @@ namespace Volian.Controls.Library
} }
else else
{ {
//string typstr = null;
//foreach (string s in lstCheckedStepTypesStr) typstr = typstr==null?s:typstr + ", " + s;
//ReportTitle = "Search for Selected Types"; //"Proms - Search by Type: " + typstr;
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr; ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
TypesSelected = $"Filtered By: {typstr}"; TypesSelected = "Filtered By: " + typstr;
SearchString = null; SearchString = null;
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results. // B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, string.Empty, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Value, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty); SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, string.Empty, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Value, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty);
@@ -2014,6 +2078,14 @@ namespace Volian.Controls.Library
} }
else else
{ {
//if (textSearchString.Equals(string.Empty))
//{
// MessageBox.Show("Please enter some search text, then click the Search button", "No Search Text");
// cbxTextSearchText.Focus();
//}
//else
//{
//ReportTitle = string.Format("Proms - {0} Search for '{1}'", cbxBooleanTxtSrch.Checked ? "Boolean" : "Text", TextSearchString);
ReportTitle = string.Format("Search for '{0}'", TextSearchString); ReportTitle = string.Format("Search for '{0}'", TextSearchString);
// C2020-009: Search - Allow search 'By Word'. // C2020-009: Search - Allow search 'By Word'.
@@ -2044,6 +2116,8 @@ namespace Volian.Controls.Library
} }
} }
SearchString = TextSearchString; SearchString = TextSearchString;
//TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types";
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results. // B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix); SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
@@ -2057,6 +2131,7 @@ namespace Volian.Controls.Library
{ {
LastSearchWasAnnotations = true; // B2019-119 only refresh annotation search results if an annotation search was done LastSearchWasAnnotations = true; // B2019-119 only refresh annotation search results if an annotation search was done
SearchString = null; SearchString = null;
//ReportTitle = string.Format("Proms - Annotation Search for '{0}'", cbxTextSearchAnnotation.Text);
if (cbxTextSearchAnnotation.Text == null || cbxTextSearchAnnotation.Text == string.Empty) if (cbxTextSearchAnnotation.Text == null || cbxTextSearchAnnotation.Text == string.Empty)
{ {
ReportTitle = string.Format("Find {0}{1}", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty); ReportTitle = string.Format("Find {0}{1}", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty);
@@ -2065,8 +2140,14 @@ namespace Volian.Controls.Library
{ {
ReportTitle = string.Format("Search {0}{1} For '{2}'", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty, cbxTextSearchAnnotation.Text); ReportTitle = string.Format("Search {0}{1} For '{2}'", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : string.Empty, cbxTextSearchAnnotation.Text);
} }
//ReportTitle = string.Format("Search Annotations for '{0}'", cbxTextSearchAnnotation.Text);
//string srchStr = ConvertSpecialChars(cbxTextSearchAnnotation.Text);//cbxTextSearchAnnotation.Text;
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
//SearchResults = ItemInfoList.GetListFromAnnotationSearch(dviSearchList, typeSearchList, textSearchString, srchStr, cbxCaseSensitiveAnnoText.Checked);
SearchResults = ItemInfoList.GetListFromAnnotationSearch(DVISearchList, TypeSearchList, AnnotationSearchType, cbxTextSearchAnnotation.Text, cbxCaseSensitiveAnnoText.Checked, unitPrefix); SearchResults = ItemInfoList.GetListFromAnnotationSearch(DVISearchList, TypeSearchList, AnnotationSearchType, cbxTextSearchAnnotation.Text, cbxCaseSensitiveAnnoText.Checked, unitPrefix);
//UpdateAnnotationSearchResults();
cmbResultsStyleIndex = 2; // display annotation text in results cmbResultsStyleIndex = 2; // display annotation text in results
// C2019-001: Search in RNO steps only // C2019-001: Search in RNO steps only
if (cbxRnoOnlyAnnot.Checked) GetInRNOResults(); if (cbxRnoOnlyAnnot.Checked) GetInRNOResults();
@@ -2074,7 +2155,9 @@ namespace Volian.Controls.Library
else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) // RO Search else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) // RO Search
{ {
SearchString = null; SearchString = null;
//ReportTitle = "Proms - Referenced Object Search";
ReportTitle = string.Format("Search For Referenced Object:\n{0}", cmboTreeROs.Text); ReportTitle = string.Format("Search For Referenced Object:\n{0}", cmboTreeROs.Text);
//TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types");
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked) if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
{ {
@@ -2094,37 +2177,22 @@ namespace Volian.Controls.Library
{ {
ReportTitle = string.Format("Search For Transitions: Transition Type: {0}, Transition Category: {1}", cbxTranFormat.SelectedItem, cbxTranCategory.SelectedItem); ReportTitle = string.Format("Search For Transitions: Transition Type: {0}, Transition Category: {1}", cbxTranFormat.SelectedItem, cbxTranCategory.SelectedItem);
string docVersionList = string.Empty; string docVersionList = string.Empty;
bool bypassSearch = false;
if (lstCheckedDocVersions.Count == 0) if (lstCheckedDocVersions.Count == 0)
docVersionList = cbxTranVersion.Tag.ToString(); docVersionList = cbxTranVersion.Tag.ToString();
else else
{ {
//B2026-055 Transition Search Improvements string sep = string.Empty;
//Changed matching to take Filtered Formats into account if both tree foreach (DocVersionInfo dvi in lstCheckedDocVersions)
//Items selected and Format dropdown filtered
if (string.IsNullOrEmpty(cbxTranVersion.Tag?.ToString()))
{ {
docVersionList = string.Join(",", lstCheckedDocVersions.Select(y => y.VersionID.ToString())); docVersionList += sep + dvi.VersionID.ToString();
} sep = ",";
else
{
var fromatversionslst = cbxTranVersion.Tag.ToString().Split(',').Select(int.Parse);
var selectedversionlst = lstCheckedDocVersions.Select(y => y.VersionID);
docVersionList = string.Join(",", fromatversionslst.Intersect(selectedversionlst));
if (string.IsNullOrEmpty(docVersionList))
{
bypassSearch = true;
FlexibleMessageBox.Show("No Matches Found.", "Search");
}
} }
} }
// B2018-134 to search specifically for Outside Transitions, set docVeronList to empty string so that all procedure sets are considered // B2018-134 to search specifically for Outside Transitions, set docVeronList to empty string so that all procedure sets are considered
if (cbxTranCategory.SelectedItem?.ToString() == "Outside") if (cbxTranCategory.SelectedItem.ToString() == "Outside")
docVersionList = string.Empty; docVersionList = string.Empty;
// added TypeSearchList for bug fix B2015-055 // added TypeSearchList for bug fix B2015-055
if (cbxTranFormat.SelectedIndex == -1) cbxTranFormatFillIn(docVersionList); SearchResults = ItemInfoList.GetListFromTransitionSearch(docVersionList, cbxTranFormat.SelectedIndex - 1, cbxTranCategory.SelectedItem.ToString() == "All" ? string.Empty : cbxTranCategory.SelectedItem.ToString(), TypeSearchList);
if (!bypassSearch) SearchResults = ItemInfoList.GetListFromTransitionSearch(docVersionList, cbxTranFormat.SelectedIndex - 1, cbxTranCategory.SelectedItem?.ToString() == "All" ? string.Empty : (cbxTranCategory.SelectedItem?.ToString() ?? string.Empty), TypeSearchList);
cmbResultsStyleIndex = 3; // display step text in results cmbResultsStyleIndex = 3; // display step text in results
// C2019-001: Search in RNO steps only // C2019-001: Search in RNO steps only
if (cbxRnoOnlyTrans.Checked) GetInRNOResults(); if (cbxRnoOnlyTrans.Checked) GetInRNOResults();
@@ -2181,13 +2249,16 @@ namespace Volian.Controls.Library
string tmpmsg = (cbxBooleanTxtSrch.Checked && ex.Message.Contains("Syntax error") && ex.Message.Contains("full-text search")) ? string tmpmsg = (cbxBooleanTxtSrch.Checked && ex.Message.Contains("Syntax error") && ex.Message.Contains("full-text search")) ?
"Place \"\" around words that you are searching for, so that parser can better understand what you are trying to find" : "Place \"\" around words that you are searching for, so that parser can better understand what you are trying to find" :
ex.Message; ex.Message;
FlexibleMessageBox.Show(tmpmsg, $"Search Error: {ex.GetType().Name}"); FlexibleMessageBox.Show(tmpmsg, "Search Error: " + ex.GetType().Name);
} }
finally finally
{ {
Cursor = savcursor; Cursor = savcursor;
} }
//Console.WriteLine("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds);
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks))); OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
//if (VlnSettings.DebugMode)
// MessageBox.Show(string.Format("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds));
} }
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click) private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
@@ -2248,7 +2319,7 @@ namespace Volian.Controls.Library
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = AnnotationInfo.Get(ii.ItemAnnotations[0].AnnotationID).SearchText; if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = AnnotationInfo.Get(ii.ItemAnnotations[0].AnnotationID).SearchText;
} }
if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = $"None - [{ii.DisplayText}]"; if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = "None - [" + ii.DisplayText + "]";
else else
{ {
hasAnnot = true; hasAnnot = true;
@@ -2398,7 +2469,7 @@ namespace Volian.Controls.Library
//C2025-005 Find Step Elements //C2025-005 Find Step Elements
//Need to refresh the Doc List and Available Step Types //Need to refresh the Doc List and Available Step Types
//if All Procedure Sets was selected //if All Procedure Sets was selected
if (n.Tag is string txt && txt == SelectAllProcedureSetsText) if (n.Tag == SelectAllProcedureSetsText)
{ {
if (n.Checked) if (n.Checked)
{ {
@@ -2449,6 +2520,7 @@ namespace Volian.Controls.Library
{ {
if (tn.Checked) if (tn.Checked)
{ {
//tn.Style = DevComponents.AdvTree.NodeStyles.Apple; // sets green background on selected folder(s)
//B2023-112: Don't crash if on top 'All' node (did not have associated folder) //B2023-112: Don't crash if on top 'All' node (did not have associated folder)
FolderInfo fi = tn.Tag as FolderInfo; FolderInfo fi = tn.Tag as FolderInfo;
// if this folder has a docversion, use its id: // if this folder has a docversion, use its id:
@@ -2495,10 +2567,8 @@ namespace Volian.Controls.Library
lstCheckedStepTypesStr.Clear(); lstCheckedStepTypesStr.Clear();
foreach (string str in strs) foreach (string str in strs)
{ {
Node newnode = new DevComponents.AdvTree.Node Node newnode = new DevComponents.AdvTree.Node();
{ newnode.Text = str;
Text = str
};
advTreeStepTypes.Nodes.Add(newnode); advTreeStepTypes.Nodes.Add(newnode);
} }
buildStepTypePannelTitle(); buildStepTypePannelTitle();
@@ -2587,23 +2657,16 @@ namespace Volian.Controls.Library
private void cbxTranFormatFillIn(string vid) private void cbxTranFormatFillIn(string vid)
{ {
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(",")); vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
//B2026-055 Transition Search Improvements
//Change the order of items happening
//previous order was causing an error when clicked downdownlist to
//show all items and then didn't select an item in the list
cbxTranFormat.Items.Clear();
cbxTranFormat.Items.Add("All");
if (!string.IsNullOrEmpty(vid))
{
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid)); DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList; TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
cbxTranFormat.Items.Clear();
cbxTranFormat.Items.Add("All");
for (int i = 0; i < ttl.MaxIndex; i++) for (int i = 0; i < ttl.MaxIndex; i++)
{ {
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty))); cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty)));
}
} }
cbxTranFormat.SelectedIndex = 0; cbxTranFormat.SelectedIndex = 0;
@@ -2654,9 +2717,9 @@ namespace Volian.Controls.Library
if (advTreeStepTypes.Nodes.Count == 1 && n.Checked) if (advTreeStepTypes.Nodes.Count == 1 && n.Checked)
{ {
if (n.Tag is DocVersionInfo info) // Only set MyDocVersion if it is a DocVersion if (n.Tag is DocVersionInfo) // Only set MyDocVersion if it is a DocVersion
{ {
Mydocversion = info; Mydocversion = (DocVersionInfo)n.Tag;
StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel
} }
} }
@@ -2681,6 +2744,8 @@ namespace Volian.Controls.Library
if (n.Checked) if (n.Checked)
{ {
//n.Style = DevComponents.AdvTree.NodeStyles.Apple; // B2023-112: coloring of proc set tree nodes was not working correctly
if (sd == null) if (sd == null)
{ {
//C2023-010: Since the tag is null for Word Sections and HLS types, we need to determine which one has been selected. Word sections we need //C2023-010: Since the tag is null for Word Sections and HLS types, we need to determine which one has been selected. Word sections we need
@@ -2809,7 +2874,7 @@ namespace Volian.Controls.Library
xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor; xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor;
} }
else else //lstCheckedStepTypes.Count > 0
{ {
// show how many selected whether panel is expanded or not // show how many selected whether panel is expanded or not
xpStepTypes.TitleText = string.Format("{0} Step Element{1} Selected", lstCheckedStepTypes.Count, (lstCheckedStepTypes.Count > 1) ? "s" : string.Empty); // B2018-132 changed second {0} to {1} xpStepTypes.TitleText = string.Format("{0} Step Element{1} Selected", lstCheckedStepTypes.Count, (lstCheckedStepTypes.Count > 1) ? "s" : string.Empty); // B2018-132 changed second {0} to {1}
@@ -2881,6 +2946,7 @@ namespace Volian.Controls.Library
private bool OnlyWordSectTypeSel() private bool OnlyWordSectTypeSel()
{ {
// B2021-100: Enable/disable the RNO Only checkbox & WORD Sections tree node in Step Elements to Search. // B2021-100: Enable/disable the RNO Only checkbox & WORD Sections tree node in Step Elements to Search.
// lstCheckedStepTypes[x] = 0 for Word sections:
if (lstCheckedStepTypes != null && lstCheckedStepTypes.Count == 1 && lstCheckedStepTypes[0] == 0) if (lstCheckedStepTypes != null && lstCheckedStepTypes.Count == 1 && lstCheckedStepTypes[0] == 0)
return true; return true;
@@ -3079,6 +3145,11 @@ namespace Volian.Controls.Library
lbSrchResults.DataSource = null; lbSrchResults.DataSource = null;
lbSrchResults.Items.Clear(); lbSrchResults.Items.Clear();
toolTip1.SetToolTip(lbSrchResults, null); toolTip1.SetToolTip(lbSrchResults, null);
string unitPrefix = string.Empty;
if (Mydocversion != null)
unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber;
if (unitPrefix.EndsWith("#"))
unitPrefix = unitPrefix.Replace("#", string.Empty);
Cursor = Cursors.WaitCursor; Cursor = Cursors.WaitCursor;
try // B2021-045: don't crash if xml file cannot be loaded. try // B2021-045: don't crash if xml file cannot be loaded.
@@ -3108,7 +3179,7 @@ namespace Volian.Controls.Library
Node tnode = advTreeProcSets.FindNodeByDataKey(folderID); Node tnode = advTreeProcSets.FindNodeByDataKey(folderID);
if (tnode != null) tnode.Checked = true; if (tnode != null) tnode.Checked = true;
} }
Mydocversion = tmpdvi ?? fromLoadFiledvi; Mydocversion = tmpdvi == null ? fromLoadFiledvi : tmpdvi;
} }
AdvTreeStepTypesFillIn(); AdvTreeStepTypesFillIn();
@@ -3131,10 +3202,10 @@ namespace Volian.Controls.Library
} }
string typstr = null; string typstr = null;
foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : $"{typstr}, {s}"; foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : typstr + ", " + s;
TypesSelected = $"Filtered By: {typstr ?? "All Step Types"}"; TypesSelected = "Filtered By: " + ((typstr != null) ? typstr : "All Step Types");
ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr; ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr;
TypesSelected = $"Filtered By: {typstr}"; TypesSelected = "Filtered By: " + typstr;
advTreeStepTypes.RefreshItems(); advTreeStepTypes.RefreshItems();
buildStepTypePannelTitle(); buildStepTypePannelTitle();
} }
@@ -3227,7 +3298,7 @@ namespace Volian.Controls.Library
} }
} }
} }
catch (Exception) catch (Exception ex)
{ {
FlexibleMessageBox.Show("An error occurred while reading the xml file.\r\n\r\nThis can happen when the file selected for the Load is not saved\r\n" + FlexibleMessageBox.Show("An error occurred while reading the xml file.\r\n\r\nThis can happen when the file selected for the Load is not saved\r\n" +
"from a PROMS Search or if some of the steps no longer exist.", "Search Load Failed", MessageBoxButtons.OK); "from a PROMS Search or if some of the steps no longer exist.", "Search Load Failed", MessageBoxButtons.OK);
@@ -3407,46 +3478,6 @@ namespace Volian.Controls.Library
} }
} }
//B2026-055 Transition Search Improvements
//Update Enabling/Disabling of Tree Elements
public bool TraverseTree(DevComponents.AdvTree.Node node, string[] versions)
{
bool result = true;
int numhiddenchildnodes = 0;
// Recursively call this method for each child node
foreach (DevComponents.AdvTree.Node childNode in node.Nodes)
{
if (!TraverseTree(childNode, versions))
{
numhiddenchildnodes++;
}
}
// Process the current node (e.g., enable it if it is contained)
//Select all always shows
//also Enable Dummy Nodes by default
if (versions == null || (versions.Length == 1 && string.IsNullOrEmpty(versions[0])) || node.Tag == null || (node.Tag is string txt && txt == SelectAllProcedureSetsText))
{
node.Enabled = true;
return true;
}
//if all child nodes are hidden, hide the parent
else if (numhiddenchildnodes == node.Nodes.Count)
{
result = false;
}
FolderInfo fi = (FolderInfo)node.Tag;
if (fi.FolderDocVersionCount > 0)
{
result = versions.Contains(fi.FolderDocVersions[0].VersionID.ToString());
}
node.Enabled = result;
return result;
}
private void btnCopySearchResults_Click(object sender, EventArgs e) private void btnCopySearchResults_Click(object sender, EventArgs e)
{ {
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>; ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
@@ -3512,6 +3543,7 @@ namespace Volian.Controls.Library
private bool IncTransCvtAllToTextPerm() private bool IncTransCvtAllToTextPerm()
{ {
if (_SearchResults == null) return false; if (_SearchResults == null) return false;
int cnt = 0;
bool allowNonAdmin = IncTranCvtPerm(); bool allowNonAdmin = IncTranCvtPerm();
foreach (ItemInfo ii in _SearchResults) foreach (ItemInfo ii in _SearchResults)
{ {
@@ -3627,8 +3659,6 @@ namespace Volian.Controls.Library
} }
} }
} }
#pragma warning restore IDE1006 // Naming Styles
#pragma warning restore IDE0044 // Add readonly modifier
#endregion #endregion