Compare commits
10 Commits
C2024-005
...
112edd1c8a
| Author | SHA1 | Date | |
|---|---|---|---|
| 112edd1c8a | |||
| 819c1bbec4 | |||
| 6b6968561b | |||
| 24fbb69e25 | |||
| 79751732a3 | |||
| e6e62ed2c8 | |||
| 8f2cbf4081 | |||
|
|
c25f501909 | ||
|
|
bf72a6bf78 | ||
|
|
a1380dbb8a |
@@ -23519,90 +23519,6 @@ GO
|
|||||||
==========================================================================================================
|
==========================================================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
==========================================================================================================
|
|
||||||
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 |
|
||||||
@@ -23636,8 +23552,8 @@ BEGIN TRY -- Try Block
|
|||||||
DECLARE @RevDate varchar(255)
|
DECLARE @RevDate varchar(255)
|
||||||
DECLARE @RevDescription varchar(255)
|
DECLARE @RevDescription varchar(255)
|
||||||
|
|
||||||
set @RevDate = '07/29/2024 11:24'
|
set @RevDate = '07/18/2024 11:24'
|
||||||
set @RevDescription = 'C2021-059 Add SQL for Admin tool delete folders.'
|
set @RevDescription = 'C2024-005 Add an Admin tool that can delete a group of annotations.'
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -97,8 +97,6 @@
|
|||||||
this.labelX8 = new DevComponents.DotNetBar.LabelX();
|
this.labelX8 = new DevComponents.DotNetBar.LabelX();
|
||||||
this.line2 = new DevComponents.DotNetBar.Controls.Line();
|
this.line2 = new DevComponents.DotNetBar.Controls.Line();
|
||||||
this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
|
this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
|
||||||
this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
|
|
||||||
this.btn_ShowUsers = new DevComponents.DotNetBar.ButtonX();
|
|
||||||
this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
|
this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
|
||||||
this.separator1 = new DevComponents.DotNetBar.Separator();
|
this.separator1 = new DevComponents.DotNetBar.Separator();
|
||||||
this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
|
this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
|
||||||
@@ -131,15 +129,11 @@
|
|||||||
this.sideNavPanel3.SuspendLayout();
|
this.sideNavPanel3.SuspendLayout();
|
||||||
this.sideNavPanel1.SuspendLayout();
|
this.sideNavPanel1.SuspendLayout();
|
||||||
this.sideNavPanel2.SuspendLayout();
|
this.sideNavPanel2.SuspendLayout();
|
||||||
this.sideNavPanel5.SuspendLayout();
|
|
||||||
this.panelEx4.SuspendLayout();
|
this.panelEx4.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// myTV
|
// myTV
|
||||||
//
|
//
|
||||||
this.myTV.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.myTV.CheckBoxes = true;
|
this.myTV.CheckBoxes = true;
|
||||||
this.myTV.Dock = System.Windows.Forms.DockStyle.Bottom;
|
this.myTV.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
this.myTV.Location = new System.Drawing.Point(0, 184);
|
this.myTV.Location = new System.Drawing.Point(0, 184);
|
||||||
@@ -472,7 +466,6 @@
|
|||||||
this.sideNav1.Controls.Add(this.sideNavPanel3);
|
this.sideNav1.Controls.Add(this.sideNavPanel3);
|
||||||
this.sideNav1.Controls.Add(this.sideNavPanel1);
|
this.sideNav1.Controls.Add(this.sideNavPanel1);
|
||||||
this.sideNav1.Controls.Add(this.sideNavPanel2);
|
this.sideNav1.Controls.Add(this.sideNavPanel2);
|
||||||
this.sideNav1.Controls.Add(this.sideNavPanel5);
|
|
||||||
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.sideNav1.EnableClose = false;
|
this.sideNav1.EnableClose = false;
|
||||||
this.sideNav1.EnableMaximize = false;
|
this.sideNav1.EnableMaximize = false;
|
||||||
@@ -506,31 +499,6 @@
|
|||||||
this.sideNavPanel4.Size = new System.Drawing.Size(291, 494);
|
this.sideNavPanel4.Size = new System.Drawing.Size(291, 494);
|
||||||
this.sideNavPanel4.TabIndex = 27;
|
this.sideNavPanel4.TabIndex = 27;
|
||||||
//
|
//
|
||||||
// sideNavPanel5
|
|
||||||
//
|
|
||||||
this.sideNavPanel5.Controls.Add(this.btn_ShowUsers);
|
|
||||||
this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.sideNavPanel5.Location = new System.Drawing.Point(81, 31);
|
|
||||||
this.sideNavPanel5.Name = "sideNavPanel5";
|
|
||||||
this.sideNavPanel5.Size = new System.Drawing.Size(299, 494);
|
|
||||||
this.sideNavPanel5.TabIndex = 14;
|
|
||||||
this.sideNavPanel5.Visible = false;
|
|
||||||
//
|
|
||||||
// btn_ShowUsers
|
|
||||||
//
|
|
||||||
this.btn_ShowUsers.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
|
||||||
this.btn_ShowUsers.Checked = true;
|
|
||||||
this.btn_ShowUsers.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
|
||||||
this.btn_ShowUsers.Location = new System.Drawing.Point(57, 37);
|
|
||||||
this.btn_ShowUsers.Name = "btn_ShowUsers";
|
|
||||||
this.btn_ShowUsers.Size = new System.Drawing.Size(171, 23);
|
|
||||||
this.btn_ShowUsers.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
|
||||||
this.superTooltip1.SetSuperTooltip(this.btn_ShowUsers, new DevComponents.DotNetBar.SuperTooltipInfo("Show Users", "", "This will return all of the users currently with open sessions in the database an" +
|
|
||||||
"d the details of any items they have checked out.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 80)));
|
|
||||||
this.btn_ShowUsers.TabIndex = 0;
|
|
||||||
this.btn_ShowUsers.Text = "Show Users";
|
|
||||||
this.btn_ShowUsers.Click += new System.EventHandler(this.btn_ShowUsers_Click);
|
|
||||||
//
|
|
||||||
// swDeleteFolder
|
// swDeleteFolder
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
@@ -591,15 +559,12 @@
|
|||||||
this.labelX14.Location = new System.Drawing.Point(85, 14);
|
this.labelX14.Location = new System.Drawing.Point(85, 14);
|
||||||
this.labelX14.Name = "labelX14";
|
this.labelX14.Name = "labelX14";
|
||||||
this.labelX14.Size = new System.Drawing.Size(186, 22);
|
this.labelX14.Size = new System.Drawing.Size(186, 22);
|
||||||
this.superTooltip1.SetSuperTooltip(this.labelX14, new DevComponents.DotNetBar.SuperTooltipInfo("Process Deletions", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 175)));
|
this.superTooltip1.SetSuperTooltip(this.labelX14, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(256, 175)));
|
||||||
this.labelX14.TabIndex = 36;
|
this.labelX14.TabIndex = 36;
|
||||||
this.labelX14.Text = "Delete Annotations";
|
this.labelX14.Text = "Delete Annotations";
|
||||||
//
|
//
|
||||||
// myTVdel
|
// myTVdel
|
||||||
//
|
//
|
||||||
this.myTVdel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.myTVdel.CheckBoxes = true;
|
this.myTVdel.CheckBoxes = true;
|
||||||
this.myTVdel.Dock = System.Windows.Forms.DockStyle.Bottom;
|
this.myTVdel.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
this.myTVdel.Location = new System.Drawing.Point(0, 127);
|
this.myTVdel.Location = new System.Drawing.Point(0, 127);
|
||||||
@@ -1250,7 +1215,8 @@
|
|||||||
// sideNavItmUsers
|
// sideNavItmUsers
|
||||||
//
|
//
|
||||||
this.sideNavItmUsers.Name = "sideNavItmUsers";
|
this.sideNavItmUsers.Name = "sideNavItmUsers";
|
||||||
this.sideNavItmUsers.Panel = this.sideNavPanel5;
|
this.sideNavItmUsers.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
|
||||||
|
this.buttonItem1});
|
||||||
this.sideNavItmUsers.Symbol = "";
|
this.sideNavItmUsers.Symbol = "";
|
||||||
this.sideNavItmUsers.Text = "Users";
|
this.sideNavItmUsers.Text = "Users";
|
||||||
this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
|
this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
|
||||||
@@ -1399,7 +1365,6 @@
|
|||||||
this.sideNavPanel3.ResumeLayout(false);
|
this.sideNavPanel3.ResumeLayout(false);
|
||||||
this.sideNavPanel1.ResumeLayout(false);
|
this.sideNavPanel1.ResumeLayout(false);
|
||||||
this.sideNavPanel2.ResumeLayout(false);
|
this.sideNavPanel2.ResumeLayout(false);
|
||||||
this.sideNavPanel5.ResumeLayout(false);
|
|
||||||
this.panelEx4.ResumeLayout(false);
|
this.panelEx4.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
@@ -1449,8 +1414,6 @@
|
|||||||
private DevComponents.DotNetBar.LabelX labelX8;
|
private DevComponents.DotNetBar.LabelX labelX8;
|
||||||
private DevComponents.DotNetBar.Controls.Line line2;
|
private DevComponents.DotNetBar.Controls.Line line2;
|
||||||
private DevComponents.DotNetBar.ButtonX btnRunRepair;
|
private DevComponents.DotNetBar.ButtonX btnRunRepair;
|
||||||
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel5;
|
|
||||||
private DevComponents.DotNetBar.ButtonX btn_ShowUsers;
|
|
||||||
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
|
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
|
||||||
private DevComponents.DotNetBar.ButtonX btnFixLinks;
|
private DevComponents.DotNetBar.ButtonX btnFixLinks;
|
||||||
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
|
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
|
||||||
@@ -1496,3 +1459,5 @@
|
|||||||
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmDelete;
|
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmDelete;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,23 +24,19 @@ namespace VEPROMS
|
|||||||
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;
|
|
||||||
|
// When opening Admin tools Check tab will be default.
|
||||||
|
this.sideNavItmCheck.Checked = true;
|
||||||
|
|
||||||
if (sideNavItmDelete.Checked)
|
if (sideNavItmDelete.Checked)
|
||||||
{
|
{
|
||||||
AdminToolType = (E_AdminToolType)4;
|
AdminToolType = (E_AdminToolType)4;
|
||||||
if (swDeleteFolder.Value)
|
if (swDeleteFolder.Value)
|
||||||
{
|
|
||||||
ResetDelTV(true);
|
ResetDelTV(true);
|
||||||
setupProgessSteps1();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
ResetDelTV(false);
|
ResetDelTV(false);
|
||||||
}
|
}
|
||||||
@@ -98,7 +94,6 @@ 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.
|
||||||
@@ -141,8 +136,6 @@ 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;
|
||||||
@@ -165,6 +158,12 @@ namespace VEPROMS
|
|||||||
FolderInfo fi = FolderInfo.GetTop();
|
FolderInfo fi = FolderInfo.GetTop();
|
||||||
|
|
||||||
if (fi.ChildFolderCount > 0)
|
if (fi.ChildFolderCount > 0)
|
||||||
|
{
|
||||||
|
if (noProcs)
|
||||||
|
{
|
||||||
|
LoadBottomLevelFolders(fi, myTVdel);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
TreeNode tn = new TreeNode(fi.Name);
|
TreeNode tn = new TreeNode(fi.Name);
|
||||||
tn.Tag = fi;
|
tn.Tag = fi;
|
||||||
@@ -172,69 +171,88 @@ namespace VEPROMS
|
|||||||
LoadChildFolders(fi, tn, noProcs);
|
LoadChildFolders(fi, tn, noProcs);
|
||||||
myTVdel.Nodes.Add(tn);
|
myTVdel.Nodes.Add(tn);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (myTVdel.SelectedNode != null)
|
if (myTVdel.SelectedNode != null)
|
||||||
myTVdel.SelectedNode.Expand();
|
myTVdel.SelectedNode.Expand();
|
||||||
|
|
||||||
//Expand if folders
|
|
||||||
if (noProcs)
|
|
||||||
myTVdel.ExpandAll();
|
|
||||||
|
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
|
|
||||||
|
//btnFixLinks.Enabled = false;
|
||||||
|
//this.Cursor = Cursors.WaitCursor;
|
||||||
|
////myTreeNodePath = new List<string>();
|
||||||
|
//myTVdel.Nodes.Clear();
|
||||||
|
//myDocVersions.Clear();
|
||||||
|
//FolderInfo fi = FolderInfo.GetTop();
|
||||||
|
//TreeNode tn = myTVdel.Nodes.Add(fi.Name );
|
||||||
|
//tn.Tag = fi;
|
||||||
|
//if (fi.ChildFolderCount > 0)
|
||||||
|
//{
|
||||||
|
// if (noProcs)
|
||||||
|
// {
|
||||||
|
// LoadBottomLevelFolders(fi, myTVdel);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// LoadChildFolders(fi, tn, noProcs);
|
||||||
|
//}
|
||||||
|
//if (myTVdel.SelectedNode != null)
|
||||||
|
// myTVdel.SelectedNode.Expand();
|
||||||
|
//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;
|
bool loadedChildWorkingDraft = false; // B2021-060 flag when child folder working draft is loaded
|
||||||
|
|
||||||
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))
|
if (LoadChildFolders(fic, tnc, noProcs))
|
||||||
{
|
|
||||||
loadedChildWorkingDraft = true;
|
loadedChildWorkingDraft = true;
|
||||||
}
|
// B2020-114 and C2020-035 only show folders the Set Admin can access
|
||||||
}
|
|
||||||
|
|
||||||
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
|
if (loadedChildWorkingDraft) loadedWorkingDraft = true; // B2021-060 if child folder working draft loaded set loadedWorkingDraft
|
||||||
{
|
|
||||||
// Add the folder to the dictionary
|
|
||||||
if (!myFolders.ContainsKey(tnc))
|
|
||||||
{
|
|
||||||
myFolders.Add(tnc, fic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (loadedChildWorkingDraft)
|
|
||||||
{
|
|
||||||
loadedWorkingDraft = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tn.Parent != null && !loadedWorkingDraft)
|
if (tn.Parent != null && !loadedWorkingDraft)
|
||||||
{
|
|
||||||
tn.Remove();
|
tn.Remove();
|
||||||
}
|
|
||||||
|
|
||||||
return loadedWorkingDraft;
|
return loadedWorkingDraft;
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Load only bottom layer of folders into treenode.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fi"></param>
|
||||||
|
/// <param name="tn"></param>
|
||||||
|
private void LoadBottomLevelFolders(FolderInfo fi, TreeView treeView)
|
||||||
|
{
|
||||||
|
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||||
|
{
|
||||||
|
if (fic.ChildFolderCount > 0)
|
||||||
|
{
|
||||||
|
// Recursively call for child folders
|
||||||
|
LoadBottomLevelFolders(fic, treeView);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (fic.Name != "PROMS")
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// If the folder is a bottom-level folder (no child folders), add it directly to the TreeView
|
||||||
|
TreeNode tnc = treeView.Nodes.Add(fic.Name);
|
||||||
|
tnc.Tag = fic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
|
private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
|
||||||
{
|
{
|
||||||
bool rtnval = false;
|
bool rtnval = false;
|
||||||
@@ -1212,10 +1230,12 @@ namespace VEPROMS
|
|||||||
DiselectParentNodes(e.Node.Parent);
|
DiselectParentNodes(e.Node.Parent);
|
||||||
DiselectChildNodes(e.Node.Nodes);
|
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)
|
private void DiselectParentNodes(TreeNode parent)
|
||||||
{
|
{
|
||||||
while (parent != null)
|
while (parent != null)
|
||||||
@@ -1225,6 +1245,7 @@ namespace VEPROMS
|
|||||||
parent = parent.Parent;
|
parent = parent.Parent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DiselectChildNodes(TreeNodeCollection childes)
|
private void DiselectChildNodes(TreeNodeCollection childes)
|
||||||
{
|
{
|
||||||
foreach (TreeNode oneChild in childes)
|
foreach (TreeNode oneChild in childes)
|
||||||
@@ -1234,6 +1255,8 @@ namespace VEPROMS
|
|||||||
DiselectChildNodes(oneChild.Nodes);
|
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)
|
||||||
@@ -1247,80 +1270,6 @@ 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
|
||||||
@@ -1433,6 +1382,7 @@ namespace VEPROMS
|
|||||||
private void sideNavItmDelete_Click(object sender, EventArgs e)
|
private void sideNavItmDelete_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AdminToolType = E_AdminToolType.Delete;
|
AdminToolType = E_AdminToolType.Delete;
|
||||||
|
lblAdmToolProgressType.Text = "";
|
||||||
setupProgessSteps1();
|
setupProgessSteps1();
|
||||||
|
|
||||||
if (swDeleteFolder.Value)
|
if (swDeleteFolder.Value)
|
||||||
@@ -1509,20 +1459,8 @@ namespace VEPROMS
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case E_AdminToolType.Delete:
|
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;
|
splitContainer3.Panel2Collapsed = true;
|
||||||
progressSteps1.Visible = false;
|
progressSteps1.Visible = false;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1724,7 +1662,6 @@ namespace VEPROMS
|
|||||||
//C2024-005 Delete Annotations, Delete Folders
|
//C2024-005 Delete Annotations, Delete Folders
|
||||||
private void swDeleteAnnotations_ValueChanged(object sender, EventArgs e)
|
private void swDeleteAnnotations_ValueChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
setupProgessSteps1();
|
|
||||||
swDeleteFolder.Value = !swDeleteAnnotations.Value;
|
swDeleteFolder.Value = !swDeleteAnnotations.Value;
|
||||||
if (swDeleteFolder.Value)
|
if (swDeleteFolder.Value)
|
||||||
ResetDelTV(true);
|
ResetDelTV(true);
|
||||||
@@ -1734,7 +1671,6 @@ namespace VEPROMS
|
|||||||
|
|
||||||
private void swDeleteFolder_ValueChanged(object sender, EventArgs e)
|
private void swDeleteFolder_ValueChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
setupProgessSteps1();
|
|
||||||
swDeleteAnnotations.Value = !swDeleteFolder.Value;
|
swDeleteAnnotations.Value = !swDeleteFolder.Value;
|
||||||
if (swDeleteFolder.Value)
|
if (swDeleteFolder.Value)
|
||||||
ResetDelTV(true);
|
ResetDelTV(true);
|
||||||
@@ -1748,26 +1684,40 @@ namespace VEPROMS
|
|||||||
txtResults.Clear();
|
txtResults.Clear();
|
||||||
txtProcess.Clear();
|
txtProcess.Clear();
|
||||||
|
|
||||||
|
|
||||||
if (swDeleteFolder.Value)
|
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)
|
//TODO process deletions of folders
|
||||||
{
|
|
||||||
txtProcess.AppendText("Deleting Folders...");
|
txtProcess.AppendText("Deleting Folders...");
|
||||||
|
|
||||||
//Load Selected Folders with docversions
|
//List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
//foreach (TreeNode tn in myProcedures.Keys)
|
||||||
foreach (TreeNode tn in myDocVersions.Keys)
|
// if (tn.Checked)
|
||||||
if (tn.Checked)
|
// pil.Add(myProcedures[tn]);
|
||||||
dvil.Add(myDocVersions[tn]);
|
|
||||||
|
|
||||||
//Load Selected Folders with docversions
|
////Load Selected Folders
|
||||||
List<FolderInfo> ef = new List<FolderInfo>();
|
Dictionary<int, string> folderData = new Dictionary<int, string>();
|
||||||
foreach (TreeNode tn in myFolders.Keys)
|
|
||||||
if (tn.Checked)
|
|
||||||
ef.Add(myFolders[tn]);
|
|
||||||
|
|
||||||
ProcessDelete(dvil, ef);
|
//List<FolderInfo> Flist = new List<FolderInfo>();
|
||||||
}
|
//foreach (TreeNode tn in myDocVersions.Keys)
|
||||||
|
// if (tn.Checked)
|
||||||
|
// Flist.Add();
|
||||||
|
|
||||||
|
//List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
||||||
|
//foreach (TreeNode tn in myDocVersions.Keys)
|
||||||
|
// if (tn.Checked)
|
||||||
|
// dvil.Add(myDocVersions[tn]);
|
||||||
|
|
||||||
|
//foreach (TreeNode tn in myTVdel.Nodes)
|
||||||
|
//{
|
||||||
|
// if (tn.Checked)
|
||||||
|
// {
|
||||||
|
// var itemInfo = myProcedures[tn];
|
||||||
|
// folderData.Add(itemInfo.ItemID, itemInfo.DisplayText);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
//ProcessDelete(dvil);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1789,10 +1739,12 @@ namespace VEPROMS
|
|||||||
frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
|
frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
|
||||||
|
|
||||||
frmAnnoDel.ShowDialog();
|
frmAnnoDel.ShowDialog();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProcessDelete(List<DocVersionInfo> foldersToDelete, List<FolderInfo> emptyFoldersToDelete)
|
private void ProcessDelete(List<DocVersionInfo> foldersToDelete)
|
||||||
{
|
{
|
||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
@@ -1801,12 +1753,11 @@ namespace VEPROMS
|
|||||||
|
|
||||||
foreach (var kvp in foldersToDelete)
|
foreach (var kvp in foldersToDelete)
|
||||||
{
|
{
|
||||||
//Gather folder information
|
int itemID = (int)kvp.ItemID;
|
||||||
FolderInfo fi = (FolderInfo)kvp.ActiveParent;
|
string folderName = kvp.Name;
|
||||||
int itemID = (int)fi.FolderID;
|
|
||||||
string folderName = fi.Name;
|
|
||||||
|
|
||||||
// Perform the deletion operation
|
// Perform the deletion operation
|
||||||
|
// Assume DeleteFolderByID is a method that deletes the folder by its ItemID
|
||||||
bool deletionSuccessful = DeleteFolderByID(itemID);
|
bool deletionSuccessful = DeleteFolderByID(itemID);
|
||||||
|
|
||||||
// Update txtProcess with the progress
|
// Update txtProcess with the progress
|
||||||
@@ -1820,59 +1771,13 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
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
|
// Example deletion method
|
||||||
|
private bool DeleteFolderByID(int itemID)
|
||||||
{
|
{
|
||||||
txtProcess.AppendText($"Failed to delete folder: {folderName} (ID: {itemID})");
|
// Implement your folder deletion logic here
|
||||||
}
|
// Return true if deletion was successful, false otherwise
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
return true; // Placeholder
|
||||||
}
|
|
||||||
|
|
||||||
//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()
|
public List<ProcedureInfo> RetrieveChkAnnotations()
|
||||||
|
|||||||
@@ -149,11 +149,11 @@ 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>
|
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="labelX14.SuperTooltip" xml:space="preserve">
|
<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.
|
<value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
|
||||||
|
|
||||||
Click on the on/off switches to turn on/off each tool.
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
Note that only one of these tools can be run at a time.</value>
|
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
|
<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.
|
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||||
|
|||||||
@@ -216,8 +216,6 @@ 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)
|
||||||
{
|
{
|
||||||
@@ -256,22 +254,6 @@ 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()
|
||||||
@@ -493,7 +475,6 @@ 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);
|
||||||
@@ -1622,11 +1603,6 @@ 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);
|
||||||
@@ -2765,7 +2741,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
void btnAdministrativeTools_Click(object sender, EventArgs e)
|
void btnAdministrativeTools_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
frmBatchRefresh frm = new frmBatchRefresh(MySessionInfo, this);
|
frmBatchRefresh frm = new frmBatchRefresh(MySessionInfo);
|
||||||
frm.ProgressBar = bottomProgBar;
|
frm.ProgressBar = bottomProgBar;
|
||||||
frm.ShowDialog(this);
|
frm.ShowDialog(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2547,6 +2547,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
newItemInfo.UpdateTransitionText();
|
newItemInfo.UpdateTransitionText();
|
||||||
newItemInfo.UpdateROText();
|
newItemInfo.UpdateROText();
|
||||||
newItemInfo.UpdatePastedStepTransitionText();
|
newItemInfo.UpdatePastedStepTransitionText();
|
||||||
|
|
||||||
// Add to tree
|
// Add to tree
|
||||||
if (newItemInfo.NextItem != null)
|
if (newItemInfo.NextItem != null)
|
||||||
{
|
{
|
||||||
@@ -2564,14 +2565,10 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//Create tree node for copied procedure when no other procedures exist in the folder
|
//Create tree node for copied procedure when no other procedures exist in the working draft (treeNodeReplace)
|
||||||
VETreeNode vtn = treeNodeReplace as VETreeNode;
|
VETreeNode tn = null;
|
||||||
DocVersionInfo dvi = vtn.VEObject as DocVersionInfo;
|
tn = new VETreeNode(newItemInfo);
|
||||||
|
treeNodeReplace.Nodes.Add(tn);
|
||||||
ItemInfo newProc = dvi.PasteChild(copyStartID);
|
|
||||||
VETreeNode tn1 = new VETreeNode(newProc);
|
|
||||||
treeNodeReplace.Nodes.Add(tn1); // add tree node to end of list.
|
|
||||||
treeNodeReplace = tn1;
|
|
||||||
}
|
}
|
||||||
return newItemInfo;
|
return newItemInfo;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1433,31 +1433,6 @@ 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)
|
||||||
@@ -1561,8 +1536,6 @@ 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,8 +167,6 @@ 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>();
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ namespace Volian.Controls.Library
|
|||||||
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);
|
||||||
@@ -221,15 +220,6 @@ 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
|
||||||
{
|
{
|
||||||
@@ -437,12 +427,6 @@ 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)
|
||||||
{
|
{
|
||||||
@@ -3583,41 +3567,6 @@ 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