Compare commits
85 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c60994a0a | |||
| 773cc42346 | |||
| f46a1f39dc | |||
| b7175bf77f | |||
| ec22232aa8 | |||
| f303cd2236 | |||
| f40cef4416 | |||
| fbca97d38d | |||
| 28bd2cba5c | |||
| 4b35f73bbf | |||
| f4706eb126 | |||
| 21bcb90558 | |||
| ae48ac0cae | |||
| cb4979d5bc | |||
| 7d3ae74e1f | |||
| 9d680aa500 | |||
| 0d50b1c2fe | |||
| 75e034863f | |||
| 3b42de1571 | |||
| 668472286e | |||
| e00d34c99d | |||
| 9fb496dfb3 | |||
| f4eaa4a3ef | |||
| 5d50ed6bdf | |||
| d7ace4eaf9 | |||
| 16a4d335ea | |||
| ba69bb0772 | |||
| 455940caa2 | |||
| 439344757e | |||
| ad912691c9 | |||
| 237144aff6 | |||
| 810332d558 | |||
| f8431d0ba1 | |||
| 57c3bfa16a | |||
| 61f1077608 | |||
| 8877e968b9 | |||
| 4575c90bee | |||
| 21279a87ae | |||
| 3d5ad4a17e | |||
| 9bb7b044a8 | |||
| dc8f2f7561 | |||
| 829dbf84da | |||
| 7b156c17f8 | |||
| cbf7cbc164 | |||
| b04faa816e | |||
| 517ebe2902 | |||
| 03d0d314e3 | |||
| 3e804c5cce | |||
| ee2b8b538e | |||
| fdfd34fe92 | |||
| 2d6fb6523b | |||
| 3084bf3982 | |||
| 5ba51e8392 | |||
| fb5eb43e34 | |||
| b154056276 | |||
| c67b8f9ca1 | |||
| 95e4181360 | |||
| 32dffbe56b | |||
| 6b3c8d373b | |||
| db29107f47 | |||
| 355537f2ab | |||
| 0729ef0c21 | |||
| 6fe82bfd0f | |||
| 39bf072363 | |||
| da7c384fd8 | |||
| 95130fd9a0 | |||
| 978e2344a3 | |||
| c9bf45602c | |||
| aa160b2036 | |||
| f82b32d351 | |||
| e519dc9a57 | |||
| f020c37db9 | |||
| 5a4ec3b6b1 | |||
| 2602d6c9d2 | |||
| ff403583d7 | |||
| c5577cc2bd | |||
| 78be6e5dc1 | |||
| b954a41375 | |||
| 0100a11cfe | |||
| 04cf2e8534 | |||
| be00724818 | |||
| 274d93c61a | |||
| 7dc4c30436 | |||
| 028ef4bc31 | |||
| 42124d65c7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+18
-18
@@ -97,12 +97,12 @@ namespace VEPROMS
|
|||||||
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
|
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
|
||||||
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
|
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
|
||||||
this.groupPag = new DevComponents.DotNetBar.Controls.GroupPanel();
|
this.groupPag = new DevComponents.DotNetBar.Controls.GroupPanel();
|
||||||
this.cbxGenerateTimeCritActSum = new System.Windows.Forms.CheckBox();
|
|
||||||
this.expPrnSetting = new DevComponents.DotNetBar.ExpandablePanel();
|
this.expPrnSetting = new DevComponents.DotNetBar.ExpandablePanel();
|
||||||
this.ppGpDuplex = new DevComponents.DotNetBar.Controls.GroupPanel();
|
this.ppGpDuplex = new DevComponents.DotNetBar.Controls.GroupPanel();
|
||||||
this.tbBlankPage = new DevComponents.DotNetBar.Controls.TextBoxX();
|
this.tbBlankPage = new DevComponents.DotNetBar.Controls.TextBoxX();
|
||||||
this.lblBlPg = new DevComponents.DotNetBar.LabelX();
|
this.lblBlPg = new DevComponents.DotNetBar.LabelX();
|
||||||
this.swtbtnPDFdtPrefixSuffix = new DevComponents.DotNetBar.Controls.SwitchButton();
|
this.swtbtnPDFdtPrefixSuffix = new DevComponents.DotNetBar.Controls.SwitchButton();
|
||||||
|
this.cbxGenerateTimeCritActSum = new System.Windows.Forms.CheckBox();
|
||||||
this.gpnlDebug.SuspendLayout();
|
this.gpnlDebug.SuspendLayout();
|
||||||
this.grpDateSelector.SuspendLayout();
|
this.grpDateSelector.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).BeginInit();
|
||||||
@@ -1285,23 +1285,6 @@ namespace VEPROMS
|
|||||||
this.groupPag.TabIndex = 111;
|
this.groupPag.TabIndex = 111;
|
||||||
this.groupPag.Text = "Print using standard PROMS pagination rules by:";
|
this.groupPag.Text = "Print using standard PROMS pagination rules by:";
|
||||||
//
|
//
|
||||||
// cbxGenerateTimeCritActSum
|
|
||||||
//
|
|
||||||
this.cbxGenerateTimeCritActSum.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.cbxGenerateTimeCritActSum.AutoSize = true;
|
|
||||||
this.cbxGenerateTimeCritActSum.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.cbxGenerateTimeCritActSum.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
||||||
this.cbxGenerateTimeCritActSum.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
||||||
this.cbxGenerateTimeCritActSum.Location = new System.Drawing.Point(240, 273);
|
|
||||||
this.cbxGenerateTimeCritActSum.Margin = new System.Windows.Forms.Padding(2);
|
|
||||||
this.cbxGenerateTimeCritActSum.Name = "cbxGenerateTimeCritActSum";
|
|
||||||
this.cbxGenerateTimeCritActSum.Size = new System.Drawing.Size(294, 17);
|
|
||||||
this.cbxGenerateTimeCritActSum.TabIndex = 102;
|
|
||||||
this.cbxGenerateTimeCritActSum.Text = "Generate Time Critical Action Summary (hidden but used)";
|
|
||||||
this.cbxGenerateTimeCritActSum.UseVisualStyleBackColor = false;
|
|
||||||
this.cbxGenerateTimeCritActSum.Visible = false;
|
|
||||||
//
|
|
||||||
// expPrnSetting
|
// expPrnSetting
|
||||||
//
|
//
|
||||||
this.expPrnSetting.CanvasColor = System.Drawing.SystemColors.Control;
|
this.expPrnSetting.CanvasColor = System.Drawing.SystemColors.Control;
|
||||||
@@ -1438,6 +1421,23 @@ namespace VEPROMS
|
|||||||
this.swtbtnPDFdtPrefixSuffix.TabIndex = 111;
|
this.swtbtnPDFdtPrefixSuffix.TabIndex = 111;
|
||||||
this.swtbtnPDFdtPrefixSuffix.ValueChanged += new System.EventHandler(this.swtbtnPDFdtPrefixSuffix_ValueChanged);
|
this.swtbtnPDFdtPrefixSuffix.ValueChanged += new System.EventHandler(this.swtbtnPDFdtPrefixSuffix_ValueChanged);
|
||||||
//
|
//
|
||||||
|
// cbxGenerateTimeCritActSum
|
||||||
|
//
|
||||||
|
this.cbxGenerateTimeCritActSum.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.cbxGenerateTimeCritActSum.AutoSize = true;
|
||||||
|
this.cbxGenerateTimeCritActSum.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.cbxGenerateTimeCritActSum.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.cbxGenerateTimeCritActSum.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
this.cbxGenerateTimeCritActSum.Location = new System.Drawing.Point(240, 273);
|
||||||
|
this.cbxGenerateTimeCritActSum.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.cbxGenerateTimeCritActSum.Name = "cbxGenerateTimeCritActSum";
|
||||||
|
this.cbxGenerateTimeCritActSum.Size = new System.Drawing.Size(294, 17);
|
||||||
|
this.cbxGenerateTimeCritActSum.TabIndex = 102;
|
||||||
|
this.cbxGenerateTimeCritActSum.Text = "Generate Time Critical Action Summary (hidden but used)";
|
||||||
|
this.cbxGenerateTimeCritActSum.UseVisualStyleBackColor = false;
|
||||||
|
this.cbxGenerateTimeCritActSum.Visible = false;
|
||||||
|
//
|
||||||
// DlgPrintProcedure
|
// DlgPrintProcedure
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
|||||||
@@ -1096,15 +1096,6 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
private void btnCreatePDF_Click(object sender, EventArgs e)
|
private void btnCreatePDF_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// B2024-058 Add validation for Revision Date field of the Print dialog
|
|
||||||
if (txbRevDate.Visible)
|
|
||||||
{
|
|
||||||
if (!validateDate(txbRevDate))
|
|
||||||
{
|
|
||||||
//txbRevDate.Focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DoCreatePDF();
|
DoCreatePDF();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1202,42 +1193,16 @@ namespace VEPROMS
|
|||||||
if (_Initializing) return;
|
if (_Initializing) return;
|
||||||
ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef;
|
ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef;
|
||||||
}
|
}
|
||||||
// B2024-058 Add validation for Revision Date field of the Print dialog
|
|
||||||
private bool validateDate(TextBox txtDate)
|
|
||||||
{
|
|
||||||
DateTime dDate;
|
|
||||||
if (DateTime.TryParse(txtDate.Text, out dDate))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string txtDate2 = txtDate.Text;
|
|
||||||
string message = String.Format("Date {0} in wrong format" + System.Environment.NewLine + "Correct the revision date.", txtDate2);
|
|
||||||
string txtTitle = "Invalid Format";
|
|
||||||
MessageBox.Show(message, txtTitle);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void txbRevDate_Enter(object sender, EventArgs e)
|
private void txbRevDate_Enter(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
txbDate = txbRevDate;
|
txbDate = txbRevDate;
|
||||||
grpDateSelector.Text = "Select Revision Date";
|
grpDateSelector.Text = "Select Revision Date";
|
||||||
grpDateSelector.Visible = calDateSelector.Visible = true;
|
grpDateSelector.Visible = calDateSelector.Visible = true;
|
||||||
//C2021-007 position the calendar to the current RevDate or if no RevDate, position to today's date
|
//C2021-007 position the calendar to the current RevDate or if no RevDate, position to today's date
|
||||||
DateTime dDate;
|
DateTime initSelDate =(txbDate.Text != null && txbDate.Text.Length != 0)? Convert.ToDateTime(txbDate.Text) : DateTime.Today;
|
||||||
// B2024-058 Add validation for Revision Date field of the Print dialog
|
calDateSelector.DisplayMonth = calDateSelector.SelectedDate = initSelDate;
|
||||||
if (!validateDate(txbDate))
|
|
||||||
{
|
|
||||||
txbRevDate.Focus();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DateTime initSelDate = (txbDate.Text != null && txbDate.Text.Length != 0) ? Convert.ToDateTime(txbDate.Text) : DateTime.Today;
|
|
||||||
calDateSelector.DisplayMonth = calDateSelector.SelectedDate = initSelDate;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void txbRevDate_Leave(object sender, EventArgs e)
|
private void txbRevDate_Leave(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_Initializing) return;
|
if (_Initializing) return;
|
||||||
@@ -1410,7 +1375,6 @@ namespace VEPROMS
|
|||||||
_NewRevForAllProcs = null;
|
_NewRevForAllProcs = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//private void cbxDebug_CheckedChanged(object sender, EventArgs e)
|
//private void cbxDebug_CheckedChanged(object sender, EventArgs e)
|
||||||
//{
|
//{
|
||||||
// cbxCmpPRMSpfd.Visible = cbxDebug.Checked;
|
// cbxCmpPRMSpfd.Visible = cbxDebug.Checked;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
+192
-253
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,6 @@ using System.IO;
|
|||||||
using Volian.Controls.Library;
|
using Volian.Controls.Library;
|
||||||
using DevComponents.DotNetBar;
|
using DevComponents.DotNetBar;
|
||||||
using JR.Utils.GUI.Forms;
|
using JR.Utils.GUI.Forms;
|
||||||
using Volian.Controls.Library;
|
|
||||||
|
|
||||||
namespace VEPROMS
|
namespace VEPROMS
|
||||||
{
|
{
|
||||||
@@ -25,17 +24,11 @@ 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.
|
// When opening Admin tools Check tab will be default.
|
||||||
this.sideNavItmCheck.Checked = true;
|
this.sideNavItmCheck.Checked = true;
|
||||||
|
|
||||||
@@ -43,10 +36,7 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
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);
|
||||||
}
|
}
|
||||||
@@ -111,8 +101,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.
|
||||||
@@ -155,7 +143,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;
|
||||||
@@ -179,21 +166,44 @@ namespace VEPROMS
|
|||||||
|
|
||||||
if (fi.ChildFolderCount > 0)
|
if (fi.ChildFolderCount > 0)
|
||||||
{
|
{
|
||||||
TreeNode tn = new TreeNode(fi.Name);
|
if (noProcs)
|
||||||
tn.Tag = fi;
|
{
|
||||||
tn.StateImageIndex = -1; // Hide the checkbox for the root node
|
LoadBottomLevelFolders(fi, myTVdel);
|
||||||
LoadChildFolders(fi, tn, noProcs);
|
}
|
||||||
myTVdel.Nodes.Add(tn);
|
else
|
||||||
|
{
|
||||||
|
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)
|
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
|
||||||
@@ -205,13 +215,10 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
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))
|
||||||
@@ -219,27 +226,40 @@ namespace VEPROMS
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
/// <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;
|
||||||
@@ -1256,76 +1276,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;
|
||||||
|
|
||||||
@@ -1516,20 +1466,8 @@ namespace VEPROMS
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case E_AdminToolType.Delete:
|
case E_AdminToolType.Delete:
|
||||||
if (swDeleteFolder.Value)
|
splitContainer3.Panel2Collapsed = true;
|
||||||
{
|
progressSteps1.Visible = false;
|
||||||
splitContainer3.Panel2Collapsed = false;
|
|
||||||
progressSteps1.Items.Add(siOrphDatRecs);
|
|
||||||
lblAdmToolProgressType.Text = "Deleting: ";
|
|
||||||
progressSteps1.Visible = true;
|
|
||||||
progressSteps1.Refresh();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lblAdmToolProgressType.Text = "";
|
|
||||||
splitContainer3.Panel2Collapsed = true;
|
|
||||||
progressSteps1.Visible = false;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1731,7 +1669,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);
|
||||||
@@ -1741,7 +1678,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);
|
||||||
@@ -1755,91 +1691,57 @@ namespace VEPROMS
|
|||||||
txtResults.Clear();
|
txtResults.Clear();
|
||||||
txtProcess.Clear();
|
txtProcess.Clear();
|
||||||
|
|
||||||
this.Cursor = Cursors.WaitCursor;
|
|
||||||
|
|
||||||
//Create checked proce and doc info lists.
|
|
||||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
|
||||||
List<DocVersionInfo> dvil = new List<DocVersionInfo>();
|
|
||||||
|
|
||||||
// Create a list of procedures the user selected
|
|
||||||
foreach (TreeNode tn in myProcedures.Keys)
|
|
||||||
if (tn.Checked)
|
|
||||||
pil.Add(myProcedures[tn]);
|
|
||||||
|
|
||||||
// Create a list of doc versions the user selected
|
|
||||||
foreach (TreeNode tn in myDocVersions.Keys)
|
|
||||||
if (tn.Checked)
|
|
||||||
dvil.Add(myDocVersions[tn]);
|
|
||||||
|
|
||||||
bool cancelledOut = false; // Flag to indicate if the process should be cancelled
|
|
||||||
StringBuilder sbDocVersions = new StringBuilder();
|
|
||||||
|
|
||||||
foreach (DocVersionInfo dq in dvil)
|
|
||||||
{
|
|
||||||
string msg = string.Empty;
|
|
||||||
if (!MySessionInfo.CanCheckOutItem(dq.VersionID, CheckOutType.DocVersion, ref msg))
|
|
||||||
{
|
|
||||||
string msgp = string.Empty;
|
|
||||||
foreach (ProcedureInfo pi in dq.Procedures)
|
|
||||||
{
|
|
||||||
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref msgp))
|
|
||||||
{
|
|
||||||
FolderInfo fi = (FolderInfo)dq.ActiveParent;
|
|
||||||
int itemID = (int)fi.FolderID;
|
|
||||||
string folderName = fi.Name;
|
|
||||||
|
|
||||||
if (swDeleteFolder.Value)
|
|
||||||
sbDocVersions.AppendLine($"{folderName} - {msgp}");
|
|
||||||
else
|
|
||||||
sbDocVersions.AppendLine(msgp);
|
|
||||||
|
|
||||||
cancelledOut = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cancelledOut)
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.AppendLine("The batch update process was not successful for all working drafts selected.");
|
|
||||||
sb.AppendLine("The following procedures are currently checked out...");
|
|
||||||
sb.AppendLine();
|
|
||||||
sb.AppendLine(sbDocVersions.ToString());
|
|
||||||
sb.AppendLine();
|
|
||||||
if (swDeleteFolder.Value)
|
|
||||||
sb.AppendLine("If you want to delete these folders, please contact the respective users and have them close any procedures in the working draft.");
|
|
||||||
else
|
|
||||||
sb.AppendLine("If you want to delete annotations from these working drafts, please contact the respective users and have them close any procedures in the working draft.");
|
|
||||||
sb.AppendLine();
|
|
||||||
txtProcess.AppendText(sb.ToString());
|
|
||||||
this.Cursor = Cursors.Default;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (swDeleteFolder.Value)
|
if (swDeleteFolder.Value)
|
||||||
{
|
{
|
||||||
if (FlexibleMessageBox.Show(this, "Are 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
|
//List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
List<FolderInfo> ef = new List<FolderInfo>();
|
//foreach (TreeNode tn in myProcedures.Keys)
|
||||||
foreach (TreeNode tn in myFolders.Keys)
|
// if (tn.Checked)
|
||||||
|
// pil.Add(myProcedures[tn]);
|
||||||
|
|
||||||
if (tn.Checked)
|
////Load Selected Folders
|
||||||
ef.Add(myFolders[tn]);
|
Dictionary<int, string> folderData = new Dictionary<int, string>();
|
||||||
|
|
||||||
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
|
||||||
{
|
{
|
||||||
// Write progress status
|
// Write progress status
|
||||||
txtProcess.AppendText("Deleting Annotations...");
|
txtProcess.AppendText("Deleting Annotations..." + Environment.NewLine);
|
||||||
|
|
||||||
|
// 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);
|
frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
|
||||||
|
|
||||||
@@ -1847,13 +1749,10 @@ namespace VEPROMS
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
this.Cursor = Cursors.Default;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProcessDelete(List<DocVersionInfo> foldersToDelete, List<FolderInfo> emptyFoldersToDelete)
|
private void ProcessDelete(List<DocVersionInfo> foldersToDelete)
|
||||||
{
|
{
|
||||||
int foldersDeleted = 0;
|
|
||||||
|
|
||||||
DateTime pStart = DateTime.Now;
|
DateTime pStart = DateTime.Now;
|
||||||
txtProcess.AppendText(Environment.NewLine);
|
txtProcess.AppendText(Environment.NewLine);
|
||||||
txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm"));
|
txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm"));
|
||||||
@@ -1861,19 +1760,17 @@ 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
|
||||||
if (deletionSuccessful)
|
if (deletionSuccessful)
|
||||||
{
|
{
|
||||||
txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
|
txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
|
||||||
foldersDeleted += 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1881,69 +1778,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})");
|
|
||||||
foldersDeleted += 1;
|
|
||||||
}
|
|
||||||
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, {foldersDeleted} folders have been deleted.", "Delete Folders");
|
|
||||||
ClearStepProgress();
|
|
||||||
|
|
||||||
txtResults.AppendText($"Folder deletion process completed, {foldersDeleted} folders have been deleted.");
|
|
||||||
txtResults.AppendText(Environment.NewLine);
|
|
||||||
}
|
}
|
||||||
|
// Example deletion method
|
||||||
private bool DeleteFolderByID(int folderID)
|
private bool DeleteFolderByID(int itemID)
|
||||||
{
|
{
|
||||||
try
|
// Implement your folder deletion logic here
|
||||||
{
|
// Return true if deletion was successful, false otherwise
|
||||||
//Delete
|
return true; // Placeholder
|
||||||
Folder.DeleteFolderAdmin(folderID);
|
|
||||||
|
|
||||||
//update treeview UI via veProms
|
|
||||||
_veProms.tv_FolderDelete(folderID);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
string err = ex.ToString();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ProcedureInfo> RetrieveChkAnnotations()
|
public List<ProcedureInfo> RetrieveChkAnnotations()
|
||||||
|
|||||||
@@ -121,7 +121,9 @@
|
|||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
|
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
|
||||||
<value>This allows the user to remove folders and sub folders as well as their contents.
|
<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.
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
@@ -130,34 +132,28 @@ It is recommended that this be done during off hours.
|
|||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="labelX13.SuperTooltip" xml:space="preserve">
|
<data name="labelX13.SuperTooltip" xml:space="preserve">
|
||||||
<value>This allows the user to remove folders and sub folders as well as their contents.
|
<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.
|
Be sure a current backup of the database exists prior performing this function.
|
||||||
|
|
||||||
It is recommended that this be done during off hours.
|
It is recommended that this be done during off hours.
|
||||||
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
|
<data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
|
||||||
<value>This function will allow the user to remove annotations from the selected working drafts.
|
<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.
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
If more than one working draft 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 function will allow the user to remove annotations from the selected working drafts.
|
<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.
|
Be sure a current backup of the database exists prior to running this function.
|
||||||
|
|
||||||
If more than one working draft 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 name="btnDeleteItems.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>
|
||||||
<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.
|
||||||
|
|||||||
@@ -295,10 +295,7 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// B2024-062 Added check for EmptyProcedure. We don't need to show the Try Again message if the procedure
|
while (!MyPromsPrinter.MergeNotIncluded && _PdfFile == null && MessageBox.Show("Try Again?", "PDF Creation Failed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
|
||||||
// is empty, as it would be just be a waste of time for the user.
|
|
||||||
while (!MyPromsPrinter.MergeNotIncluded && _PdfFile == null && !MyPromsPrinter.EmptyProcedure &&
|
|
||||||
MessageBox.Show("Try Again?", "PDF Creation Failed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
|
|
||||||
|
|
||||||
|
|
||||||
if (_PdfFile == null)
|
if (_PdfFile == null)
|
||||||
|
|||||||
@@ -254,21 +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()
|
||||||
@@ -489,7 +474,6 @@ namespace VEPROMS
|
|||||||
tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew);
|
tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew);
|
||||||
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.DeleteFolder += new vlnTreeViewItemInfoDeleteFolderEvent(Tv_DeleteFolder);
|
|
||||||
tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo);
|
tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo);
|
||||||
tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo);
|
tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo);
|
||||||
tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert);
|
tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert);
|
||||||
@@ -2757,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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -951,10 +951,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// it is pasted into a section without enhanced data, then clear it.
|
// it is pasted into a section without enhanced data, then clear it.
|
||||||
|
|
||||||
// config data can only be on hls/notes/cautions for pasted steps.
|
// config data can only be on hls/notes/cautions for pasted steps.
|
||||||
// B2024-059: clear links on a source section. When a paste occurs, the section is copied with the links but not
|
if (!pasteItem.IsHigh && !pasteItem.IsCaution && !pasteItem.IsNote) return;
|
||||||
// new section is created in the enhanced document, so the links point to the original section (copied). These
|
|
||||||
// need to be removed.
|
|
||||||
if (!pasteItem.IsHigh && !pasteItem.IsCaution && !pasteItem.IsNote && !pasteItem.IsSection) return;
|
|
||||||
|
|
||||||
// See if the pasted step's section is enhanced with enhanced steps, and if not, clear it
|
// See if the pasted step's section is enhanced with enhanced steps, and if not, clear it
|
||||||
// Also, if pasting into a source section, don't clear (B2017-225), the 'isSourceSection' portion of the code.
|
// Also, if pasting into a source section, don't clear (B2017-225), the 'isSourceSection' portion of the code.
|
||||||
@@ -977,12 +974,6 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// of the pasted step.
|
// of the pasted step.
|
||||||
if (pasteItem.HasEnhancedLinkedStep) pasteItem.RemoveEnhancedFromConfig();
|
if (pasteItem.HasEnhancedLinkedStep) pasteItem.RemoveEnhancedFromConfig();
|
||||||
}
|
}
|
||||||
// B2024-059: clear links on a source section
|
|
||||||
if (isSourceSection)
|
|
||||||
{
|
|
||||||
EnhancedDocuments seleds = pasteItem.GetMyEnhancedDocuments();
|
|
||||||
foreach (EnhancedDocument ed in seleds) pasteItem.DoUnlinkEnhanced(pasteItem, ed.Type, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Insert Child
|
#region Insert Child
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -672,10 +672,8 @@ namespace Volian.Controls.Library
|
|||||||
if (_MyDisplayTabItems.ContainsKey(key) && pasteType != ItemInfo.EAddpingPart.Replace) // If procedure page open use it unless replace
|
if (_MyDisplayTabItems.ContainsKey(key) && pasteType != ItemInfo.EAddpingPart.Replace) // If procedure page open use it unless replace
|
||||||
{
|
{
|
||||||
DisplayTabItem pg = _MyDisplayTabItems[key];
|
DisplayTabItem pg = _MyDisplayTabItems[key];
|
||||||
// B2024-038: if section, refresh the editor even if the section is not expanded.
|
|
||||||
bool isSec = myItemInfo.IsSection;
|
|
||||||
if (pg.MyStepTabPanel.MyStepPanel._LookupEditItems.ContainsKey(myItemInfo.ItemID) &&
|
if (pg.MyStepTabPanel.MyStepPanel._LookupEditItems.ContainsKey(myItemInfo.ItemID) &&
|
||||||
(pg.MyStepTabPanel.MyStepPanel._LookupEditItems[myItemInfo.ItemID].Expanded || isSec))
|
pg.MyStepTabPanel.MyStepPanel._LookupEditItems[myItemInfo.ItemID].Expanded)
|
||||||
{
|
{
|
||||||
EditItem edtitm = pg.MyStepTabPanel.MyStepPanel._LookupEditItems[myItemInfo.ItemID];
|
EditItem edtitm = pg.MyStepTabPanel.MyStepPanel._LookupEditItems[myItemInfo.ItemID];
|
||||||
switch (pasteType)
|
switch (pasteType)
|
||||||
@@ -712,8 +710,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
else if (_MyDisplayTabItems.ContainsKey(key) && pasteType == ItemInfo.EAddpingPart.Replace)
|
else if (_MyDisplayTabItems.ContainsKey(key) && pasteType == ItemInfo.EAddpingPart.Replace)
|
||||||
{
|
{
|
||||||
// B2024-038: changed tab key to procedure (was item, which caused crash if section)
|
CloseTabItem(_MyDisplayTabItems["Item - " + myItemInfo.ItemID.ToString()]); //Grab itemID and set to close open tab.
|
||||||
CloseTabItem(_MyDisplayTabItems["Item - " + proc.ItemID.ToString()]); //Grab itemID and set to close open tab.
|
|
||||||
return false; //B2017-179 PasteReplace will return null if was aborted
|
return false; //B2017-179 PasteReplace will return null if was aborted
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
+29
-29
@@ -1,36 +1,36 @@
|
|||||||
namespace Volian.Controls.Library
|
namespace Volian.Controls.Library
|
||||||
{
|
{
|
||||||
partial class vlnTreeView
|
partial class vlnTreeView
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private System.ComponentModel.IContainer components = null;
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Clean up any resources being used.
|
/// Clean up any resources being used.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
protected void Dispose(bool disposing)
|
protected void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (disposing && (components != null))
|
if (disposing && (components != null))
|
||||||
{
|
{
|
||||||
components.Dispose();
|
components.Dispose();
|
||||||
}
|
}
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Component Designer generated code
|
#region Component Designer generated code
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required method for Designer support - do not modify
|
/// Required method for Designer support - do not modify
|
||||||
/// the contents of this method with the code editor.
|
/// the contents of this method with the code editor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
components = new System.ComponentModel.Container();
|
components = new System.ComponentModel.Container();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,9 +26,7 @@ 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 vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs 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);
|
||||||
public delegate DialogResult vlnTreeViewPropertyEvent(object sender, vlnTreePropertyEventArgs args);
|
public delegate DialogResult vlnTreeViewPropertyEvent(object sender, vlnTreePropertyEventArgs args);
|
||||||
@@ -222,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
|
||||||
{
|
{
|
||||||
@@ -438,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)
|
||||||
{
|
{
|
||||||
@@ -568,11 +551,6 @@ 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)
|
||||||
{
|
{
|
||||||
@@ -1081,11 +1059,6 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
#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)
|
// 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.
|
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||||
@@ -1109,7 +1082,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#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
|
||||||
@@ -1740,13 +1712,10 @@ namespace Volian.Controls.Library
|
|||||||
// 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)
|
||||||
// can do Before/After/Replace
|
// can do Before/After/Replace
|
||||||
// 2) 'to' section is 'source' and 'from' section is 'non' (has no MyEnhancedDocuments)
|
// 2) 'to' section is 'source' and 'from' section is 'non' (has no MyEnhancedDocuments)
|
||||||
// can do Before/After - no links exist in pasted section so cannot do Replace
|
// can do Before/After - no links exist in pasted section.
|
||||||
|
// cannot do Replace
|
||||||
// 3) 'to' section is 'source' and 'from' section is same docversion 'source'
|
// 3) 'to' section is 'source' and 'from' section is same docversion 'source'
|
||||||
// can do Before/After (B2024-038 removes replace)
|
// can do Before/After/Replace
|
||||||
// 4) 'to' section is not 'source' and 'from' section is source
|
|
||||||
// can do Before/After but not replace - would have to manage
|
|
||||||
// links for 'from' section (B2024-038 added this case)
|
|
||||||
|
|
||||||
SectionConfig secToCfg = iiPasteHere.MyConfig as SectionConfig;
|
SectionConfig secToCfg = iiPasteHere.MyConfig as SectionConfig;
|
||||||
SectionConfig secFromCfg = iiClipboard.MyConfig as SectionConfig;
|
SectionConfig secFromCfg = iiClipboard.MyConfig as SectionConfig;
|
||||||
|
|
||||||
@@ -1755,22 +1724,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)
|
else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) secCanPaste = true; // 3)
|
||||||
{
|
|
||||||
secCanPaste = true; // 3)
|
|
||||||
okToReplace = false;
|
|
||||||
}
|
|
||||||
else if (!secToIsSource && secFromIsSource)
|
|
||||||
{
|
|
||||||
secCanPaste = true; // 4
|
|
||||||
okToReplace = false;
|
|
||||||
}
|
|
||||||
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));
|
||||||
@@ -1980,16 +1940,6 @@ namespace Volian.Controls.Library
|
|||||||
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));
|
||||||
@@ -2458,7 +2408,6 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
|
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
|
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
|
||||||
if (dvi != null)
|
if (dvi != null)
|
||||||
@@ -2630,7 +2579,6 @@ 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;
|
||||||
return replItemInfo;
|
return replItemInfo;
|
||||||
|
|
||||||
}
|
}
|
||||||
public void PasteRepalceEmpty(VETreeNode tn, int copyStartID)
|
public void PasteRepalceEmpty(VETreeNode tn, int copyStartID)
|
||||||
{
|
{
|
||||||
@@ -3634,41 +3582,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;
|
||||||
|
|||||||
@@ -138,15 +138,6 @@ namespace Volian.Print.Library
|
|||||||
get { return _Prefix; }
|
get { return _Prefix; }
|
||||||
set { _Prefix = value; }
|
set { _Prefix = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// B2024-062 Set to true when the procedure being printed has no content.
|
|
||||||
// When set to true, will prevent the "Try Again" dialog from appearing
|
|
||||||
// and simply exit the print function
|
|
||||||
private bool _EmptyProcedure = false;
|
|
||||||
public bool EmptyProcedure
|
|
||||||
{
|
|
||||||
get { return _EmptyProcedure; }
|
|
||||||
}
|
|
||||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
public event PromsPrinterStatusEvent StatusChanged;
|
public event PromsPrinterStatusEvent StatusChanged;
|
||||||
internal void OnStatusChanged(object sender, PromsPrintStatusArgs args)
|
internal void OnStatusChanged(object sender, PromsPrintStatusArgs args)
|
||||||
@@ -942,9 +933,6 @@ namespace Volian.Print.Library
|
|||||||
{
|
{
|
||||||
MessageBox.Show("This procedure has no content and will not be printed.", "Empty Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("This procedure has no content and will not be printed.", "Empty Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
ProfileTimer.Pop(profileDepth);
|
ProfileTimer.Pop(profileDepth);
|
||||||
// B2024-062 Added check for EmptyProcedure. This is to prevent the Try Again message
|
|
||||||
// from appearing after the user clicks on the OK button from the Empty Procedure message
|
|
||||||
_EmptyProcedure = true;
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup, myProcedure.Sections.Count);
|
OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup, myProcedure.Sections.Count);
|
||||||
|
|||||||
Reference in New Issue
Block a user