Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c05e493579 | ||
![]() |
2714973c16 | ||
![]() |
5f86d8c629 | ||
![]() |
977ea6f5fc | ||
![]() |
a8bbda1281 | ||
![]() |
da1b061eb1 | ||
![]() |
4644699df0 | ||
![]() |
6e6abbd759 | ||
![]() |
501798a8cb | ||
a240bc2c19 | |||
a804a3866a | |||
069ffb80e9 | |||
![]() |
5255080291 | ||
![]() |
ae35d9f0d7 | ||
afbd653611 | |||
![]() |
9a55111e1e | ||
422a3053b7 | |||
feb74ee09f | |||
7cebb2b7f1 | |||
![]() |
8097c6283c | ||
![]() |
8f08ef5ee4 | ||
![]() |
fd26f16776 | ||
![]() |
21a83df99d |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -22230,10 +22230,12 @@ Go
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Begin: C2024-004 | B2024-041: KL - Update Copy Replace functionality, (remove ''copy of'')
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ReplaceItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ReplaceItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||||
DROP PROCEDURE [ReplaceItemAndChildren];
|
DROP PROCEDURE [ReplaceItemAndChildren];
|
||||||
@@ -23245,13 +23247,362 @@ BEGIN CATCH -- Catch Block
|
|||||||
END CATCH
|
END CATCH
|
||||||
Go
|
Go
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
End: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Begin: C2024-005: PRL - SPs to support Admin tool to clean Annotations
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[deleteAnnotationsDocvByType] Script Date: 7/11/2024 2:39:59 PM ******/
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsDocvByType')
|
||||||
|
DROP PROCEDURE [dbo].[deleteAnnotationsDocvByType]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[deleteAnnotationsDocvByType] Script Date: 7/11/2024 2:39:59 PM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Author: Paul Larsen
|
||||||
|
Modified Date: 07/11/2024
|
||||||
|
Description: Delete Annotations in DocVersions by Annotation Type
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
CREATE procedure [dbo].[deleteAnnotationsDocvByType]
|
||||||
|
(
|
||||||
|
@docvList varchar(MAX),
|
||||||
|
@typeid int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
DECLARE @docvs TABLE
|
||||||
|
(
|
||||||
|
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
|
||||||
|
DocvVersionID int
|
||||||
|
)
|
||||||
|
|
||||||
|
DECLARE @Annotationitems table
|
||||||
|
(
|
||||||
|
RowID int NOT NULL IDENTITY(1,1),
|
||||||
|
AllItemIDs int
|
||||||
|
)
|
||||||
|
|
||||||
|
INSERT INTO @docvs (DocvVersionID) (select id from vefn_SplitInt(@docvList, ','))
|
||||||
|
|
||||||
|
DECLARE @cnt int = 0
|
||||||
|
DECLARE @cnt2 int
|
||||||
|
DECLARE @itemid int
|
||||||
|
DECLARE @i INT
|
||||||
|
SET @i = (SELECT MIN(RowID) FROM @docvs);
|
||||||
|
DECLARE @max INT;
|
||||||
|
SET @max = (SELECT MAX(RowID) FROM @docvs);
|
||||||
|
|
||||||
|
-- add all itemids relateted to requested Annotation cleaning.
|
||||||
|
while (@i <= @max)
|
||||||
|
BEGIN
|
||||||
|
SELECT @itemid = DocvVersionID from @docvs where RowID = @i
|
||||||
|
INSERT INTO @Annotationitems (AllItemIDs)
|
||||||
|
(SELECT cir.itemid FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
|
||||||
|
--vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
|
||||||
|
SET @i = @i + 1;
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @i = MIN(RowID) FROM @docvs;
|
||||||
|
SELECT @max = MAX(RowID) FROM @docvs;
|
||||||
|
|
||||||
|
-- Delete Annotations
|
||||||
|
DELETE FROM Ann
|
||||||
|
FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeid
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsProcByType')
|
||||||
|
DROP PROCEDURE [dbo].[deleteAnnotationsProcByType]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[deleteAnnotationsProcByType] Script Date: 7/11/2024 2:46:05 PM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Author: Paul Larsen
|
||||||
|
Modified Date: 07/11/2024
|
||||||
|
Description: Delete Annotations in Procedures by Annotation Type
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
CREATE procedure [dbo].[deleteAnnotationsProcByType]
|
||||||
|
(
|
||||||
|
@procList varchar(MAX),
|
||||||
|
@typeid int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
DECLARE @procs TABLE
|
||||||
|
(
|
||||||
|
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
|
||||||
|
ProcItemIDs int
|
||||||
|
)
|
||||||
|
|
||||||
|
DECLARE @Annotationitems table
|
||||||
|
(
|
||||||
|
RowID int NOT NULL IDENTITY(1,1),
|
||||||
|
AllItemIDs int
|
||||||
|
)
|
||||||
|
|
||||||
|
DECLARE @cnt int = 0
|
||||||
|
DECLARE @cnt2 int
|
||||||
|
DECLARE @itemid int
|
||||||
|
|
||||||
|
INSERT INTO @procs (ProcItemIDs) (select id from vefn_SplitInt(@procList, ','))
|
||||||
|
|
||||||
|
DECLARE @i INT
|
||||||
|
SET @i = (SELECT MIN(RowID) FROM @procs);
|
||||||
|
DECLARE @max INT;
|
||||||
|
SET @max = (SELECT MAX(RowID) FROM @procs);
|
||||||
|
|
||||||
|
-- add all itemids relateted to requested Annotation cleaning.
|
||||||
|
while (@i <= @max)
|
||||||
|
BEGIN
|
||||||
|
SELECT @itemid = ProcItemIDs from @procs where RowID = @i
|
||||||
|
INSERT INTO @Annotationitems (AllItemIDs)
|
||||||
|
(SELECT cir.itemid FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
|
||||||
|
SET @i = @i + 1;
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @i = MIN(RowID) FROM @procs;
|
||||||
|
SELECT @max = MAX(RowID) FROM @procs;
|
||||||
|
|
||||||
|
-- Delete Annotations
|
||||||
|
DELETE FROM Ann
|
||||||
|
FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeid
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationDocvCount')
|
||||||
|
DROP PROCEDURE [dbo].[getAnnotationDocvCount]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[getAnnotationDocvCount] Script Date: 7/11/2024 2:48:35 PM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Author: Paul Larsen
|
||||||
|
Modified Date: 07/11/2024
|
||||||
|
Description: Retrieve the number of Annotations that will be deleted (DocVersions)
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
CREATE procedure [dbo].[getAnnotationDocvCount]
|
||||||
|
(
|
||||||
|
@docvList varchar(MAX),
|
||||||
|
@typeid int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
DECLARE @docvs TABLE
|
||||||
|
(
|
||||||
|
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
|
||||||
|
itemid int
|
||||||
|
)
|
||||||
|
|
||||||
|
--INSERT INTO @procs from STRING_SPLIT(@procList, ',')
|
||||||
|
|
||||||
|
INSERT INTO @docvs (itemid) (select id from vefn_SplitInt(@docvList, ','))
|
||||||
|
|
||||||
|
DECLARE @cnt int = 0
|
||||||
|
|
||||||
|
SELECT @cnt = count(cir.itemid) FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid
|
||||||
|
|
||||||
|
SELECT @cnt AS 'COUNT'
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[getAnnotationProcCount] Script Date: 7/11/2024 3:02:05 PM ******/
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationProcCount')
|
||||||
|
DROP PROCEDURE [dbo].[getAnnotationProcCount]
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[getAnnotationProcCount] Script Date: 7/11/2024 3:02:05 PM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Author: Paul Larsen
|
||||||
|
Modified Date: 07/11/2024
|
||||||
|
Description: Retrieve the number of Annotations that will be deleted (Procedures)
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
CREATE procedure [dbo].[getAnnotationProcCount]
|
||||||
|
(
|
||||||
|
@procList varchar(MAX),
|
||||||
|
@typeid int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
DECLARE @procs TABLE
|
||||||
|
(
|
||||||
|
RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
|
||||||
|
itemid int
|
||||||
|
)
|
||||||
|
|
||||||
|
INSERT INTO @procs (itemid) (select id from vefn_SplitInt(@procList, ','))
|
||||||
|
|
||||||
|
DECLARE @cnt int = 0
|
||||||
|
DECLARE @cnt2 int
|
||||||
|
DECLARE @itemid int
|
||||||
|
DECLARE @i INT
|
||||||
|
SELECT @i = MIN(RowID) FROM @procs;
|
||||||
|
DECLARE @max INT;
|
||||||
|
SELECT @max = MAX(RowID) FROM @procs;
|
||||||
|
|
||||||
|
while (@i <= @max)
|
||||||
|
BEGIN
|
||||||
|
SELECT @itemid = itemid from @procs where RowID = @i
|
||||||
|
SELECT @cnt = @cnt + (SELECT count(cir.itemid) FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
|
||||||
|
SET @i = @i + 1;
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @cnt AS 'count'
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
End: C2024-005: PRL - SPs to support Admin tool to clean Annotations
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
Start: C2021-059: SQL to delete folders using admin tool
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteFolderAdmin')
|
||||||
|
DROP PROCEDURE [dbo].[deleteFolderAdmin]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||||
|
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
|
||||||
|
*****************************************************************************/
|
||||||
|
CREATE PROCEDURE [dbo].[deleteFolderAdmin]
|
||||||
|
|
||||||
|
(
|
||||||
|
@FolderID int
|
||||||
|
)
|
||||||
|
WITH EXECUTE AS OWNER
|
||||||
|
AS
|
||||||
|
BEGIN TRY -- Try Block
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
DELETE From Assignments WHERE [FolderID]=@FolderID
|
||||||
|
DELETE From Associations where VersionID in (select versionid from DocVersions where folderid = @FolderID)
|
||||||
|
DELETE From DocVersions where VersionID in (select versionid from DocVersions where folderid= @FolderID)
|
||||||
|
DELETE From DocVersions where [FolderID]=@FolderID
|
||||||
|
|
||||||
|
-- Delete from items where ItemID matches
|
||||||
|
DELETE FROM tblitems
|
||||||
|
WHERE ItemID IN (
|
||||||
|
SELECT DISTINCT ItemID
|
||||||
|
FROM docversions
|
||||||
|
WHERE folderID = @folderID
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Delete from items where ItemID matches
|
||||||
|
DELETE FROM tblitems
|
||||||
|
WHERE ItemID IN (
|
||||||
|
SELECT DISTINCT ItemID
|
||||||
|
FROM docversions
|
||||||
|
WHERE folderID = @folderID
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Delete from tblContents where ContentID matches
|
||||||
|
DELETE FROM tblContents
|
||||||
|
WHERE ContentID IN (
|
||||||
|
SELECT DISTINCT c.ContentID
|
||||||
|
FROM tblContents c
|
||||||
|
JOIN items i ON c.ContentID = i.ItemID
|
||||||
|
WHERE i.ItemID IN (
|
||||||
|
SELECT DISTINCT ItemID
|
||||||
|
FROM docversions
|
||||||
|
WHERE folderID = @folderID
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
DELETE From Folders WHERE [ParentID] = @FolderID
|
||||||
|
DELETE From Folders WHERE [FolderID] = @FolderID
|
||||||
|
|
||||||
|
|
||||||
|
IF( @@TRANCOUNT > 0 ) COMMIT
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH -- Catch Block
|
||||||
|
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
|
||||||
|
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
|
||||||
|
EXEC vlnErrorHandler
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
==========================================================================================================
|
||||||
|
End: C2021-059: SQL to delete folders using admin tool
|
||||||
|
==========================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
| ADD New Code Before this Block |
|
| ADD New Code Before this Block |
|
||||||
@@ -23285,8 +23636,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/2024 3:37 PM'
|
set @RevDate = '07/29/2024 11:24'
|
||||||
set @RevDescription = 'B2024-041: Updates to allow for proper replace vs paste above or below'
|
set @RevDescription = 'C2021-059 Add SQL for Admin tool delete folders.'
|
||||||
|
|
||||||
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
|
||||||
@@ -23304,6 +23655,3 @@ ELSE PRINT 'StoredProcedure [vesp_GetSQLCodeRevision] Error on Creation'
|
|||||||
go
|
go
|
||||||
|
|
||||||
Exec vesp_GetSQLCodeRevision;
|
Exec vesp_GetSQLCodeRevision;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -99,7 +99,10 @@
|
|||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="C1.Win.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=944ae1ea0e47ca04" />
|
||||||
|
<Reference Include="C1.Win.C1Command.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=e808566f358766d8" />
|
||||||
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
|
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="C1.Win.C1Input.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=7e7ff60f0c214f9a, processorArchitecture=MSIL" />
|
||||||
<Reference Include="Csla">
|
<Reference Include="Csla">
|
||||||
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
|
<HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -220,6 +223,12 @@
|
|||||||
<Compile Include="dlgUCFDetail.Designer.cs">
|
<Compile Include="dlgUCFDetail.Designer.cs">
|
||||||
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="frmAnnotationsCleanup.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmAnnotationsCleanup.Designer.cs">
|
||||||
|
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmBatchRefresh.cs">
|
<Compile Include="frmBatchRefresh.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -331,6 +340,9 @@
|
|||||||
<EmbeddedResource Include="dlgUCFDetail.resx">
|
<EmbeddedResource Include="dlgUCFDetail.resx">
|
||||||
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmAnnotationsCleanup.resx">
|
||||||
|
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmPDFStatusForm.resx">
|
<EmbeddedResource Include="frmPDFStatusForm.resx">
|
||||||
<DependentUpon>frmPDFStatusForm.cs</DependentUpon>
|
<DependentUpon>frmPDFStatusForm.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@@ -614,4 +626,4 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent>
|
<PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
132
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.Designer.cs
generated
Normal file
132
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.Designer.cs
generated
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
|
||||||
|
using VEPROMS.CSLA.Library;
|
||||||
|
using Volian.Base.Library;
|
||||||
|
namespace VEPROMS
|
||||||
|
{
|
||||||
|
partial class frmAnnotationsCleanup
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.lbAnnotationTypes = new System.Windows.Forms.ListBox();
|
||||||
|
this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||||
|
this.lblAnnotationsList = new System.Windows.Forms.Label();
|
||||||
|
this.btnClean = new System.Windows.Forms.Button();
|
||||||
|
this.lblCountNumber = new System.Windows.Forms.Label();
|
||||||
|
this.lblCount = new System.Windows.Forms.Label();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// lbAnnotationTypes
|
||||||
|
//
|
||||||
|
this.lbAnnotationTypes.DataSource = this.itemAnnotationsBindingSource;
|
||||||
|
this.lbAnnotationTypes.FormattingEnabled = true;
|
||||||
|
this.lbAnnotationTypes.Location = new System.Drawing.Point(25, 48);
|
||||||
|
this.lbAnnotationTypes.Name = "lbAnnotationTypes";
|
||||||
|
this.lbAnnotationTypes.Size = new System.Drawing.Size(295, 433);
|
||||||
|
this.lbAnnotationTypes.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// lblAnnotationsList
|
||||||
|
//
|
||||||
|
this.lblAnnotationsList.AutoSize = true;
|
||||||
|
this.lblAnnotationsList.Location = new System.Drawing.Point(26, 21);
|
||||||
|
this.lblAnnotationsList.Name = "lblAnnotationsList";
|
||||||
|
this.lblAnnotationsList.Size = new System.Drawing.Size(175, 13);
|
||||||
|
this.lblAnnotationsList.TabIndex = 1;
|
||||||
|
this.lblAnnotationsList.Text = "Select an Annotation Type to Clean";
|
||||||
|
//
|
||||||
|
// btnClean
|
||||||
|
//
|
||||||
|
this.btnClean.Location = new System.Drawing.Point(365, 164);
|
||||||
|
this.btnClean.Name = "btnClean";
|
||||||
|
this.btnClean.Size = new System.Drawing.Size(131, 36);
|
||||||
|
this.btnClean.TabIndex = 2;
|
||||||
|
this.btnClean.Text = "Proceed?";
|
||||||
|
this.btnClean.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClean.Click += new System.EventHandler(this.button1_Click);
|
||||||
|
//
|
||||||
|
// lblCountNumber
|
||||||
|
//
|
||||||
|
this.lblCountNumber.AutoSize = true;
|
||||||
|
this.lblCountNumber.Location = new System.Drawing.Point(395, 100);
|
||||||
|
this.lblCountNumber.Name = "lblCountNumber";
|
||||||
|
this.lblCountNumber.Size = new System.Drawing.Size(69, 13);
|
||||||
|
this.lblCountNumber.TabIndex = 3;
|
||||||
|
this.lblCountNumber.Text = "Delete Count";
|
||||||
|
this.lblCountNumber.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// lblCount
|
||||||
|
//
|
||||||
|
this.lblCount.AutoSize = true;
|
||||||
|
this.lblCount.Location = new System.Drawing.Point(331, 70);
|
||||||
|
this.lblCount.Name = "lblCount";
|
||||||
|
this.lblCount.Size = new System.Drawing.Size(206, 13);
|
||||||
|
this.lblCount.TabIndex = 4;
|
||||||
|
this.lblCount.Text = "Number of Annotations that will be deleted";
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
this.btnClose.Location = new System.Drawing.Point(397, 457);
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnClose.TabIndex = 5;
|
||||||
|
this.btnClose.Text = "Close";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// frmAnnotationsCleanup
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(549, 535);
|
||||||
|
this.Controls.Add(this.btnClose);
|
||||||
|
this.Controls.Add(this.lblCount);
|
||||||
|
this.Controls.Add(this.lblCountNumber);
|
||||||
|
this.Controls.Add(this.btnClean);
|
||||||
|
this.Controls.Add(this.lblAnnotationsList);
|
||||||
|
this.Controls.Add(this.lbAnnotationTypes);
|
||||||
|
this.Name = "frmAnnotationsCleanup";
|
||||||
|
this.Text = "Clean Annotations";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.ListBox lbAnnotationTypes;
|
||||||
|
private System.Windows.Forms.Label lblAnnotationsList;
|
||||||
|
private System.Windows.Forms.BindingSource itemAnnotationsBindingSource;
|
||||||
|
private System.Windows.Forms.Button btnClean;
|
||||||
|
private System.Windows.Forms.Label lblCountNumber;
|
||||||
|
private System.Windows.Forms.Label lblCount;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
158
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.cs
Normal file
158
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.cs
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using VEPROMS.CSLA.Library;
|
||||||
|
using Volian.Base.Library;
|
||||||
|
//using Volian.Pipe.Library;
|
||||||
|
using System.Xml;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using JR.Utils.GUI.Forms;
|
||||||
|
|
||||||
|
namespace VEPROMS
|
||||||
|
{
|
||||||
|
public partial class frmAnnotationsCleanup : Form
|
||||||
|
{
|
||||||
|
Label mylab = new Label();
|
||||||
|
string procList = "";
|
||||||
|
string docvList = "";
|
||||||
|
int AnnotationTyp;
|
||||||
|
List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
|
||||||
|
List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
|
||||||
|
private frmBatchRefresh mainForm = null;
|
||||||
|
// frmAnnotationsCleanup constructor passes users procedure and docversion selections from frmBatchRefresh
|
||||||
|
public frmAnnotationsCleanup(Form callingForm, List<ProcedureInfo> pil, List<DocVersionInfo> dvil)
|
||||||
|
|
||||||
|
{ // Set up link back to parent form.
|
||||||
|
mainForm = callingForm as frmBatchRefresh;
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
pil2 = pil;
|
||||||
|
dvil2 = dvil;
|
||||||
|
|
||||||
|
// Get list of annotation types for plant.
|
||||||
|
myAnnotationTypeInfoList = AnnotationTypeInfoList.Get();
|
||||||
|
lbAnnotationTypes.DataSource = myLocalAnnotationTypeInfoList = new LocalAnnotationTypeInfoList(myAnnotationTypeInfoList);
|
||||||
|
|
||||||
|
Dictionary<string, string> AnnotationsList = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
// Add name and type ID to form.
|
||||||
|
foreach (LocalAnnotationTypeInfo lati in myLocalAnnotationTypeInfoList)
|
||||||
|
{
|
||||||
|
AnnotationsList.Add(lati.TypeID.ToString(), lati.Name);
|
||||||
|
//cbAnnotationTypes.Items.Add(new { Name = lati.Name, Value = lati.TypeID });
|
||||||
|
}
|
||||||
|
|
||||||
|
lbAnnotationTypes.DataSource = new BindingSource(AnnotationsList, null);
|
||||||
|
lbAnnotationTypes.DisplayMember = "Value";
|
||||||
|
lbAnnotationTypes.ValueMember = "Key";
|
||||||
|
lbAnnotationTypes.SelectedIndexChanged += lbAnnotationTypes_SelectedIndexChanged;
|
||||||
|
|
||||||
|
}
|
||||||
|
// create comma delimited string of procedures selected by user.
|
||||||
|
private string getAnnotationProcItems(List<ProcedureInfo> pil2)
|
||||||
|
{
|
||||||
|
procList = "";
|
||||||
|
foreach (var p in pil2)
|
||||||
|
{
|
||||||
|
if (p.IsProcedure)
|
||||||
|
{
|
||||||
|
if (procList == "")
|
||||||
|
{
|
||||||
|
procList = procList + p.ItemID.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
procList = procList + "," + p.ItemID.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return procList;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create comma delimited string of doc versions selected by user.
|
||||||
|
private string getAnnotationDocvItems(List<DocVersionInfo> dvil2)
|
||||||
|
{
|
||||||
|
docvList = "";
|
||||||
|
foreach (var d in dvil2)
|
||||||
|
{
|
||||||
|
if (d.IsDocVersion)
|
||||||
|
{
|
||||||
|
if (docvList == "")
|
||||||
|
{
|
||||||
|
docvList = docvList + d.VersionID.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
docvList = docvList + "," + d.VersionID.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return docvList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AnnotationTypeInfoList myAnnotationTypeInfoList = null;
|
||||||
|
private LocalAnnotationTypeInfoList myLocalAnnotationTypeInfoList = null;
|
||||||
|
|
||||||
|
// Process used to cleanup annotations "(Proceed?" button)
|
||||||
|
private void button1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (var p in pil2)
|
||||||
|
{
|
||||||
|
if (p.IsProcedure)
|
||||||
|
{
|
||||||
|
TextBox frm2 = mainForm.GettxtProcess();
|
||||||
|
frm2.AppendText(p.DisplayNumber + ' ' + p.DisplayText);
|
||||||
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
|
Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
|
||||||
|
lblCountNumber.Text = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
foreach (var d in dvil2)
|
||||||
|
{
|
||||||
|
if (d.IsDocVersion)
|
||||||
|
{
|
||||||
|
TextBox frm2 = mainForm.GettxtProcess();
|
||||||
|
frm2.AppendText(d.ActiveParent.ToString());
|
||||||
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
|
Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
|
||||||
|
lblCountNumber.Text = "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Retrieve number of annotations that will be deleted.
|
||||||
|
private void lbAnnotationTypes_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
btnClean.Enabled = false;
|
||||||
|
lblCountNumber.Text = "";
|
||||||
|
int deletecountProc = 0;
|
||||||
|
int deletecountDocv = 0;
|
||||||
|
if (pil2.Count > 0)
|
||||||
|
{
|
||||||
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
|
deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, getAnnotationProcItems(pil2));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dvil2.Count > 0)
|
||||||
|
{
|
||||||
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
|
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, getAnnotationDocvItems(dvil2));
|
||||||
|
}
|
||||||
|
lblCountNumber.Text = (deletecountProc + deletecountDocv).ToString();
|
||||||
|
btnClean.Enabled = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
// Close form.
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
123
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.resx
Normal file
123
PROMS/VEPROMS User Interface/frmAnnotationsCleanup.resx
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="itemAnnotationsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
1044
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
1044
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -22,12 +22,29 @@ namespace VEPROMS
|
|||||||
set { _MySessionInfo = value; }
|
set { _MySessionInfo = value; }
|
||||||
}
|
}
|
||||||
private bool IsAdministratorUser = false; //C2020-035 used to control what Set Amins can do
|
private bool IsAdministratorUser = false; //C2020-035 used to control what Set Amins can do
|
||||||
// C2017-030 - new Admin Tools user interface
|
// C2017-030 - new Admin Tools user interface
|
||||||
// pass in session info to constructor
|
// pass in session info to constructor
|
||||||
public frmBatchRefresh(SessionInfo sessionInfo)
|
|
||||||
|
private frmVEPROMS _veProms;
|
||||||
|
|
||||||
|
public frmBatchRefresh(SessionInfo sessionInfo, frmVEPROMS veProms)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_MySessionInfo = sessionInfo;
|
_MySessionInfo = sessionInfo;
|
||||||
|
_veProms = veProms;
|
||||||
|
|
||||||
|
if (sideNavItmDelete.Checked)
|
||||||
|
{
|
||||||
|
AdminToolType = (E_AdminToolType)4;
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
{
|
||||||
|
ResetDelTV(true);
|
||||||
|
setupProgessSteps1();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ResetDelTV(false);
|
||||||
|
}
|
||||||
|
|
||||||
setupProgessSteps1(); // C2017-030 - new Admin Tools user interface
|
setupProgessSteps1(); // C2017-030 - new Admin Tools user interface
|
||||||
UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID);
|
UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID);
|
||||||
IsAdministratorUser = ui.IsAdministrator();
|
IsAdministratorUser = ui.IsAdministrator();
|
||||||
@@ -43,18 +60,25 @@ namespace VEPROMS
|
|||||||
swStandardHypenChars.Enabled = false;
|
swStandardHypenChars.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Make txtProcess text box available to frmAnnotationsClean form.
|
||||||
|
internal TextBox GettxtProcess()
|
||||||
|
{
|
||||||
|
return txtProcess;
|
||||||
|
}
|
||||||
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
|
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
|
||||||
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
|
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
|
||||||
// also annotations will be placed on step elements that have RO changes
|
// also annotations will be placed on step elements that have RO changes
|
||||||
|
|
||||||
// make all of the hyphen character consistant so they can all be found with the Search function
|
// make all of the hyphen character consistant so they can all be found with the Search function
|
||||||
|
|
||||||
|
|
||||||
private void FixHyphens()
|
private void FixHyphens()
|
||||||
{
|
{
|
||||||
this.Cursor = Cursors.WaitCursor;
|
this.Cursor = Cursors.WaitCursor;
|
||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Standardizing Hyphens");
|
txtProcess.AppendText("Standardizing Hyphens");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
|
int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
|
||||||
@@ -65,7 +89,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -74,6 +98,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
private Dictionary<TreeNode, ProcedureInfo> myProcedures = new Dictionary<TreeNode, ProcedureInfo>();
|
private Dictionary<TreeNode, ProcedureInfo> myProcedures = new Dictionary<TreeNode, ProcedureInfo>();
|
||||||
private Dictionary<TreeNode, DocVersionInfo> myDocVersions = new Dictionary<TreeNode, DocVersionInfo>();
|
private Dictionary<TreeNode, DocVersionInfo> myDocVersions = new Dictionary<TreeNode, DocVersionInfo>();
|
||||||
|
private Dictionary<TreeNode, FolderInfo> myFolders = new Dictionary<TreeNode, FolderInfo>();
|
||||||
private void frmBatchRefresh_Load(object sender, EventArgs e)
|
private void frmBatchRefresh_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
IsClosing = false;//B2017-221 Allow the batch dialog to close when waiting to process.
|
||||||
@@ -116,6 +141,8 @@ namespace VEPROMS
|
|||||||
//myTreeNodePath = new List<string>();
|
//myTreeNodePath = new List<string>();
|
||||||
myTV.Nodes.Clear();
|
myTV.Nodes.Clear();
|
||||||
myDocVersions.Clear();
|
myDocVersions.Clear();
|
||||||
|
myFolders.Clear();
|
||||||
|
|
||||||
FolderInfo fi = FolderInfo.GetTop();
|
FolderInfo fi = FolderInfo.GetTop();
|
||||||
TreeNode tn = myTV.Nodes.Add(fi.Name);
|
TreeNode tn = myTV.Nodes.Add(fi.Name);
|
||||||
tn.Tag = fi;
|
tn.Tag = fi;
|
||||||
@@ -125,30 +152,87 @@ namespace VEPROMS
|
|||||||
myTV.SelectedNode.Expand();
|
myTV.SelectedNode.Expand();
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
private void ResetDelTV()
|
||||||
|
{
|
||||||
|
ResetDelTV(false);
|
||||||
|
}
|
||||||
|
private void ResetDelTV(bool noProcs)
|
||||||
|
{
|
||||||
|
btnFixLinks.Enabled = false;
|
||||||
|
this.Cursor = Cursors.WaitCursor;
|
||||||
|
myTVdel.Nodes.Clear();
|
||||||
|
myDocVersions.Clear();
|
||||||
|
FolderInfo fi = FolderInfo.GetTop();
|
||||||
|
|
||||||
|
if (fi.ChildFolderCount > 0)
|
||||||
|
{
|
||||||
|
TreeNode tn = new TreeNode(fi.Name);
|
||||||
|
tn.Tag = fi;
|
||||||
|
tn.StateImageIndex = -1; // Hide the checkbox for the root node
|
||||||
|
LoadChildFolders(fi, tn, noProcs);
|
||||||
|
myTVdel.Nodes.Add(tn);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myTVdel.SelectedNode != null)
|
||||||
|
myTVdel.SelectedNode.Expand();
|
||||||
|
|
||||||
|
//Expand if folders
|
||||||
|
if (noProcs)
|
||||||
|
myTVdel.ExpandAll();
|
||||||
|
|
||||||
|
this.Cursor = Cursors.Default;
|
||||||
|
}
|
||||||
|
|
||||||
// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
|
// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
|
||||||
private bool LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs)
|
private bool LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs)
|
||||||
{
|
{
|
||||||
bool loadedWorkingDraft = false;
|
bool loadedWorkingDraft = false;
|
||||||
bool loadedChildWorkingDraft = false; // B2021-060 flag when child folder working draft is loaded
|
bool loadedChildWorkingDraft = false;
|
||||||
|
|
||||||
foreach (FolderInfo fic in fi.SortedChildFolders)
|
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||||
{
|
{
|
||||||
TreeNode tnc = tn.Nodes.Add(fic.Name);
|
TreeNode tnc = tn.Nodes.Add(fic.Name);
|
||||||
tnc.Tag = fic;
|
tnc.Tag = fic;
|
||||||
|
|
||||||
if (fic.ChildFolderCount > 0)
|
if (fic.ChildFolderCount > 0)
|
||||||
if(LoadChildFolders(fic, tnc, noProcs))
|
{
|
||||||
loadedChildWorkingDraft=true;
|
if (LoadChildFolders(fic, tnc, noProcs))
|
||||||
// B2020-114 and C2020-035 only show folders the Set Admin can access
|
{
|
||||||
|
loadedChildWorkingDraft = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (fic.FolderDocVersionCount > 0)
|
if (fic.FolderDocVersionCount > 0)
|
||||||
{
|
{
|
||||||
if (!LoadDocVersions(fic, tnc, noProcs))
|
if (!LoadDocVersions(fic, tnc, noProcs))
|
||||||
|
{
|
||||||
tnc.Remove();
|
tnc.Remove();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
loadedWorkingDraft = true;
|
loadedWorkingDraft = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Add the folder to the dictionary
|
||||||
|
if (!myFolders.ContainsKey(tnc))
|
||||||
|
{
|
||||||
|
myFolders.Add(tnc, fic);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (loadedChildWorkingDraft) loadedWorkingDraft = true; // B2021-060 if child folder working draft loaded set loadedWorkingDraft
|
|
||||||
|
if (loadedChildWorkingDraft)
|
||||||
|
{
|
||||||
|
loadedWorkingDraft = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (tn.Parent != null && !loadedWorkingDraft)
|
if (tn.Parent != null && !loadedWorkingDraft)
|
||||||
|
{
|
||||||
tn.Remove();
|
tn.Remove();
|
||||||
|
}
|
||||||
|
|
||||||
return loadedWorkingDraft;
|
return loadedWorkingDraft;
|
||||||
}
|
}
|
||||||
private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
|
private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
|
||||||
@@ -201,7 +285,7 @@ namespace VEPROMS
|
|||||||
private void UpdateROValues()
|
private void UpdateROValues()
|
||||||
{
|
{
|
||||||
this.Cursor = Cursors.WaitCursor;
|
this.Cursor = Cursors.WaitCursor;
|
||||||
List<ProcedureInfo> pil = new List<ProcedureInfo>(); // C2023-002: list of checked out procedures, used in frmBatchRefreshCheckedOut dialog
|
List<ProcedureInfo> pil = new List<ProcedureInfo>(); // C2023-002: list of checked out procedures, used in frmBatchRefreshCheckedOut dialog
|
||||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||||
foreach (TreeNode tn in myDocVersions.Keys)
|
foreach (TreeNode tn in myDocVersions.Keys)
|
||||||
if (tn.Checked)
|
if (tn.Checked)
|
||||||
@@ -251,7 +335,7 @@ namespace VEPROMS
|
|||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
// when processing more than one procedure set, display only one completed message after all are processed
|
// when processing more than one procedure set, display only one completed message after all are processed
|
||||||
if (ROFstInfo.MessageList != null)
|
if (ROFstInfo.MessageList != null)
|
||||||
@@ -273,7 +357,7 @@ namespace VEPROMS
|
|||||||
sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?");
|
sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?");
|
||||||
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(1);
|
frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(1);
|
||||||
frmCO.MySessionInfo = MySessionInfo;
|
frmCO.MySessionInfo = MySessionInfo;
|
||||||
frmCO.CheckedOutProcedures = pil; // C2023-002: set list of checked out procedures
|
frmCO.CheckedOutProcedures = pil; // C2023-002: set list of checked out procedures
|
||||||
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
|
frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height);
|
||||||
// C2023-002: Allow close of dialog that has list of procedures that are checked out
|
// C2023-002: Allow close of dialog that has list of procedures that are checked out
|
||||||
if (frmCO.ShowDialog(this) != DialogResult.Cancel)
|
if (frmCO.ShowDialog(this) != DialogResult.Cancel)
|
||||||
@@ -412,7 +496,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Refresh Transitions");
|
txtProcess.AppendText("Refresh Transitions");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtResults.AppendText("Refresh Transitions");
|
txtResults.AppendText("Refresh Transitions");
|
||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
@@ -449,19 +533,19 @@ namespace VEPROMS
|
|||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (numTransFixed == 0 && numTransConverted ==0)
|
if (numTransFixed == 0 && numTransConverted == 0)
|
||||||
{
|
{
|
||||||
txtResults.AppendText("No Transitions Needed Updated.");
|
txtResults.AppendText("No Transitions Needed Updated.");
|
||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange);
|
ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange);
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Transitions Checked: {0}",numTransProcessed));
|
txtProcess.AppendText(string.Format("Transitions Checked: {0}", numTransProcessed));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
|
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
|
||||||
txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}",numTransProcessed - (numTransConverted + numTransFixed)));
|
txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}", numTransProcessed - (numTransConverted + numTransFixed)));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
|
txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
@@ -490,10 +574,10 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic
|
// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic
|
||||||
if (numTransFixed == 0 && numTransConverted ==0)
|
if (numTransFixed == 0 && numTransConverted == 0)
|
||||||
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.",numTransProcessed), "Refresh Transitions Completed");
|
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed");
|
||||||
else
|
else
|
||||||
MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted),numTransFixed, numTransConverted), "Refresh Transitions Completed");
|
MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted), numTransFixed, numTransConverted), "Refresh Transitions Completed");
|
||||||
}
|
}
|
||||||
|
|
||||||
// C2017-030 - new Admin Tools user interface
|
// C2017-030 - new Admin Tools user interface
|
||||||
@@ -506,7 +590,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Refreshing Word Attachments");
|
txtProcess.AppendText("Refreshing Word Attachments");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int affectedRows = ESP_DeletePDFs.Execute("vesp_DeletePDFs");
|
int affectedRows = ESP_DeletePDFs.Execute("vesp_DeletePDFs");
|
||||||
@@ -516,7 +600,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -561,7 +645,7 @@ namespace VEPROMS
|
|||||||
private int RefreshForSearch()
|
private int RefreshForSearch()
|
||||||
{
|
{
|
||||||
int cntfix = 0;
|
int cntfix = 0;
|
||||||
List<int> gids = GridInfoList.GetIds(); // get all grids in database
|
List<int> gids = GridInfoList.GetIds(); // get all grids in database
|
||||||
pbProcess.Minimum = 0;
|
pbProcess.Minimum = 0;
|
||||||
pbProcess.Maximum = gids.Count;
|
pbProcess.Maximum = gids.Count;
|
||||||
pbProcess.Step = 1;
|
pbProcess.Step = 1;
|
||||||
@@ -570,7 +654,7 @@ namespace VEPROMS
|
|||||||
using (Content cc = Content.Get(cid))
|
using (Content cc = Content.Get(cid))
|
||||||
{
|
{
|
||||||
StepConfig sc = new StepConfig(cc.Config);
|
StepConfig sc = new StepConfig(cc.Config);
|
||||||
if (!sc.Step_FixedTblForSrch) // if not processed through this code already, get searchable text & save
|
if (!sc.Step_FixedTblForSrch) // if not processed through this code already, get searchable text & save
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -588,7 +672,7 @@ namespace VEPROMS
|
|||||||
cc.UserID = Volian.Base.Library.VlnSettings.UserID;
|
cc.UserID = Volian.Base.Library.VlnSettings.UserID;
|
||||||
cc.DTS = DateTime.Now;
|
cc.DTS = DateTime.Now;
|
||||||
cc.Text = srchtxt;
|
cc.Text = srchtxt;
|
||||||
|
|
||||||
}
|
}
|
||||||
sc.Step_FixedTblForSrch = true;
|
sc.Step_FixedTblForSrch = true;
|
||||||
cc.Config = sc.ToString();
|
cc.Config = sc.ToString();
|
||||||
@@ -615,7 +699,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Identifing Orphan Items");
|
txtProcess.AppendText("Identifing Orphan Items");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
|
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
|
||||||
@@ -636,7 +720,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -652,7 +736,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Purging Orphan Items");
|
txtProcess.AppendText("Purging Orphan Items");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
|
int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
|
||||||
@@ -689,7 +773,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -704,7 +788,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Identifing Unused RoFsts and Figures");
|
txtProcess.AppendText("Identifing Unused RoFsts and Figures");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
|
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
|
||||||
@@ -727,9 +811,9 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
|
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
@@ -742,7 +826,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
|
txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
|
int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
|
||||||
@@ -783,7 +867,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -798,7 +882,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Identifing Unused RO Associations");
|
txtProcess.AppendText("Identifing Unused RO Associations");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
|
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
|
||||||
@@ -817,7 +901,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -832,7 +916,7 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Purging Unused Referenced Object Associations");
|
txtProcess.AppendText("Purging Unused Referenced Object Associations");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
|
int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
|
||||||
@@ -866,7 +950,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -881,11 +965,11 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Identifing Hidden Item Locations");
|
txtProcess.AppendText("Identifing Hidden Item Locations");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
|
List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
|
||||||
txtProcess.AppendText(string.Format("Hidden Items Count: {0}",myItems.Count));
|
txtProcess.AppendText(string.Format("Hidden Items Count: {0}", myItems.Count));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
if (myItems.Count > 0)
|
if (myItems.Count > 0)
|
||||||
{
|
{
|
||||||
@@ -906,7 +990,7 @@ namespace VEPROMS
|
|||||||
txtResults.AppendText(Environment.NewLine);
|
txtResults.AppendText(Environment.NewLine);
|
||||||
}
|
}
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -921,16 +1005,16 @@ namespace VEPROMS
|
|||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText("Show Users in PROMS");
|
txtProcess.AppendText("Show Users in PROMS");
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
txtResults.Clear();
|
txtResults.Clear();
|
||||||
txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
|
txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
|
||||||
DateTime pEnd = DateTime.Now;
|
DateTime pEnd = DateTime.Now;
|
||||||
txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
MessageBox.Show( "Show Users Completed", "Show Users");
|
MessageBox.Show("Show Users Completed", "Show Users");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProcessUpdateROValues(DocVersionInfo dq)
|
private void ProcessUpdateROValues(DocVersionInfo dq)
|
||||||
@@ -1068,7 +1152,7 @@ namespace VEPROMS
|
|||||||
// show the changes made in the Results pannel, include the ItemId of the step element
|
// show the changes made in the Results pannel, include the ItemId of the step element
|
||||||
void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args)
|
void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (args.Type == "TX")
|
if (args.Type == "TX")
|
||||||
{
|
{
|
||||||
myFixesCount++;
|
myFixesCount++;
|
||||||
@@ -1085,7 +1169,7 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
else // B2018-002 - Invalid Transitions - Display Transition Cconversion Statistics
|
else // B2018-002 - Invalid Transitions - Display Transition Cconversion Statistics
|
||||||
{
|
{
|
||||||
myFixes.AppendLine(string.Format("Converted Transition to text for {0}({1})", (sender as ItemInfo).ShortPath, (sender as ItemInfo).ItemID));
|
myFixes.AppendLine(string.Format("Converted Transition to text for {0}({1})", (sender as ItemInfo).ShortPath, (sender as ItemInfo).ItemID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1121,10 +1205,35 @@ namespace VEPROMS
|
|||||||
CheckChildNodes(e.Node, e.Node.Checked);
|
CheckChildNodes(e.Node, e.Node.Checked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (swDeleteAnnotations.Value)
|
||||||
|
{
|
||||||
|
if (e.Node.Checked)
|
||||||
|
{
|
||||||
|
DiselectParentNodes(e.Node.Parent);
|
||||||
|
DiselectChildNodes(e.Node.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
|
btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
|
||||||
}
|
}
|
||||||
|
private void DiselectParentNodes(TreeNode parent)
|
||||||
|
{
|
||||||
|
while (parent != null)
|
||||||
|
{
|
||||||
|
if (parent.Checked)
|
||||||
|
parent.Checked = false;
|
||||||
|
parent = parent.Parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DiselectChildNodes(TreeNodeCollection childes)
|
||||||
|
{
|
||||||
|
foreach (TreeNode oneChild in childes)
|
||||||
|
{
|
||||||
|
if (oneChild.Checked)
|
||||||
|
oneChild.Checked = false;
|
||||||
|
DiselectChildNodes(oneChild.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
private void CheckChildNodes(TreeNode treeNode, bool ischecked)
|
private void CheckChildNodes(TreeNode treeNode, bool ischecked)
|
||||||
{
|
{
|
||||||
foreach (TreeNode tn in treeNode.Nodes)
|
foreach (TreeNode tn in treeNode.Nodes)
|
||||||
@@ -1138,14 +1247,88 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//After check model to select and deselect nodes on the delete and annotation tree.
|
||||||
|
private void myTV_AfterCheck_DelAnn(object sender, TreeViewEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Action != TreeViewAction.Unknown)
|
||||||
|
{
|
||||||
|
if (e.Node.Nodes.Count > 0)
|
||||||
|
{
|
||||||
|
CheckChildNodes_DelAnn(e.Node, e.Node.Checked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.Node.Checked)
|
||||||
|
{
|
||||||
|
// Ensure child nodes follow the parent node's state
|
||||||
|
CheckChildNodes_DelAnn(e.Node, e.Node.Checked);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Automatically deselect parent nodes if current node is unchecked
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
DiselectParentNodes_DelAnn(e.Node);
|
||||||
|
}
|
||||||
|
|
||||||
|
btnFixLinks.Enabled = AtLeastOneNodeChecked_DelAnn(); // Ensure button is enabled based on custom logic
|
||||||
|
}
|
||||||
|
private void DiselectParentNodes_DelAnn(TreeNode node)
|
||||||
|
{
|
||||||
|
TreeNode parent = node.Parent;
|
||||||
|
while (parent != null)
|
||||||
|
{
|
||||||
|
parent.Checked = false;
|
||||||
|
parent = parent.Parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DiselectChildNodes_DelAnn(TreeNodeCollection children)
|
||||||
|
{
|
||||||
|
foreach (TreeNode child in children)
|
||||||
|
{
|
||||||
|
child.Checked = false;
|
||||||
|
DiselectChildNodes_DelAnn(child.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void CheckChildNodes_DelAnn(TreeNode treeNode, bool isChecked)
|
||||||
|
{
|
||||||
|
foreach (TreeNode tn in treeNode.Nodes)
|
||||||
|
{
|
||||||
|
tn.Checked = isChecked;
|
||||||
|
|
||||||
|
if (tn.Nodes.Count > 0)
|
||||||
|
CheckChildNodes_DelAnn(tn, isChecked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private bool AtLeastOneNodeChecked_DelAnn()
|
||||||
|
{
|
||||||
|
foreach (TreeNode node in myTV.Nodes)
|
||||||
|
{
|
||||||
|
if (node.Checked || AnyChildNodeChecked_DelAnn(node))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
private bool AnyChildNodeChecked_DelAnn(TreeNode node)
|
||||||
|
{
|
||||||
|
foreach (TreeNode childNode in node.Nodes)
|
||||||
|
{
|
||||||
|
if (childNode.Checked || AnyChildNodeChecked_DelAnn(childNode))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private ProgressBarItem _ProgressBar = null;
|
private ProgressBarItem _ProgressBar = null;
|
||||||
|
|
||||||
public ProgressBarItem ProgressBar
|
public ProgressBarItem ProgressBar
|
||||||
{
|
{
|
||||||
get { return _ProgressBar; }
|
get { return _ProgressBar; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_ProgressBar = value;
|
_ProgressBar = value;
|
||||||
_ProgressBar.TextVisible = true;
|
_ProgressBar.TextVisible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1246,6 +1429,24 @@ namespace VEPROMS
|
|||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// new Admin Tools user interface for deletes
|
||||||
|
private void sideNavItmDelete_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AdminToolType = E_AdminToolType.Delete;
|
||||||
|
setupProgessSteps1();
|
||||||
|
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
ResetDelTV(true);
|
||||||
|
else
|
||||||
|
ResetDelTV(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// new Admin Tools user interface for deletes
|
||||||
|
//private void sideNavItmDelete_Click_1(object sender, EventArgs e)
|
||||||
|
//{
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
#region On/Off Swiches
|
#region On/Off Swiches
|
||||||
|
|
||||||
// C2017-030 new Admin Tools user interface
|
// C2017-030 new Admin Tools user interface
|
||||||
@@ -1254,7 +1455,8 @@ namespace VEPROMS
|
|||||||
Check = 0,
|
Check = 0,
|
||||||
Repair = 1,
|
Repair = 1,
|
||||||
Links = 2,
|
Links = 2,
|
||||||
Users = 3
|
Users = 3,
|
||||||
|
Delete = 4
|
||||||
};
|
};
|
||||||
private E_AdminToolType AdminToolType = 0;
|
private E_AdminToolType AdminToolType = 0;
|
||||||
|
|
||||||
@@ -1305,6 +1507,23 @@ namespace VEPROMS
|
|||||||
splitContainer3.Panel2Collapsed = true;
|
splitContainer3.Panel2Collapsed = true;
|
||||||
progressSteps1.Visible = false;
|
progressSteps1.Visible = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case E_AdminToolType.Delete:
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
{
|
||||||
|
splitContainer3.Panel2Collapsed = false;
|
||||||
|
progressSteps1.Items.Add(siOrphDatRecs);
|
||||||
|
lblAdmToolProgressType.Text = "Repairing: ";
|
||||||
|
progressSteps1.Visible = true;
|
||||||
|
progressSteps1.Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lblAdmToolProgressType.Text = "";
|
||||||
|
splitContainer3.Panel2Collapsed = true;
|
||||||
|
progressSteps1.Visible = false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1500,5 +1719,171 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//C2024-005 Delete Annotations, Delete Folders
|
||||||
|
private void swDeleteAnnotations_ValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
setupProgessSteps1();
|
||||||
|
swDeleteFolder.Value = !swDeleteAnnotations.Value;
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
ResetDelTV(true);
|
||||||
|
else
|
||||||
|
ResetDelTV(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void swDeleteFolder_ValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
setupProgessSteps1();
|
||||||
|
swDeleteAnnotations.Value = !swDeleteFolder.Value;
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
ResetDelTV(true);
|
||||||
|
else
|
||||||
|
ResetDelTV(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnDeleteItems_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//clear
|
||||||
|
txtResults.Clear();
|
||||||
|
txtProcess.Clear();
|
||||||
|
|
||||||
|
if (swDeleteFolder.Value)
|
||||||
|
{
|
||||||
|
if (FlexibleMessageBox.Show(this, "You sure you want to remove the selected folders and their contents?", "Confirm Folder Deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
txtProcess.AppendText("Deleting Folders...");
|
||||||
|
|
||||||
|
//Load Selected Folders with docversions
|
||||||
|
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||||
|
foreach (TreeNode tn in myDocVersions.Keys)
|
||||||
|
if (tn.Checked)
|
||||||
|
dvil.Add(myDocVersions[tn]);
|
||||||
|
|
||||||
|
//Load Selected Folders with docversions
|
||||||
|
List<FolderInfo> ef = new List<FolderInfo>();
|
||||||
|
foreach (TreeNode tn in myFolders.Keys)
|
||||||
|
if (tn.Checked)
|
||||||
|
ef.Add(myFolders[tn]);
|
||||||
|
|
||||||
|
ProcessDelete(dvil, ef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Write progress status
|
||||||
|
txtProcess.AppendText("Deleting Annotations...");
|
||||||
|
|
||||||
|
// Create a list of procedures the user selected
|
||||||
|
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
|
foreach (TreeNode tn in myProcedures.Keys)
|
||||||
|
if (tn.Checked)
|
||||||
|
pil.Add(myProcedures[tn]);
|
||||||
|
|
||||||
|
// Create a list of doc versions the user selected
|
||||||
|
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||||
|
foreach (TreeNode tn in myDocVersions.Keys)
|
||||||
|
if (tn.Checked)
|
||||||
|
dvil.Add(myDocVersions[tn]);
|
||||||
|
|
||||||
|
frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
|
||||||
|
|
||||||
|
frmAnnoDel.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessDelete(List<DocVersionInfo> foldersToDelete, List<FolderInfo> emptyFoldersToDelete)
|
||||||
|
{
|
||||||
|
DateTime pStart = DateTime.Now;
|
||||||
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
|
txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm"));
|
||||||
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
|
|
||||||
|
foreach (var kvp in foldersToDelete)
|
||||||
|
{
|
||||||
|
//Gather folder information
|
||||||
|
FolderInfo fi = (FolderInfo)kvp.ActiveParent;
|
||||||
|
int itemID = (int)fi.FolderID;
|
||||||
|
string folderName = fi.Name;
|
||||||
|
|
||||||
|
// Perform the deletion operation
|
||||||
|
bool deletionSuccessful = DeleteFolderByID(itemID);
|
||||||
|
|
||||||
|
// Update txtProcess with the progress
|
||||||
|
if (deletionSuccessful)
|
||||||
|
{
|
||||||
|
txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtProcess.AppendText($"Failed to delete folder: {folderName} (ID: {itemID})");
|
||||||
|
}
|
||||||
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Delete non working info folders.
|
||||||
|
foreach (var kvp in emptyFoldersToDelete)
|
||||||
|
{
|
||||||
|
//Gather folder information
|
||||||
|
FolderInfo fi = (FolderInfo)kvp;
|
||||||
|
int itemID = (int)fi.FolderID;
|
||||||
|
string folderName = fi.Name;
|
||||||
|
|
||||||
|
// Perform the deletion operation
|
||||||
|
bool deletionSuccessful = DeleteFolderByID(itemID);
|
||||||
|
|
||||||
|
// Update txtProcess with the progress
|
||||||
|
if (deletionSuccessful)
|
||||||
|
{
|
||||||
|
txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtProcess.AppendText($"Failed to delete folder: {folderName} (ID: {itemID})");
|
||||||
|
}
|
||||||
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Run Repair
|
||||||
|
int prgStpIdx = -1;
|
||||||
|
StepProgress(++prgStpIdx, 50);
|
||||||
|
PurgeDisconnectedItems(); // Orphan Items
|
||||||
|
StepProgress(prgStpIdx, 100);
|
||||||
|
|
||||||
|
//rebuild
|
||||||
|
ResetDelTV(true);
|
||||||
|
|
||||||
|
MessageBox.Show("Folder Deletion Completed", "Delete Folders");
|
||||||
|
ClearStepProgress();
|
||||||
|
}
|
||||||
|
private bool DeleteFolderByID(int folderID)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//Delete
|
||||||
|
Folder.DeleteFolderAdmin(folderID);
|
||||||
|
|
||||||
|
//update treeview UI via veProms
|
||||||
|
_veProms.tv_FolderDelete(folderID);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ProcedureInfo> RetrieveChkAnnotations()
|
||||||
|
{
|
||||||
|
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
|
foreach (TreeNode tn in myProcedures.Keys)
|
||||||
|
if (tn.Checked)
|
||||||
|
pil.Add(myProcedures[tn]);
|
||||||
|
return pil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -117,27 +117,147 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
|
||||||
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
|
||||||
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
|
||||||
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
|
||||||
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
|
||||||
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
|
||||||
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
|
||||||
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
|
||||||
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
|
||||||
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
|
||||||
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
|
||||||
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
|
||||||
zJwL4b/EAAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="labelX13.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
|
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
||||||
|
</data>
|
||||||
|
<data name="labelX14.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This will allow for the deletion of groups of annotations and allow for deleting entire folders within PROMS. Use the tree nodes to select which items to delete.
|
||||||
|
|
||||||
|
Click on the on/off switches to turn on/off each tool.
|
||||||
|
|
||||||
|
Note that only one of these tools can be run at a time.</value>
|
||||||
|
</data>
|
||||||
|
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="labelX12.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
||||||
|
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
||||||
|
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
||||||
|
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
||||||
|
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
||||||
|
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
||||||
|
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
||||||
|
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
||||||
|
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
||||||
|
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
||||||
|
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
||||||
|
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
||||||
|
zJwL4b/EAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
|
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
||||||
|
</data>
|
||||||
|
<data name="labelX11.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
|
It is recommended that this be done during off hours.
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="labelX6.SuperTooltip" xml:space="preserve">
|
||||||
|
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
||||||
|
|
||||||
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
|
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
||||||
|
</data>
|
||||||
|
<data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
||||||
|
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
||||||
|
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
||||||
|
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
||||||
|
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
||||||
|
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
||||||
|
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
||||||
|
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
||||||
|
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
||||||
|
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
||||||
|
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
||||||
|
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
||||||
|
zJwL4b/EAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
||||||
|
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
||||||
|
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
||||||
|
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
||||||
|
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
||||||
|
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
||||||
|
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
||||||
|
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
||||||
|
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
||||||
|
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
||||||
|
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
||||||
|
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
||||||
|
zJwL4b/EAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
<data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
|
<data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
|
||||||
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
|
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
|
||||||
|
|
||||||
@@ -184,91 +304,6 @@ This tool may take an extended period of time to execute.
|
|||||||
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
|
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool detects any orphaned items in the database.
|
||||||
|
|
||||||
This tool may take an extended period of time to execute.
|
This tool may take an extended period of time to execute.
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
|
||||||
|
|
||||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior performing this function.
|
|
||||||
|
|
||||||
It is recommended that this be done during off hours.
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelX12.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
|
||||||
|
|
||||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior performing this function.
|
|
||||||
|
|
||||||
It is recommended that this be done during off hours.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
|
||||||
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
|
||||||
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
|
||||||
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
|
||||||
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
|
||||||
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
|
||||||
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
|
||||||
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
|
||||||
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
|
||||||
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
|
||||||
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
|
||||||
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
|
||||||
zJwL4b/EAAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior performing this function.
|
|
||||||
|
|
||||||
It is recommended that this be done during off hours.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior to running this function.
|
|
||||||
|
|
||||||
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelX11.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior performing this function.
|
|
||||||
|
|
||||||
It is recommended that this be done during off hours.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelX6.SuperTooltip" xml:space="preserve">
|
|
||||||
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
|
||||||
|
|
||||||
Be sure a current backup of the database exists prior to running this function.
|
|
||||||
|
|
||||||
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
|
||||||
</data>
|
|
||||||
<data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
|
||||||
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
|
||||||
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
|
||||||
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
|
||||||
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
|
||||||
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
|
||||||
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
|
||||||
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
|
||||||
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
|
||||||
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
|
||||||
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
|
||||||
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
|
||||||
zJwL4b/EAAAAAElFTkSuQmCC
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
|
<data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
|
||||||
@@ -285,37 +320,37 @@ This function will remove all of the saved attachment PDFS stored in the databas
|
|||||||
</data>
|
</data>
|
||||||
<data name="warningBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="warningBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
||||||
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
||||||
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
||||||
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
||||||
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
||||||
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
||||||
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
||||||
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
||||||
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
||||||
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
||||||
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
||||||
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
||||||
zJwL4b/EAAAAAElFTkSuQmCC
|
zJwL4b/EAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="warningBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="warningBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
|
||||||
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
|
||||||
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
|
||||||
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
|
||||||
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
|
||||||
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
|
||||||
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
|
||||||
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
|
||||||
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
|
||||||
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
|
||||||
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
|
||||||
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
|
||||||
zJwL4b/EAAAAAElFTkSuQmCC
|
zJwL4b/EAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="swRmObsoleteROData.SuperTooltip" xml:space="preserve">
|
<data name="swRmObsoleteROData.SuperTooltip" xml:space="preserve">
|
||||||
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
|
<value>Referenced Objects databases are associated with a procedure set (such as Working Draft).
|
||||||
@@ -368,6 +403,6 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
|
|||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>38</value>
|
<value>46</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
</root>
|
</root>
|
@@ -214,7 +214,7 @@ namespace VEPROMS
|
|||||||
this.btnSendErrorLog,
|
this.btnSendErrorLog,
|
||||||
this.btnShowErrFld,
|
this.btnShowErrFld,
|
||||||
this.btnShowPrtFld,
|
this.btnShowPrtFld,
|
||||||
this.btnHelpAbout}); ;
|
this.btnHelpAbout});
|
||||||
this.btnHelp.Text = "Help";
|
this.btnHelp.Text = "Help";
|
||||||
//
|
//
|
||||||
// btnHelpManual
|
// btnHelpManual
|
||||||
@@ -1763,3 +1763,4 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -216,6 +216,8 @@ namespace VEPROMS
|
|||||||
set { _MyDocVersion = value; }
|
set { _MyDocVersion = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// C2015-022 setup the child PROMS window
|
// C2015-022 setup the child PROMS window
|
||||||
public frmVEPROMS(frmVEPROMS myParent, DocVersionInfo myDocVersion)
|
public frmVEPROMS(frmVEPROMS myParent, DocVersionInfo myDocVersion)
|
||||||
{
|
{
|
||||||
@@ -254,6 +256,22 @@ namespace VEPROMS
|
|||||||
tc.RefreshItem(myItemInfo);
|
tc.RefreshItem(myItemInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void tv_FolderDelete(int folderId)
|
||||||
|
{
|
||||||
|
// Create an instance of the event args if needed
|
||||||
|
var args = new vlnTreeFolderDeleteEventArgs(folderId);
|
||||||
|
|
||||||
|
// Trigger the deletion using the event arguments
|
||||||
|
tv.RemoveFolder(args.FolderId);
|
||||||
|
|
||||||
|
}
|
||||||
|
private bool Tv_DeleteFolder(object sender, vlnTreeFolderDeleteEventArgs args)
|
||||||
|
{
|
||||||
|
tv.RemoveFolder(args.FolderId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private E_UCFImportOptions _UCFImportOptionsFromSettings;
|
private E_UCFImportOptions _UCFImportOptionsFromSettings;
|
||||||
|
|
||||||
public frmVEPROMS()
|
public frmVEPROMS()
|
||||||
@@ -475,6 +493,7 @@ namespace VEPROMS
|
|||||||
tv.OpenItem += new vlnTreeViewItemInfoEvent(tv_OpenItem);
|
tv.OpenItem += new vlnTreeViewItemInfoEvent(tv_OpenItem);
|
||||||
tv.TabDisplay += new StepPanelTabDisplayEvent(tc_PanelTabDisplay);
|
tv.TabDisplay += new StepPanelTabDisplayEvent(tc_PanelTabDisplay);
|
||||||
tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo);
|
tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo);
|
||||||
|
tv.DeleteFolder += new vlnTreeViewItemInfoDeleteFolderEvent(Tv_DeleteFolder);
|
||||||
tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo);
|
tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo);
|
||||||
tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert);
|
tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert);
|
||||||
tv.PasteItemInfo += new vlnTreeViewItemInfoPasteEvent(tv_PasteItemInfo);
|
tv.PasteItemInfo += new vlnTreeViewItemInfoPasteEvent(tv_PasteItemInfo);
|
||||||
@@ -1603,6 +1622,11 @@ namespace VEPROMS
|
|||||||
return rtval;
|
return rtval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool tv_DeleteFolder(object sender, vlnTreeItemInfoEventArgs args)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private bool tv_PasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args)
|
private bool tv_PasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args)
|
||||||
{
|
{
|
||||||
return tc.PasteRTBItem(args.MyItemInfo, args.CopyStartID, args.PasteType, (int)args.Type);
|
return tc.PasteRTBItem(args.MyItemInfo, args.CopyStartID, args.PasteType, (int)args.Type);
|
||||||
@@ -2741,7 +2765,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
void btnAdministrativeTools_Click(object sender, EventArgs e)
|
void btnAdministrativeTools_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
frmBatchRefresh frm = new frmBatchRefresh(MySessionInfo);
|
frmBatchRefresh frm = new frmBatchRefresh(MySessionInfo, this);
|
||||||
frm.ProgressBar = bottomProgBar;
|
frm.ProgressBar = bottomProgBar;
|
||||||
frm.ShowDialog(this);
|
frm.ShowDialog(this);
|
||||||
}
|
}
|
||||||
|
@@ -225,6 +225,86 @@ namespace VEPROMS.CSLA.Library
|
|||||||
throw new DbCslaException("Error on Annotation.Delete", ex);
|
throw new DbCslaException("Error on Annotation.Delete", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DeleteAnnotationProcByType(int typID, string procList)
|
||||||
|
{
|
||||||
|
if (!CanDeleteObject())
|
||||||
|
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DataPortal.Delete(new DeleteAnnotationProcByTypeCriteria(typID, procList));
|
||||||
|
AnnotationInfo.StaticOnInfoChanged();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
|
||||||
|
if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
|
||||||
|
throw exSQL;
|
||||||
|
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
|
||||||
|
throw new DbCslaException("Error on Annotation.Delete", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteAnnotationDocvByType(int typID, string versionID)
|
||||||
|
{
|
||||||
|
if (!CanDeleteObject())
|
||||||
|
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DataPortal.Delete(new DeleteAnnotationDocvByTypeCriteria(typID, versionID));
|
||||||
|
AnnotationInfo.StaticOnInfoChanged();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
|
||||||
|
if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
|
||||||
|
throw exSQL;
|
||||||
|
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
|
||||||
|
throw new DbCslaException("Error on Annotation.Delete", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getAnnotationProcCnt(int typID, string procList)
|
||||||
|
{
|
||||||
|
if (!CanGetObject())
|
||||||
|
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Annotation ProcCnt = DataPortal.Fetch<Annotation>(new getAnnotationCountProcCriteria(typID, procList));
|
||||||
|
AnnotationInfo.StaticOnInfoChanged();
|
||||||
|
return Annotation.ProcCnt;
|
||||||
|
//return Int32.Parse(ProcCnt);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
|
||||||
|
if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
|
||||||
|
throw exSQL;
|
||||||
|
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
|
||||||
|
throw new DbCslaException("Error on getAnnotationCountProcCriteria", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getAnnotationCountDocv(int typID, string procList)
|
||||||
|
{
|
||||||
|
if (!CanGetObject())
|
||||||
|
throw new System.Security.SecurityException("User not authorized to remove a Annotation");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Annotation DocvCnt = DataPortal.Fetch<Annotation>(new getAnnotationCountDocvCriteria(typID, procList));
|
||||||
|
AnnotationInfo.StaticOnInfoChanged();
|
||||||
|
return Annotation.DocvCnt;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
System.Data.SqlClient.SqlException exSQL = SqlException(ex);
|
||||||
|
if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
|
||||||
|
throw exSQL;
|
||||||
|
Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
|
||||||
|
throw new DbCslaException("Error on getAnnotationCountDocvCriteria", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static System.Data.SqlClient.SqlException SqlException(Exception ex)
|
private static System.Data.SqlClient.SqlException SqlException(Exception ex)
|
||||||
{
|
{
|
||||||
Type sqlExType = typeof(System.Data.SqlClient.SqlException);
|
Type sqlExType = typeof(System.Data.SqlClient.SqlException);
|
||||||
@@ -280,12 +360,209 @@ namespace VEPROMS.CSLA.Library
|
|||||||
throw new DbCslaException("Item.DataPortal_Delete", ex);
|
throw new DbCslaException("Item.DataPortal_Delete", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Serializable()]
|
||||||
|
protected class DeleteAnnotationProcByTypeCriteria
|
||||||
|
{
|
||||||
|
private int _typeID;
|
||||||
|
public int TypeID
|
||||||
|
{ get { return _typeID; } }
|
||||||
|
|
||||||
|
private string _procList;
|
||||||
|
public string ProcList
|
||||||
|
{ get { return _procList; } }
|
||||||
|
public DeleteAnnotationProcByTypeCriteria(int typeID, string procList)
|
||||||
|
{
|
||||||
|
_typeID = typeID;
|
||||||
|
_procList = procList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Transactional(TransactionalTypes.TransactionScope)]
|
||||||
|
private void DataPortal_Delete(DeleteAnnotationProcByTypeCriteria criteria)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandTimeout = Database.SQLTimeout;
|
||||||
|
cm.CommandText = "deleteAnnotationsProcByType";
|
||||||
|
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
|
||||||
|
cm.Parameters.AddWithValue("@procList", criteria.ProcList);
|
||||||
|
cm.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
|
||||||
|
_ErrorMessage = ex.Message;
|
||||||
|
throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable()]
|
||||||
|
protected class DeleteAnnotationDocvByTypeCriteria
|
||||||
|
{
|
||||||
|
private int _typeID;
|
||||||
|
public int TypeID
|
||||||
|
{ get { return _typeID; } }
|
||||||
|
|
||||||
|
private string _versionID;
|
||||||
|
public string VersionID
|
||||||
|
{ get { return _versionID; } }
|
||||||
|
public DeleteAnnotationDocvByTypeCriteria(int typeID, string versionID)
|
||||||
|
{
|
||||||
|
_typeID = typeID;
|
||||||
|
_versionID = versionID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Transactional(TransactionalTypes.TransactionScope)]
|
||||||
|
private void DataPortal_Delete(DeleteAnnotationDocvByTypeCriteria criteria)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Delete Annotations by Type Docv", GetHashCode());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandTimeout = Database.SQLTimeout;
|
||||||
|
cm.CommandText = "deleteAnnotationsDocvByType";
|
||||||
|
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
|
||||||
|
cm.Parameters.AddWithValue("@docvList", criteria.VersionID);
|
||||||
|
cm.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
|
||||||
|
_ErrorMessage = ex.Message;
|
||||||
|
throw new DbCslaException("Item.DataPortal_Delete Annotations by type Docv", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int _procCnt;
|
||||||
|
public static int ProcCnt
|
||||||
|
{
|
||||||
|
get { return _procCnt; }
|
||||||
|
set { _procCnt = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable()]
|
||||||
|
protected class getAnnotationCountProcCriteria
|
||||||
|
{
|
||||||
|
private int _procCnt;
|
||||||
|
public int ProcCnt
|
||||||
|
{ get { return _procCnt; }
|
||||||
|
set { _procCnt = value; }
|
||||||
|
}
|
||||||
|
private int _typeID;
|
||||||
|
public int TypeID
|
||||||
|
{ get { return _typeID; } }
|
||||||
|
private string _procList;
|
||||||
|
public string ProcList
|
||||||
|
{ get { return _procList; } }
|
||||||
|
public getAnnotationCountProcCriteria(int typeID, string procList, int procCnt = 0)
|
||||||
|
{
|
||||||
|
_typeID = typeID;
|
||||||
|
_procList = procList;
|
||||||
|
_procCnt = procCnt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Transactional(TransactionalTypes.TransactionScope)]
|
||||||
|
private getAnnotationCountProcCriteria DataPortal_Fetch(getAnnotationCountProcCriteria criteria)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Fetch", GetHashCode());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//int ProcCnt;
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandTimeout = Database.SQLTimeout;
|
||||||
|
cm.CommandText = "getAnnotationProcCount";
|
||||||
|
cm.Parameters.AddWithValue("@procList", criteria.ProcList);
|
||||||
|
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
|
||||||
|
Annotation.ProcCnt = (int)cm.ExecuteScalar();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return criteria; //_procCnt.ToString();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.GetAnnotationProcCnt", ex);
|
||||||
|
_ErrorMessage = ex.Message;
|
||||||
|
throw new DbCslaException("Annotation.GetAnnotationProcCnt by group", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int _docvCnt;
|
||||||
|
public static int DocvCnt
|
||||||
|
{ get { return _docvCnt; }
|
||||||
|
set { _docvCnt = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable()]
|
||||||
|
protected class getAnnotationCountDocvCriteria
|
||||||
|
{
|
||||||
|
private int _docvCnt;
|
||||||
|
public int DocvCnt
|
||||||
|
{ get { return _docvCnt; }
|
||||||
|
set { _docvCnt = value; }
|
||||||
|
}
|
||||||
|
private int _TypeID;
|
||||||
|
public int TypeID
|
||||||
|
{ get { return _TypeID; } }
|
||||||
|
private string _docvList;
|
||||||
|
public string DocvList
|
||||||
|
{ get { return _docvList; } }
|
||||||
|
public getAnnotationCountDocvCriteria(int typeID, string docvList, int docvCnt = 0)
|
||||||
|
{
|
||||||
|
_TypeID = typeID;
|
||||||
|
_docvList = docvList;
|
||||||
|
_docvCnt = docvCnt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Transactional(TransactionalTypes.TransactionScope)]
|
||||||
|
private getAnnotationCountDocvCriteria DataPortal_Fetch(getAnnotationCountDocvCriteria criteria)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Fetch", GetHashCode());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//int ProcCnt;
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandTimeout = Database.SQLTimeout;
|
||||||
|
cm.CommandText = "getAnnotationDocvCount";
|
||||||
|
cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
|
||||||
|
cm.Parameters.AddWithValue("@DocvList", criteria.DocvList);
|
||||||
|
Annotation.DocvCnt = (int)cm.ExecuteScalar();
|
||||||
|
}
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
|
||||||
|
_ErrorMessage = ex.Message;
|
||||||
|
throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//public partial class AnnotationTypeAnnotations
|
|
||||||
//{
|
|
||||||
// public static int GetAnnotationID()
|
|
||||||
// {
|
|
||||||
// return AnnotationTypeAnnotat
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1433,6 +1433,31 @@ namespace VEPROMS.CSLA.Library
|
|||||||
throw new DbCslaException("Folder.Remove", ex);
|
throw new DbCslaException("Folder.Remove", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
[Transactional(TransactionalTypes.TransactionScope)]
|
||||||
|
public static void DeleteFolderAdmin(int folderID)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.Remove", 0);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
|
{
|
||||||
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
|
{
|
||||||
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
|
cm.CommandTimeout = Database.SQLTimeout;
|
||||||
|
cm.CommandText = "deleteFolderAdmin";
|
||||||
|
cm.Parameters.AddWithValue("@FolderID", folderID);
|
||||||
|
cm.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.Remove", ex);
|
||||||
|
throw new DbCslaException("Folder.Remove", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#region Exists
|
#region Exists
|
||||||
public static bool Exists(int folderID)
|
public static bool Exists(int folderID)
|
||||||
@@ -1536,6 +1561,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// Needs to be overriden to add new validation rules
|
// Needs to be overriden to add new validation rules
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
} // Class
|
} // Class
|
||||||
#region Converter
|
#region Converter
|
||||||
|
@@ -167,7 +167,9 @@ namespace VEPROMS.CSLA.Library
|
|||||||
tn.ResetNode("Dummy GetFolder");
|
tn.ResetNode("Dummy GetFolder");
|
||||||
return tn;
|
return tn;
|
||||||
}
|
}
|
||||||
// public abstract void LoadChildren();
|
|
||||||
|
|
||||||
|
// public abstract void LoadChildren();
|
||||||
//private long _Start;
|
//private long _Start;
|
||||||
//private Dictionary<string, long> _Timings=new Dictionary<string,long>();
|
//private Dictionary<string, long> _Timings=new Dictionary<string,long>();
|
||||||
//private void tReset()
|
//private void tReset()
|
||||||
|
@@ -346,10 +346,11 @@ namespace Volian.Controls.Library
|
|||||||
ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
||||||
chld = ch.children;
|
chld = ch.children;
|
||||||
// build a list of ROs to search
|
// build a list of ROs to search
|
||||||
return _MyRODbID.ToString() + ":" + GetROsToSearch(chld);
|
// B2022-118: remove the ending comma otherwise query will fail
|
||||||
//return _MyRODbID.ToString() + ":" + ch.roid + "0000," + 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1939,6 +1940,13 @@ namespace Volian.Controls.Library
|
|||||||
private string GetROsToSearch(ROFSTLookup.rochild[] chld)
|
private string GetROsToSearch(ROFSTLookup.rochild[] chld)
|
||||||
{
|
{
|
||||||
string rtnstr = string.Empty;
|
string rtnstr = string.Empty;
|
||||||
|
// B2022-118: If the ro has child nodes in tree view but they aren't loaded, load them
|
||||||
|
if ((chld == null || chld.Length <= 0) && (cmboTreeROs.SelectedNode.Nodes != null || cmboTreeROs.SelectedNode.Nodes.Count >= 1))
|
||||||
|
{
|
||||||
|
ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
||||||
|
MyROFSTLookup.LoadChildren(ref ro);
|
||||||
|
chld = ro.children;
|
||||||
|
}
|
||||||
|
|
||||||
// B2022-026 RO Memory Reduction code - check children length
|
// B2022-026 RO Memory Reduction code - check children length
|
||||||
if (chld == null || chld.Length <= 0) // get a single ROID
|
if (chld == null || chld.Length <= 0) // get a single ROID
|
||||||
@@ -1956,7 +1964,17 @@ namespace Volian.Controls.Library
|
|||||||
if (roc.children != null && roc.children.Length > 0)
|
if (roc.children != null && roc.children.Length > 0)
|
||||||
rtnstr += GetROsToSearch(roc.children);
|
rtnstr += GetROsToSearch(roc.children);
|
||||||
else
|
else
|
||||||
rtnstr += ROFSTLookup.FormatRoidKey(roc.roid, false);
|
{
|
||||||
|
// B2022-118: If the ro has child nodes in tree view but they aren't loaded, load them
|
||||||
|
ROFSTLookup.rochild rot = roc;
|
||||||
|
MyROFSTLookup.LoadChildren(ref rot);
|
||||||
|
chld = rot.children;
|
||||||
|
|
||||||
|
if (rot.children != null && rot.children.Length > 0)
|
||||||
|
rtnstr += GetROsToSearch(rot.children);
|
||||||
|
else
|
||||||
|
rtnstr += string.Format("{0},", ROFSTLookup.FormatRoidKey(roc.roid, false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -669,7 +669,7 @@ namespace Volian.Controls.Library
|
|||||||
ItemInfo proc = myItemInfo.MyProcedure; // Find procedure Item
|
ItemInfo proc = myItemInfo.MyProcedure; // Find procedure Item
|
||||||
string key = "Item - " + proc.ItemID.ToString();
|
string key = "Item - " + proc.ItemID.ToString();
|
||||||
|
|
||||||
if (_MyDisplayTabItems.ContainsKey(key)) // If procedure page open use it
|
if (_MyDisplayTabItems.ContainsKey(key) && pasteType != ItemInfo.EAddpingPart.Replace) // If procedure page open use it unless replace
|
||||||
{
|
{
|
||||||
DisplayTabItem pg = _MyDisplayTabItems[key];
|
DisplayTabItem pg = _MyDisplayTabItems[key];
|
||||||
if (pg.MyStepTabPanel.MyStepPanel._LookupEditItems.ContainsKey(myItemInfo.ItemID) &&
|
if (pg.MyStepTabPanel.MyStepPanel._LookupEditItems.ContainsKey(myItemInfo.ItemID) &&
|
||||||
@@ -708,6 +708,11 @@ namespace Volian.Controls.Library
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (_MyDisplayTabItems.ContainsKey(key) && pasteType == ItemInfo.EAddpingPart.Replace)
|
||||||
|
{
|
||||||
|
CloseTabItem(_MyDisplayTabItems["Item - " + myItemInfo.ItemID.ToString()]); //Grab itemID and set to close open tab.
|
||||||
|
return false; //B2017-179 PasteReplace will return null if was aborted
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1825,8 +1825,16 @@ namespace Volian.Controls.Library
|
|||||||
EditItem newFocus = null;
|
EditItem newFocus = null;
|
||||||
EditItem nextEditItem = MyNextEditItem;
|
EditItem nextEditItem = MyNextEditItem;
|
||||||
EditItem prevEditItem = MyPreviousEditItem;
|
EditItem prevEditItem = MyPreviousEditItem;
|
||||||
if (MyStepPanel?.SelectedEditItem?.ActiveParent == null) return null; //Was causing an error when active parent was null and the replaced proc was opened in the editor.
|
EditItem parentEditItem = null; // ActiveParent;
|
||||||
EditItem parentEditItem = ActiveParent;
|
try
|
||||||
|
{
|
||||||
|
parentEditItem = ActiveParent ?? MyStepPanel?.SelectedEditItem?.ActiveParent;
|
||||||
|
}
|
||||||
|
catch (NullReferenceException)
|
||||||
|
{
|
||||||
|
// KL 7/11/2024 - Handle the case where ActiveParent throws a Null Reference Exception
|
||||||
|
parentEditItem = MyStepPanel?.SelectedEditItem?.ActiveParent;
|
||||||
|
}
|
||||||
|
|
||||||
StepConfig savOrigPasteConfig = MyItemInfo.MyConfig as StepConfig;
|
StepConfig savOrigPasteConfig = MyItemInfo.MyConfig as StepConfig;
|
||||||
int TopMostYBefore = TopMostEditItem.Top;
|
int TopMostYBefore = TopMostEditItem.Top;
|
||||||
|
@@ -22,10 +22,11 @@ namespace Volian.Controls.Library
|
|||||||
public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args);
|
public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args);
|
public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args);
|
||||||
public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args);
|
public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args);
|
||||||
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||||
public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args);
|
public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args);
|
public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||||
|
public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args);
|
public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args);
|
||||||
public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args);
|
public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args);
|
||||||
@@ -220,6 +221,15 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
public class vlnTreeFolderDeleteEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public int FolderId { get; }
|
||||||
|
|
||||||
|
public vlnTreeFolderDeleteEventArgs(int folderId)
|
||||||
|
{
|
||||||
|
FolderId = folderId;
|
||||||
|
}
|
||||||
|
}
|
||||||
public enum E_InsertType {Before, After, Child};
|
public enum E_InsertType {Before, After, Child};
|
||||||
public partial class vlnTreeItemInfoInsertEventArgs
|
public partial class vlnTreeItemInfoInsertEventArgs
|
||||||
{
|
{
|
||||||
@@ -427,6 +437,12 @@ namespace Volian.Controls.Library
|
|||||||
if (DeleteItemInfo != null) return DeleteItemInfo(sender, args);
|
if (DeleteItemInfo != null) return DeleteItemInfo(sender, args);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
public event vlnTreeViewItemInfoDeleteFolderEvent DeleteFolder;
|
||||||
|
private bool OnDeleteFolder(object sender, vlnTreeFolderDeleteEventArgs args)
|
||||||
|
{
|
||||||
|
if (DeleteItemInfo != null) return DeleteFolder(sender, args);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
public event vlnTreeViewItemInfoInsertEvent InsertItemInfo;
|
public event vlnTreeViewItemInfoInsertEvent InsertItemInfo;
|
||||||
private bool OnInsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args)
|
private bool OnInsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -551,11 +567,11 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
||||||
}
|
}
|
||||||
public event vlnTreeViewEvent ExportImportProcedureSets;
|
public event vlnTreeViewEvent ExportImportProcedureSets;
|
||||||
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
||||||
}
|
}
|
||||||
public event vlnTreeViewEvent PrintTransitionReport;
|
public event vlnTreeViewEvent PrintTransitionReport;
|
||||||
private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args)
|
private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -607,7 +623,7 @@ namespace Volian.Controls.Library
|
|||||||
// This event was added to update the Step Properties/RO & Tools/Search RO & Reports
|
// This event was added to update the Step Properties/RO & Tools/Search RO & Reports
|
||||||
// when an update of ro.fst is done & the ro trees on those panels needs refreshed.
|
// when an update of ro.fst is done & the ro trees on those panels needs refreshed.
|
||||||
// (bug fix B2015-226)
|
// (bug fix B2015-226)
|
||||||
public event StepPanelTabDisplayEvent TabDisplay;
|
public event StepPanelTabDisplayEvent TabDisplay;
|
||||||
private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args)
|
private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args)
|
||||||
{
|
{
|
||||||
if (TabDisplay != null) TabDisplay(sender, args);
|
if (TabDisplay != null) TabDisplay(sender, args);
|
||||||
@@ -693,39 +709,39 @@ namespace Volian.Controls.Library
|
|||||||
//_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true));
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))
|
||||||
{
|
{
|
||||||
if (fi.MyParent != null) // don't allow insert before/after if at top node
|
if (fi.MyParent != null) // don't allow insert before/after if at top node
|
||||||
{
|
{
|
||||||
if (!ui.IsAdministrator() && DoSpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
if (!ui.IsAdministrator() && DoSpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
||||||
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
||||||
if (ui.IsAdministrator()||ui.IsSetAdministrator(fi.MyParent))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent))
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
||||||
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
||||||
cm.MenuItems.Add("New Folder", new EventHandler(mi_Click));
|
cm.MenuItems.Add("New Folder", new EventHandler(mi_Click));
|
||||||
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
||||||
cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
if (fi.HasWorkingDraft)
|
if (fi.HasWorkingDraft)
|
||||||
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
|
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
|
||||||
{
|
{
|
||||||
isWrkDftNode = true;
|
isWrkDftNode = true;
|
||||||
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi))
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Import Procedure", mi_Click);
|
cm.MenuItems.Add("Import Procedure", mi_Click);
|
||||||
}
|
}
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
||||||
{
|
{
|
||||||
OwnerInfoList.Reset();
|
OwnerInfoList.Reset();
|
||||||
oil = OwnerInfoList.GetByVersionID(dvi.VersionID);
|
oil = OwnerInfoList.GetByVersionID(dvi.VersionID);
|
||||||
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
||||||
cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click));
|
cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click));
|
||||||
@@ -812,15 +828,15 @@ namespace Volian.Controls.Library
|
|||||||
urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst;
|
urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections
|
else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections
|
||||||
{
|
{
|
||||||
isProcNode = true;
|
isProcNode = true;
|
||||||
ProcedureInfo pri = tn.VEObject as ProcedureInfo;
|
ProcedureInfo pri = tn.VEObject as ProcedureInfo;
|
||||||
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Export Procedure", mi_Click);
|
cm.MenuItems.Add("Export Procedure", mi_Click);
|
||||||
}
|
}
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
||||||
{
|
{
|
||||||
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
||||||
@@ -871,7 +887,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
cm.MenuItems.Add(micas);
|
cm.MenuItems.Add(micas);
|
||||||
cm.MenuItems.Add(mitcas);
|
cm.MenuItems.Add(mitcas);
|
||||||
cm.MenuItems.Add(mip);
|
cm.MenuItems.Add(mip);
|
||||||
cm.MenuItems.Add(miqp);
|
cm.MenuItems.Add(miqp);
|
||||||
//cm.MenuItems.Add(mips);
|
//cm.MenuItems.Add(mips);
|
||||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||||
@@ -1052,36 +1068,36 @@ namespace Volian.Controls.Library
|
|||||||
ok = true;
|
ok = true;
|
||||||
else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)))
|
else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)))
|
||||||
ok = true;
|
ok = true;
|
||||||
if(ok)
|
if (ok)
|
||||||
Menu_Paste(tn, cm);
|
Menu_Paste(tn, cm);
|
||||||
#endregion
|
#endregion
|
||||||
//_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true));
|
||||||
|
|
||||||
#region Menu_Delete
|
#region Menu_Delete
|
||||||
if (ok)
|
if (ok)
|
||||||
|
{
|
||||||
|
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
||||||
|
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||||
|
PartInfo pi = tn.VEObject as PartInfo;
|
||||||
|
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
||||||
{
|
{
|
||||||
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
fi = tn.VEObject as FolderInfo;
|
||||||
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
||||||
PartInfo pi = tn.VEObject as PartInfo;
|
|
||||||
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
|
||||||
{
|
{
|
||||||
fi = tn.VEObject as FolderInfo;
|
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
||||||
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
||||||
{
|
{
|
||||||
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
// if it's an enhanced step that was linked from a source, don't allow delete
|
||||||
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
bool canDoDel = true;
|
||||||
{
|
ItemInfo iienh = tn.VEObject as ItemInfo;
|
||||||
// if it's an enhanced step that was linked from a source, don't allow delete
|
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
||||||
bool canDoDel = true;
|
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
||||||
ItemInfo iienh = tn.VEObject as ItemInfo;
|
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
||||||
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
||||||
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
|
||||||
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
|
||||||
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
//_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true));
|
||||||
#region Menu_ExternalTransitions
|
#region Menu_ExternalTransitions
|
||||||
@@ -1117,13 +1133,13 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
doclink = string.Format("Unlink Source and {0} Procedure", doclink);
|
doclink = string.Format("Unlink Source and {0} Procedure", doclink);
|
||||||
MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click));
|
MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click));
|
||||||
mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1
|
mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1
|
||||||
}
|
}
|
||||||
// if this is a source procedure that has enhanced, for example Background and/or deviation, ask which should be unlinked including all
|
// if this is a source procedure that has enhanced, for example Background and/or deviation, ask which should be unlinked including all
|
||||||
else if (eds != null && eds.Count > 1)
|
else if (eds != null && eds.Count > 1)
|
||||||
{
|
{
|
||||||
MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source");
|
MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source");
|
||||||
miu.Tag = -2; // this menu item doesn't get used.
|
miu.Tag = -2; // this menu item doesn't get used.
|
||||||
int k = 0;
|
int k = 0;
|
||||||
foreach (EnhancedDocument ed in eds)
|
foreach (EnhancedDocument ed in eds)
|
||||||
{
|
{
|
||||||
@@ -1134,7 +1150,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
// add all submenu item
|
// add all submenu item
|
||||||
MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click));
|
MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click));
|
||||||
mp1.Tag = 0; // Tag of 0 flags All
|
mp1.Tag = 0; // Tag of 0 flags All
|
||||||
cm.MenuItems.Add(miu);
|
cm.MenuItems.Add(miu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1144,9 +1160,9 @@ namespace Volian.Controls.Library
|
|||||||
// Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo)
|
// Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo)
|
||||||
// node (RNOs, Steps, Cautions, Notes) or at the step level.
|
// node (RNOs, Steps, Cautions, Notes) or at the step level.
|
||||||
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
|
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
|
||||||
if ( tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
|
if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
|
||||||
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
||||||
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
||||||
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
||||||
PartInfo pia = tn.VEObject as PartInfo;
|
PartInfo pia = tn.VEObject as PartInfo;
|
||||||
ItemInfo ii = tn.VEObject as ItemInfo;
|
ItemInfo ii = tn.VEObject as ItemInfo;
|
||||||
@@ -1227,7 +1243,7 @@ namespace Volian.Controls.Library
|
|||||||
itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" ||
|
itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" ||
|
||||||
itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for")
|
itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for")
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1256,9 +1272,9 @@ namespace Volian.Controls.Library
|
|||||||
// F2022-024 added Time Critical Action Summary option
|
// F2022-024 added Time Critical Action Summary option
|
||||||
foreach (MenuItem itm in cm.MenuItems)
|
foreach (MenuItem itm in cm.MenuItems)
|
||||||
{
|
{
|
||||||
if(itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
||||||
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
||||||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
||||||
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
}
|
}
|
||||||
@@ -1267,7 +1283,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (MenuItem itm in cm.MenuItems)
|
foreach (MenuItem itm in cm.MenuItems)
|
||||||
{
|
{
|
||||||
if(!itm.Text.StartsWith("Document Checked Out"))
|
if (!itm.Text.StartsWith("Document Checked Out"))
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1284,7 +1300,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
_currentPri = pri;
|
_currentPri = pri;
|
||||||
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
||||||
if (ril.Count == 0) return; // no versions to list
|
if (ril.Count == 0) return; // no versions to list
|
||||||
MenuItem mi = menuItemCollection.Add("Versions");
|
MenuItem mi = menuItemCollection.Add("Versions");
|
||||||
int k = 0;
|
int k = 0;
|
||||||
int lastApprovedRevisionID = 0;
|
int lastApprovedRevisionID = 0;
|
||||||
@@ -1331,11 +1347,11 @@ namespace Volian.Controls.Library
|
|||||||
ril = null;
|
ril = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void AddNewNode(IVEDrillDownReadOnly o)
|
public void AddNewNode(IVEDrillDownReadOnly o)
|
||||||
{
|
{
|
||||||
VETreeNode tn = new VETreeNode(o);
|
VETreeNode tn = new VETreeNode(o);
|
||||||
SelectedNode.Nodes.Add(tn);
|
SelectedNode.Nodes.Add(tn);
|
||||||
}
|
}
|
||||||
private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1344,7 +1360,7 @@ namespace Volian.Controls.Library
|
|||||||
_currentPri = pri;
|
_currentPri = pri;
|
||||||
using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID))
|
using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID))
|
||||||
{
|
{
|
||||||
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
||||||
if (ril.Count == 0) return; // no versions to list
|
if (ril.Count == 0) return; // no versions to list
|
||||||
MenuItem mi = menuItemCollection.Add("Versions");
|
MenuItem mi = menuItemCollection.Add("Versions");
|
||||||
int lastApprovedRevisionID = 0;
|
int lastApprovedRevisionID = 0;
|
||||||
@@ -1425,7 +1441,7 @@ namespace Volian.Controls.Library
|
|||||||
RevisionConfig rc = ri.MyConfig as RevisionConfig;
|
RevisionConfig rc = ri.MyConfig as RevisionConfig;
|
||||||
// bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures.
|
// bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures.
|
||||||
int applIdx = rc.Applicability_Index;
|
int applIdx = rc.Applicability_Index;
|
||||||
string str = (applIdx > 0)?_currentPri.MyDocVersion.UnitNames[applIdx-1] +"_":""; // if parent/child get the defined child name to inlcude the export filename
|
string str = (applIdx > 0) ? _currentPri.MyDocVersion.UnitNames[applIdx - 1] + "_" : ""; // if parent/child get the defined child name to inlcude the export filename
|
||||||
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
|
||||||
xd.LoadXml(ri.LatestVersion.ApprovedXML);
|
xd.LoadXml(ri.LatestVersion.ApprovedXML);
|
||||||
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
|
string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
|
||||||
@@ -1473,12 +1489,12 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
MenuItem mip = mi.Parent as MenuItem;
|
MenuItem mip = mi.Parent as MenuItem;
|
||||||
//B2021-086 Added the check for the last revision stage is an Approved stage
|
//B2021-086 Added the check for the last revision stage is an Approved stage
|
||||||
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved!=0)
|
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
|
||||||
superceded = true;
|
superceded = true;
|
||||||
}
|
}
|
||||||
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
||||||
OnViewPDF(sender, args);
|
OnViewPDF(sender, args);
|
||||||
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
|
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
|
||||||
}
|
}
|
||||||
void MultiUnitApprovedRevision_Click(object sender, EventArgs e)
|
void MultiUnitApprovedRevision_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -1591,7 +1607,7 @@ namespace Volian.Controls.Library
|
|||||||
// 'from' is object copied
|
// 'from' is object copied
|
||||||
// 'to' is object where paste was selected from
|
// 'to' is object where paste was selected from
|
||||||
#region Menu_Paste_ToDocVersion
|
#region Menu_Paste_ToDocVersion
|
||||||
if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc
|
if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc
|
||||||
{
|
{
|
||||||
if (iiClipboard.IsProcedure)
|
if (iiClipboard.IsProcedure)
|
||||||
{
|
{
|
||||||
@@ -1601,7 +1617,7 @@ namespace Volian.Controls.Library
|
|||||||
// 3) 'to' docversion is 'source' and 'from' procedure is within this docversion
|
// 3) 'to' docversion is 'source' and 'from' procedure is within this docversion
|
||||||
// 4) 'to' docVersion is 'enhanced' and 'from' procedure is not
|
// 4) 'to' docVersion is 'enhanced' and 'from' procedure is not
|
||||||
bool canPaste = false;
|
bool canPaste = false;
|
||||||
|
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
DocVersionConfig dvc = dvi.DocVersionConfig;
|
DocVersionConfig dvc = dvi.DocVersionConfig;
|
||||||
bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0;
|
bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0;
|
||||||
@@ -1622,7 +1638,7 @@ namespace Volian.Controls.Library
|
|||||||
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
|
||||||
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
|
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1633,7 +1649,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null;
|
SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null;
|
||||||
#region Menu_Paste_ToFromProcedure
|
#region Menu_Paste_ToFromProcedure
|
||||||
if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after
|
if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after
|
||||||
{
|
{
|
||||||
// Enhanced considerations, in order to paste a procedure around another procedure: NOTE that an 'enhanced' procedure cannot be in paste buffer!
|
// Enhanced considerations, in order to paste a procedure around another procedure: NOTE that an 'enhanced' procedure cannot be in paste buffer!
|
||||||
// 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced)
|
// 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced)
|
||||||
@@ -1657,16 +1673,16 @@ namespace Volian.Controls.Library
|
|||||||
bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure;
|
bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure;
|
||||||
bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool prCanPaste = false;
|
bool prCanPaste = false;
|
||||||
if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1)
|
if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1)
|
||||||
// else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false
|
// else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false
|
||||||
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
|
else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3)
|
||||||
{
|
{
|
||||||
prCanPaste = true;
|
prCanPaste = true;
|
||||||
okToReplace = false;
|
okToReplace = false;
|
||||||
}
|
}
|
||||||
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4)
|
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4)
|
||||||
//else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false
|
//else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false
|
||||||
//else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false
|
//else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false
|
||||||
if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation.
|
||||||
if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click));
|
if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click));
|
||||||
if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click));
|
if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click));
|
||||||
@@ -1698,9 +1714,9 @@ namespace Volian.Controls.Library
|
|||||||
bool scFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
bool scFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
||||||
bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool scCanPaste = false;
|
bool scCanPaste = false;
|
||||||
if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1)
|
if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1)
|
||||||
else if (prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true;
|
else if (prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true;
|
||||||
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3)
|
else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3)
|
||||||
if (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation.
|
||||||
if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click));
|
if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
@@ -1724,13 +1740,13 @@ namespace Volian.Controls.Library
|
|||||||
bool secFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
bool secFromIsEnhanced = iiClipboard.IsEnhancedSection;
|
||||||
bool secFromIsSource = secFromCfg.MyEnhancedDocuments != null && secFromCfg.MyEnhancedDocuments.Count > 0 && secFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool secFromIsSource = secFromCfg.MyEnhancedDocuments != null && secFromCfg.MyEnhancedDocuments.Count > 0 && secFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool secCanPaste = false;
|
bool secCanPaste = false;
|
||||||
if (!secToIsEnhanced && !secToIsSource && !secFromIsEnhanced && !secFromIsSource) secCanPaste = true; // 1)
|
if (!secToIsEnhanced && !secToIsSource && !secFromIsEnhanced && !secFromIsSource) secCanPaste = true; // 1)
|
||||||
else if (secToIsSource && !secFromIsEnhanced && !secFromIsSource) // 2)
|
else if (secToIsSource && !secFromIsEnhanced && !secFromIsSource) // 2)
|
||||||
{
|
{
|
||||||
secCanPaste = true;
|
secCanPaste = true;
|
||||||
okToReplace = false;
|
okToReplace = false;
|
||||||
}
|
}
|
||||||
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) secCanPaste = true; // 3)
|
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) secCanPaste = true; // 3)
|
||||||
if (iiClipboard.IsRtfRaw) secCanPaste = okToReplace = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) secCanPaste = okToReplace = false; // never paste an equation.
|
||||||
if (secCanPaste) cm.MenuItems.Add("Paste Section Before", new EventHandler(mi_Click));
|
if (secCanPaste) cm.MenuItems.Add("Paste Section Before", new EventHandler(mi_Click));
|
||||||
if (okToReplace && secCanPaste) cm.MenuItems.Add("Replace Existing Section", new EventHandler(mi_Click));
|
if (okToReplace && secCanPaste) cm.MenuItems.Add("Replace Existing Section", new EventHandler(mi_Click));
|
||||||
@@ -1760,9 +1776,9 @@ namespace Volian.Controls.Library
|
|||||||
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
||||||
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool stpCanPaste = false;
|
bool stpCanPaste = false;
|
||||||
if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
||||||
else if (secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 2)
|
else if (secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 2)
|
||||||
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3)
|
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3)
|
||||||
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
||||||
if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click));
|
if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
@@ -1786,8 +1802,8 @@ namespace Volian.Controls.Library
|
|||||||
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep;
|
||||||
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0;
|
||||||
bool stpCanPaste = false;
|
bool stpCanPaste = false;
|
||||||
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1)
|
||||||
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
|
else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2)
|
||||||
{
|
{
|
||||||
stpCanPaste = true;
|
stpCanPaste = true;
|
||||||
okToReplace = false;
|
okToReplace = false;
|
||||||
@@ -1795,7 +1811,7 @@ namespace Volian.Controls.Library
|
|||||||
else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3
|
else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3
|
||||||
{
|
{
|
||||||
stpCanPaste = true;
|
stpCanPaste = true;
|
||||||
if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps
|
if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps
|
||||||
}
|
}
|
||||||
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation.
|
||||||
if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click));
|
if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click));
|
||||||
@@ -1825,7 +1841,7 @@ namespace Volian.Controls.Library
|
|||||||
OnPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Print All Procedures for":
|
case "Print All Procedures for":
|
||||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag));
|
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Approve":
|
case "Approve":
|
||||||
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
@@ -1837,10 +1853,10 @@ namespace Volian.Controls.Library
|
|||||||
OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Create Continuous Action Summary":
|
case "Create Continuous Action Summary":
|
||||||
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag));
|
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Create Time Critical Action Summary":
|
case "Create Time Critical Action Summary":
|
||||||
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag));
|
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (mip.Text.StartsWith("Showing Change Bars Starting"))
|
if (mip.Text.StartsWith("Showing Change Bars Starting"))
|
||||||
@@ -1878,7 +1894,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (selprc.IsEnhancedProcedure)
|
if (selprc.IsEnhancedProcedure)
|
||||||
{
|
{
|
||||||
selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked
|
selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked
|
||||||
}
|
}
|
||||||
else // from source
|
else // from source
|
||||||
{
|
{
|
||||||
@@ -1886,7 +1902,7 @@ namespace Volian.Controls.Library
|
|||||||
if (hasValidConnectingProc)
|
if (hasValidConnectingProc)
|
||||||
{
|
{
|
||||||
ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID);
|
ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID);
|
||||||
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc);
|
selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc);
|
||||||
@@ -1906,7 +1922,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
ItemInfo lprc = ItemInfo.Get(ed.ItemID);
|
ItemInfo lprc = ItemInfo.Get(ed.ItemID);
|
||||||
bool hasValidConnectingProc = CheckForValidEnhLink(lprc);
|
bool hasValidConnectingProc = CheckForValidEnhLink(lprc);
|
||||||
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
||||||
if (hasValidConnectingProc)
|
if (hasValidConnectingProc)
|
||||||
lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc);
|
lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc);
|
||||||
else
|
else
|
||||||
@@ -1930,27 +1946,27 @@ namespace Volian.Controls.Library
|
|||||||
OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0));
|
OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text.StartsWith("Collapse"))
|
if (mi.Text.StartsWith("Collapse"))
|
||||||
{
|
{
|
||||||
CollapseProcedures();
|
CollapseProcedures();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text == "Print Transition Report")
|
if (mi.Text == "Print Transition Report")
|
||||||
{
|
{
|
||||||
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
|
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
||||||
{
|
{
|
||||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
||||||
{
|
{
|
||||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
||||||
{
|
{
|
||||||
OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
return;
|
return;
|
||||||
@@ -1972,7 +1988,7 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
break;
|
||||||
case "New Folder":
|
case "New Folder":
|
||||||
SelectedNode.Expand();
|
SelectedNode.Expand();
|
||||||
tv_NodeNew(MenuSelections.Folder);
|
tv_NodeNew(MenuSelections.Folder);
|
||||||
break;
|
break;
|
||||||
case "Create Working Draft":
|
case "Create Working Draft":
|
||||||
SelectedNode.Expand();
|
SelectedNode.Expand();
|
||||||
@@ -2016,7 +2032,7 @@ namespace Volian.Controls.Library
|
|||||||
tv_NodeCopy();
|
tv_NodeCopy();
|
||||||
break;
|
break;
|
||||||
// lots of paste options:
|
// lots of paste options:
|
||||||
case "Paste Procedure":
|
case "Paste Procedure":
|
||||||
case "Paste Procedure Before":
|
case "Paste Procedure Before":
|
||||||
case "Paste Procedure After":
|
case "Paste Procedure After":
|
||||||
case "Paste Section":
|
case "Paste Section":
|
||||||
@@ -2041,7 +2057,7 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case "Delete":
|
case "Delete":
|
||||||
if (tv_NodeDelete())
|
if (tv_NodeDelete())
|
||||||
{
|
{
|
||||||
@@ -2107,14 +2123,14 @@ namespace Volian.Controls.Library
|
|||||||
UpdateROValues(SelectedNode as VETreeNode);
|
UpdateROValues(SelectedNode as VETreeNode);
|
||||||
break;
|
break;
|
||||||
case "Create Continuous Action Summary":
|
case "Create Continuous Action Summary":
|
||||||
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0));
|
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
break;
|
break;
|
||||||
// F2022-024 Time Critical Action Summary
|
// F2022-024 Time Critical Action Summary
|
||||||
case "Create Time Critical Action Summary":
|
case "Create Time Critical Action Summary":
|
||||||
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0));
|
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
break;
|
break;
|
||||||
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
||||||
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
||||||
case "CANNOT PASTE HERE. Click for more information...":
|
case "CANNOT PASTE HERE. Click for more information...":
|
||||||
FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" +
|
FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" +
|
||||||
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
|
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
|
||||||
@@ -2156,7 +2172,7 @@ namespace Volian.Controls.Library
|
|||||||
foreach (VETreeNode tnc in tn.Nodes)
|
foreach (VETreeNode tnc in tn.Nodes)
|
||||||
CollapseProcedures(tnc);
|
CollapseProcedures(tnc);
|
||||||
if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null)
|
if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null)
|
||||||
tn.Collapse();
|
tn.Collapse();
|
||||||
_doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node
|
_doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node
|
||||||
}
|
}
|
||||||
private void tv_RemoveChgIds()
|
private void tv_RemoveChgIds()
|
||||||
@@ -2211,12 +2227,12 @@ namespace Volian.Controls.Library
|
|||||||
FinalProgressBarMessage = "Cannot check-out Working Draft";
|
FinalProgressBarMessage = "Cannot check-out Working Draft";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error
|
Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error
|
||||||
int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion);
|
int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion);
|
||||||
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
||||||
{
|
{
|
||||||
swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder
|
swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder
|
||||||
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
||||||
if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed
|
if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed
|
||||||
{
|
{
|
||||||
// only load the RO.fst
|
// only load the RO.fst
|
||||||
@@ -2244,7 +2260,7 @@ namespace Volian.Controls.Library
|
|||||||
swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
|
swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ProgressBarItem _ProgressBar=null;
|
private ProgressBarItem _ProgressBar = null;
|
||||||
public ProgressBarItem ProgressBar
|
public ProgressBarItem ProgressBar
|
||||||
{
|
{
|
||||||
get { return _ProgressBar; }
|
get { return _ProgressBar; }
|
||||||
@@ -2357,7 +2373,7 @@ namespace Volian.Controls.Library
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// C2017-003: ro data in sql server, check for sql connection string
|
// C2017-003: ro data in sql server, check for sql connection string
|
||||||
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
||||||
roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\"";
|
roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\"";
|
||||||
// C2021-026 pass in Parent/Child information (list of the children)
|
// C2021-026 pass in Parent/Child information (list of the children)
|
||||||
// B2022-019 look at all DocVersions to find ParentChild information
|
// B2022-019 look at all DocVersions to find ParentChild information
|
||||||
@@ -2422,7 +2438,7 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
// assume that item to paste is a procedure, otherwise the menuing would not have
|
// assume that item to paste is a procedure, otherwise the menuing would not have
|
||||||
// included the paste options
|
// included the paste options
|
||||||
tn = (VETreeNode) tn.Nodes[tn.Nodes.Count - 1];
|
tn = (VETreeNode)tn.Nodes[tn.Nodes.Count - 1];
|
||||||
p = "After";
|
p = "After";
|
||||||
}
|
}
|
||||||
else // this is an empty docversion:
|
else // this is an empty docversion:
|
||||||
@@ -2451,7 +2467,7 @@ namespace Volian.Controls.Library
|
|||||||
PasteAsChild(tn, iiClipboard.ItemID);
|
PasteAsChild(tn, iiClipboard.ItemID);
|
||||||
|
|
||||||
//if (p.IndexOf("Replace") <= -1)
|
//if (p.IndexOf("Replace") <= -1)
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
|
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
|
||||||
@@ -2468,7 +2484,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
ItemInfo newProc = dvi.PasteChild(copyStartID);
|
ItemInfo newProc = dvi.PasteChild(copyStartID);
|
||||||
VETreeNode tn1 = new VETreeNode(newProc);
|
VETreeNode tn1 = new VETreeNode(newProc);
|
||||||
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
||||||
SelectedNode = tn1;
|
SelectedNode = tn1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2505,7 +2521,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
if (pasteSectIntoEmptySect)
|
if (pasteSectIntoEmptySect)
|
||||||
{
|
{
|
||||||
tn.ChildrenLoaded = false; // force a reload of treenode
|
tn.ChildrenLoaded = false; // force a reload of treenode
|
||||||
tn.LoadChildren(true);
|
tn.LoadChildren(true);
|
||||||
}
|
}
|
||||||
SelectedNode = tn;
|
SelectedNode = tn;
|
||||||
@@ -2520,7 +2536,7 @@ namespace Volian.Controls.Library
|
|||||||
// the item to be pasted in the step editor and the tree.
|
// the item to be pasted in the step editor and the tree.
|
||||||
ItemInfo newItemInfo = null;
|
ItemInfo newItemInfo = null;
|
||||||
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
||||||
if (!ii.IsProcedure)
|
if (!ii.IsProcedure)
|
||||||
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false);
|
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false);
|
||||||
if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type)))
|
if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type)))
|
||||||
{
|
{
|
||||||
@@ -2543,8 +2559,8 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
private void PasteReplace(VETreeNode tn, int copyStartID, TreeNode treeNodeReplace)
|
private void PasteReplace(VETreeNode tn, int copyStartID, TreeNode treeNodeReplace)
|
||||||
{
|
{
|
||||||
VETreeNode prevtn = (VETreeNode) tn.PrevNode;
|
VETreeNode prevtn = (VETreeNode)tn.PrevNode;
|
||||||
VETreeNode partn = (VETreeNode) tn.Parent;
|
VETreeNode partn = (VETreeNode)tn.Parent;
|
||||||
ItemInfo ii = tn.VEObject as ItemInfo;
|
ItemInfo ii = tn.VEObject as ItemInfo;
|
||||||
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
||||||
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true);
|
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true);
|
||||||
@@ -2563,7 +2579,7 @@ namespace Volian.Controls.Library
|
|||||||
// B2018-047: was crashing on the following line (before change it was casting the result to a VETreeNote when the partn.FirstNode was just a TreeNode)
|
// B2018-047: was crashing on the following line (before change it was casting the result to a VETreeNote when the partn.FirstNode was just a TreeNode)
|
||||||
SelectedNode = prevtn != null ? prevtn.NextNode : partn.FirstNode;
|
SelectedNode = prevtn != null ? prevtn.NextNode : partn.FirstNode;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public void PasteRepalceEmpty(VETreeNode tn, int copyStartID)
|
public void PasteRepalceEmpty(VETreeNode tn, int copyStartID)
|
||||||
{
|
{
|
||||||
@@ -2582,7 +2598,7 @@ namespace Volian.Controls.Library
|
|||||||
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
||||||
SelectedNode = tn1;
|
SelectedNode = tn1;
|
||||||
}
|
}
|
||||||
private void tv_NodeCopy()
|
private void tv_NodeCopy()
|
||||||
{
|
{
|
||||||
if (SelectedNode == null) return;
|
if (SelectedNode == null) return;
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
@@ -2594,7 +2610,7 @@ namespace Volian.Controls.Library
|
|||||||
private void SetupNodeProperties()
|
private void SetupNodeProperties()
|
||||||
{
|
{
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
if (tn==null)return;
|
if (tn == null) return;
|
||||||
|
|
||||||
if ((tn.VEObject as FolderInfo) != null)
|
if ((tn.VEObject as FolderInfo) != null)
|
||||||
OpenProperties(tn.VEObject as FolderInfo);
|
OpenProperties(tn.VEObject as FolderInfo);
|
||||||
@@ -2606,7 +2622,7 @@ namespace Volian.Controls.Library
|
|||||||
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID;
|
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID;
|
||||||
OpenProperties(tn.VEObject as DocVersionInfo);
|
OpenProperties(tn.VEObject as DocVersionInfo);
|
||||||
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID)
|
if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID)
|
||||||
OnTabDisplay(this,new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"));
|
OnTabDisplay(this, new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"));
|
||||||
}
|
}
|
||||||
else if ((tn.VEObject as ProcedureInfo) != null)
|
else if ((tn.VEObject as ProcedureInfo) != null)
|
||||||
OpenProperties(tn.VEObject as ProcedureInfo);
|
OpenProperties(tn.VEObject as ProcedureInfo);
|
||||||
@@ -2620,7 +2636,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
using (Folder folder = folderInfo.Get())
|
using (Folder folder = folderInfo.Get())
|
||||||
{
|
{
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(DocVersionInfo dvInfo)
|
private void OpenProperties(DocVersionInfo dvInfo)
|
||||||
@@ -2634,7 +2650,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
using (Procedure proc = procInfo.Get())
|
using (Procedure proc = procInfo.Get())
|
||||||
{
|
{
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(SectionInfo sectInfo)
|
private void OpenProperties(SectionInfo sectInfo)
|
||||||
@@ -2647,7 +2663,7 @@ namespace Volian.Controls.Library
|
|||||||
title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title);
|
title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title);
|
||||||
else
|
else
|
||||||
title = string.Format("{0} Properties", sectInfo.SectionConfig.Title);
|
title = string.Format("{0} Properties", sectInfo.SectionConfig.Title);
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(StepInfo stpinfo)
|
private void OpenProperties(StepInfo stpinfo)
|
||||||
@@ -2701,7 +2717,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (newtype == MenuSelections.DocVersion)
|
if (newtype == MenuSelections.DocVersion)
|
||||||
{
|
{
|
||||||
int dvid = -1; // flag to allow user to cancel from dialog & then we remove it.
|
int dvid = -1; // flag to allow user to cancel from dialog & then we remove it.
|
||||||
using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null))
|
using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null))
|
||||||
{
|
{
|
||||||
ShowBrokenRules(docversion.BrokenRulesCollection);
|
ShowBrokenRules(docversion.BrokenRulesCollection);
|
||||||
@@ -2710,7 +2726,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
docversion.Save();
|
docversion.Save();
|
||||||
tn = new VETreeNode(_LastDocVersionInfo);
|
tn = new VETreeNode(_LastDocVersionInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||||
parentfolder.Reset_ChildFolders();
|
parentfolder.Reset_ChildFolders();
|
||||||
parentfolder.Reset_FolderDocVersions();
|
parentfolder.Reset_FolderDocVersions();
|
||||||
}
|
}
|
||||||
@@ -2721,7 +2737,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else if (newtype == MenuSelections.Folder)
|
else if (newtype == MenuSelections.Folder)
|
||||||
{
|
{
|
||||||
int f1 = -1; // flag to allow user to cancel from dialog & then we remove it.
|
int f1 = -1; // flag to allow user to cancel from dialog & then we remove it.
|
||||||
string uniquename = _LastFolderInfo.UniqueChildName("New Folder");
|
string uniquename = _LastFolderInfo.UniqueChildName("New Folder");
|
||||||
using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID))
|
using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID))
|
||||||
{
|
{
|
||||||
@@ -2733,20 +2749,20 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
folder.Save();
|
folder.Save();
|
||||||
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
|
tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist.
|
SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist.
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
f1 = folder.FolderID;
|
f1 = folder.FolderID;
|
||||||
}
|
}
|
||||||
if (f1 != -1) Folder.Delete(f1);
|
if (f1 != -1) Folder.Delete(f1);
|
||||||
}
|
}
|
||||||
else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore)
|
else if (newtype == MenuSelections.FolderAfter || newtype == MenuSelections.FolderBefore)
|
||||||
{
|
{
|
||||||
int f2 = -1;
|
int f2 = -1;
|
||||||
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder");
|
||||||
int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0);
|
int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0);
|
||||||
FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID);
|
FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID);
|
||||||
double? myorder = parfolderinfo.NewManualOrder(myindex);
|
double? myorder = parfolderinfo.NewManualOrder(myindex);
|
||||||
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
|
using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID))
|
||||||
{
|
{
|
||||||
ShowBrokenRules(folder.BrokenRulesCollection);
|
ShowBrokenRules(folder.BrokenRulesCollection);
|
||||||
@@ -2770,7 +2786,7 @@ namespace Volian.Controls.Library
|
|||||||
else if (newtype == MenuSelections.Procedure)
|
else if (newtype == MenuSelections.Procedure)
|
||||||
{
|
{
|
||||||
int p1 = -1;
|
int p1 = -1;
|
||||||
using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0))
|
using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count != 0 ? _LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count - 1] : null, null, "New Procedure", 0))
|
||||||
{
|
{
|
||||||
ShowBrokenRules(procedure.BrokenRulesCollection);
|
ShowBrokenRules(procedure.BrokenRulesCollection);
|
||||||
SetLastValues(ProcedureInfo.Get(procedure.ItemID));
|
SetLastValues(ProcedureInfo.Get(procedure.ItemID));
|
||||||
@@ -2779,8 +2795,8 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
procedure.Save();
|
procedure.Save();
|
||||||
tn = new VETreeNode(_LastProcedureInfo);
|
tn = new VETreeNode(_LastProcedureInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||||
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
||||||
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
||||||
if (procedure.MyProcedureInfo.CreateEnhanced)
|
if (procedure.MyProcedureInfo.CreateEnhanced)
|
||||||
{
|
{
|
||||||
@@ -2822,21 +2838,21 @@ namespace Volian.Controls.Library
|
|||||||
else
|
else
|
||||||
p2 = procedure.ItemID;
|
p2 = procedure.ItemID;
|
||||||
}
|
}
|
||||||
if (p2 != -1)
|
if (p2 != -1)
|
||||||
DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region InsertSection
|
#region InsertSection
|
||||||
else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list
|
else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list
|
||||||
{
|
{
|
||||||
string message = string.Empty;
|
string message = string.Empty;
|
||||||
if (_LastProcedureInfo != null)
|
if (_LastProcedureInfo != null)
|
||||||
if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message))
|
if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message))
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
OnUnPauseRefresh(this, null);
|
OnUnPauseRefresh(this, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int s1 = -1;
|
int s1 = -1;
|
||||||
if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null))
|
if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null))
|
||||||
{
|
{
|
||||||
@@ -2866,7 +2882,7 @@ namespace Volian.Controls.Library
|
|||||||
"If you would like to view or copy these hidden steps you will need to go\n" +
|
"If you would like to view or copy these hidden steps you will need to go\n" +
|
||||||
"into the properties of this section and check the Editable Data checkbox.\n" +
|
"into the properties of this section and check the Editable Data checkbox.\n" +
|
||||||
"You will then be able to view and copy those steps. When finished, open\n" +
|
"You will then be able to view and copy those steps. When finished, open\n" +
|
||||||
"the properties page again and uncheck the Editable Data checkbox.\n\n"+
|
"the properties page again and uncheck the Editable Data checkbox.\n\n" +
|
||||||
"Do you want to continue creating the subsection?";
|
"Do you want to continue creating the subsection?";
|
||||||
if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||||
{
|
{
|
||||||
@@ -2878,7 +2894,7 @@ namespace Volian.Controls.Library
|
|||||||
if (!hasMetaSubs) doPseudo = true;
|
if (!hasMetaSubs) doPseudo = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
using(Section section = CreateNewSection())
|
using (Section section = CreateNewSection())
|
||||||
{
|
{
|
||||||
ShowBrokenRules(section.BrokenRulesCollection);
|
ShowBrokenRules(section.BrokenRulesCollection);
|
||||||
SectionInfo savLastSectionInfo = _LastSectionInfo;
|
SectionInfo savLastSectionInfo = _LastSectionInfo;
|
||||||
@@ -2888,10 +2904,10 @@ namespace Volian.Controls.Library
|
|||||||
if (!doPseudo)
|
if (!doPseudo)
|
||||||
{
|
{
|
||||||
tn = new VETreeNode(_LastSectionInfo);
|
tn = new VETreeNode(_LastSectionInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||||
// Enhanced section:
|
// Enhanced section:
|
||||||
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
||||||
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||||
sectiontmp.Dispose();
|
sectiontmp.Dispose();
|
||||||
@@ -2902,7 +2918,7 @@ namespace Volian.Controls.Library
|
|||||||
// may have to add a 'steps' node if a step(s) already exist...
|
// may have to add a 'steps' node if a step(s) already exist...
|
||||||
ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo;
|
ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo;
|
||||||
int cpindx = 0;
|
int cpindx = 0;
|
||||||
if (SelectedNode.Nodes.Count>0)
|
if (SelectedNode.Nodes.Count > 0)
|
||||||
{
|
{
|
||||||
VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode;
|
VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode;
|
||||||
// B2017-014: removed code that was adding a 2nd section part node. and also select node to
|
// B2017-014: removed code that was adding a 2nd section part node. and also select node to
|
||||||
@@ -2912,13 +2928,13 @@ namespace Volian.Controls.Library
|
|||||||
// B2017-014: removed code that was adding a 2nd section part node.
|
// B2017-014: removed code that was adding a 2nd section part node.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // Properties was canceled out of:
|
else // Properties was canceled out of:
|
||||||
s1 = section.ItemID;
|
s1 = section.ItemID;
|
||||||
}
|
}
|
||||||
if (s1 != -1)
|
if (s1 != -1)
|
||||||
{
|
{
|
||||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||||
_LastTreeNode.ChildrenLoaded = false;
|
_LastTreeNode.ChildrenLoaded = false;
|
||||||
_LastTreeNode.RefreshNode();
|
_LastTreeNode.RefreshNode();
|
||||||
_LastTreeNode.Collapse();
|
_LastTreeNode.Collapse();
|
||||||
@@ -2946,14 +2962,14 @@ namespace Volian.Controls.Library
|
|||||||
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK)
|
if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK)
|
||||||
{
|
{
|
||||||
int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1);
|
int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1);
|
||||||
int itemido = (indx >= par.Nodes.Count)?-1:(((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID;
|
int itemido = (indx >= par.Nodes.Count) ? -1 : (((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID;
|
||||||
if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido !=section.ItemID)
|
if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido != section.ItemID)
|
||||||
{
|
{
|
||||||
tn = new VETreeNode(_LastSectionInfo);
|
tn = new VETreeNode(_LastSectionInfo);
|
||||||
par.Nodes.Insert(indx, tn);
|
par.Nodes.Insert(indx, tn);
|
||||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||||
// Enhanced section:
|
// Enhanced section:
|
||||||
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
||||||
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||||
sectiontmp.Dispose();
|
sectiontmp.Dispose();
|
||||||
@@ -2965,7 +2981,7 @@ namespace Volian.Controls.Library
|
|||||||
if (s2 != -1)
|
if (s2 != -1)
|
||||||
{
|
{
|
||||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||||
_LastTreeNode.ChildrenLoaded = false;
|
_LastTreeNode.ChildrenLoaded = false;
|
||||||
_LastTreeNode.RefreshNode();
|
_LastTreeNode.RefreshNode();
|
||||||
_LastTreeNode.Collapse();
|
_LastTreeNode.Collapse();
|
||||||
@@ -2973,7 +2989,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region InsertStep
|
#region InsertStep
|
||||||
else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree.
|
else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree.
|
||||||
{
|
{
|
||||||
string message = string.Empty;
|
string message = string.Empty;
|
||||||
if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||||
@@ -3050,7 +3066,7 @@ namespace Volian.Controls.Library
|
|||||||
using (Procedure newenhProcedure = Procedure.MakeProcedure(enhDVInfo, enhDVInfo.Procedures.Count != 0 ? enhDVInfo.Procedures[enhDVInfo.Procedures.Count - 1] : null, null, "New Procedure", 0))
|
using (Procedure newenhProcedure = Procedure.MakeProcedure(enhDVInfo, enhDVInfo.Procedures.Count != 0 ? enhDVInfo.Procedures[enhDVInfo.Procedures.Count - 1] : null, null, "New Procedure", 0))
|
||||||
{
|
{
|
||||||
SaveEnhancedForProcedure(sourceProc, newenhProcedure, ded.Type);
|
SaveEnhancedForProcedure(sourceProc, newenhProcedure, ded.Type);
|
||||||
RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure
|
RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3148,7 +3164,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
SectionConfig newenhcfg = new SectionConfig(newenhSection);
|
SectionConfig newenhcfg = new SectionConfig(newenhSection);
|
||||||
newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID);
|
newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID);
|
||||||
newenhcfg.SaveEnhancedDocuments(); // does this save data?
|
newenhcfg.SaveEnhancedDocuments(); // does this save data?
|
||||||
using (Content c1 = Content.Get(newenhSection.ContentID))
|
using (Content c1 = Content.Get(newenhSection.ContentID))
|
||||||
{
|
{
|
||||||
c1.Config = newenhcfg.ToString();
|
c1.Config = newenhcfg.ToString();
|
||||||
@@ -3162,7 +3178,7 @@ namespace Volian.Controls.Library
|
|||||||
cs.Save();
|
cs.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Section CreateNewSection()
|
private Section CreateNewSection()
|
||||||
{
|
{
|
||||||
// B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections,
|
// B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections,
|
||||||
@@ -3202,7 +3218,7 @@ namespace Volian.Controls.Library
|
|||||||
// The parent step was not open in the step editor, just create new step(s) and add treenode.
|
// The parent step was not open in the step editor, just create new step(s) and add treenode.
|
||||||
int newId = -1;
|
int newId = -1;
|
||||||
// B2020-076: if this step has a template, insert template steps.
|
// B2020-076: if this step has a template, insert template steps.
|
||||||
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
||||||
if (topType != -1)
|
if (topType != -1)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = null;
|
ItemInfo tmp = null;
|
||||||
@@ -3229,12 +3245,12 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
// see if enhanced related steps need created:
|
// see if enhanced related steps need created:
|
||||||
SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section
|
SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section
|
||||||
if (scfgE != null && scfgE.Section_LnkEnh=="Y")
|
if (scfgE != null && scfgE.Section_LnkEnh == "Y")
|
||||||
{
|
{
|
||||||
// set up which item to insert from based on whether editor was open (see comment from 11/17 above).
|
// set up which item to insert from based on whether editor was open (see comment from 11/17 above).
|
||||||
EnhancedDocuments enhdocs = null;
|
EnhancedDocuments enhdocs = null;
|
||||||
ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child;
|
ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child;
|
||||||
if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step.
|
if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step.
|
||||||
{
|
{
|
||||||
addpart = ItemInfo.EAddpingPart.After;
|
addpart = ItemInfo.EAddpingPart.After;
|
||||||
ItemInfo lstSrc = _LastItemInfo.MyPrevious;
|
ItemInfo lstSrc = _LastItemInfo.MyPrevious;
|
||||||
@@ -3406,7 +3422,7 @@ namespace Volian.Controls.Library
|
|||||||
result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete",
|
result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete",
|
||||||
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||||
}
|
}
|
||||||
if (_LastProcedureInfo != null || result == DialogResult.Yes)
|
if (_LastProcedureInfo != null || result == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
if (_LastFolderInfo != null)
|
if (_LastFolderInfo != null)
|
||||||
{
|
{
|
||||||
@@ -3422,7 +3438,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments)
|
foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments)
|
||||||
{
|
{
|
||||||
if (dve.Type != 0)
|
if (dve.Type != 0)
|
||||||
DocVersion.Delete(dve.VersionID);
|
DocVersion.Delete(dve.VersionID);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3468,7 +3484,7 @@ namespace Volian.Controls.Library
|
|||||||
if (ed.Type != 0) enhIds.Add(ed.ItemID);
|
if (ed.Type != 0) enhIds.Add(ed.ItemID);
|
||||||
// always return false because an event gets fired to delete tree nodes.
|
// always return false because an event gets fired to delete tree nodes.
|
||||||
if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false;
|
if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false;
|
||||||
|
|
||||||
_LastProcedureInfo = null;
|
_LastProcedureInfo = null;
|
||||||
foreach (int enhId in enhIds)
|
foreach (int enhId in enhIds)
|
||||||
{
|
{
|
||||||
@@ -3512,7 +3528,7 @@ namespace Volian.Controls.Library
|
|||||||
// just clear enhanced links back
|
// just clear enhanced links back
|
||||||
_LastSectionInfo.ClearEnhancedSectionLink();
|
_LastSectionInfo.ClearEnhancedSectionLink();
|
||||||
}
|
}
|
||||||
OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true));
|
OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo, true));
|
||||||
// always return false because an event gets fired to delete tree nodes.
|
// always return false because an event gets fired to delete tree nodes.
|
||||||
if (!DeleteItemInfoAndChildren(_LastSectionInfo))
|
if (!DeleteItemInfoAndChildren(_LastSectionInfo))
|
||||||
{
|
{
|
||||||
@@ -3567,6 +3583,41 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveFolder(int folderId)
|
||||||
|
{
|
||||||
|
TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes);
|
||||||
|
if (nodeToRemove != null)
|
||||||
|
{
|
||||||
|
// Perform the removal logic
|
||||||
|
nodeToRemove.Remove(); // This removes the node from its parent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private TreeNode FindNodeById(int folderId, TreeNodeCollection nodes)
|
||||||
|
{
|
||||||
|
foreach (TreeNode node in nodes)
|
||||||
|
{
|
||||||
|
VETreeNode vetNode = node as VETreeNode;
|
||||||
|
if (vetNode != null)
|
||||||
|
{
|
||||||
|
FolderInfo folderInfo = vetNode.VEObject as FolderInfo;
|
||||||
|
if (folderInfo != null && folderInfo.FolderID == folderId)
|
||||||
|
{
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TreeNode foundNode = FindNodeById(folderId, node.Nodes);
|
||||||
|
if (foundNode != null)
|
||||||
|
{
|
||||||
|
return foundNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private bool DeleteItemInfoAndChildren(ItemInfo ii)
|
private bool DeleteItemInfoAndChildren(ItemInfo ii)
|
||||||
{
|
{
|
||||||
DateTime dtStart = DateTime.Now;
|
DateTime dtStart = DateTime.Now;
|
||||||
|
Reference in New Issue
Block a user