Compare commits
11 Commits
C2024-005
...
C2024-016-
Author | SHA1 | Date | |
---|---|---|---|
be3a5f64db | |||
d00d69b7af | |||
ff940005f9 | |||
10ecad47b2 | |||
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
|
||||||
|
@@ -223,6 +223,12 @@
|
|||||||
<Compile Include="dlgUCFDetail.Designer.cs">
|
<Compile Include="dlgUCFDetail.Designer.cs">
|
||||||
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="frmAnnotationResults.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmAnnotationResults.Designer.cs">
|
||||||
|
<DependentUpon>frmAnnotationResults.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmAnnotationsCleanup.cs">
|
<Compile Include="frmAnnotationsCleanup.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -340,6 +346,9 @@
|
|||||||
<EmbeddedResource Include="dlgUCFDetail.resx">
|
<EmbeddedResource Include="dlgUCFDetail.resx">
|
||||||
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
<DependentUpon>dlgUCFDetail.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmAnnotationResults.resx">
|
||||||
|
<DependentUpon>frmAnnotationResults.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmAnnotationsCleanup.resx">
|
<EmbeddedResource Include="frmAnnotationsCleanup.resx">
|
||||||
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
|
<DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
158
PROMS/VEPROMS User Interface/frmAnnotationResults.Designer.cs
generated
Normal file
158
PROMS/VEPROMS User Interface/frmAnnotationResults.Designer.cs
generated
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
|
||||||
|
namespace VEPROMS
|
||||||
|
{
|
||||||
|
partial class frmAnnotationResults
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.lblAnnotationResults = new System.Windows.Forms.Label();
|
||||||
|
this.lblResultTotal = new System.Windows.Forms.Label();
|
||||||
|
this.lblTotal = new System.Windows.Forms.Label();
|
||||||
|
this.lblType = new System.Windows.Forms.Label();
|
||||||
|
this.lblTypeTxt = new System.Windows.Forms.Label();
|
||||||
|
this.lblPlace1 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPlace1Txt = new System.Windows.Forms.Label();
|
||||||
|
this.lblPlace2 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPlace2Txt = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// lblAnnotationResults
|
||||||
|
//
|
||||||
|
this.lblAnnotationResults.AutoSize = true;
|
||||||
|
this.lblAnnotationResults.Location = new System.Drawing.Point(63, 9);
|
||||||
|
this.lblAnnotationResults.Name = "lblAnnotationResults";
|
||||||
|
this.lblAnnotationResults.Size = new System.Drawing.Size(138, 13);
|
||||||
|
this.lblAnnotationResults.TabIndex = 0;
|
||||||
|
this.lblAnnotationResults.Text = "Annotation Cleanup Results";
|
||||||
|
this.lblAnnotationResults.Click += new System.EventHandler(this.label1_Click);
|
||||||
|
//
|
||||||
|
// lblResultTotal
|
||||||
|
//
|
||||||
|
this.lblResultTotal.AutoSize = true;
|
||||||
|
this.lblResultTotal.Location = new System.Drawing.Point(159, 37);
|
||||||
|
this.lblResultTotal.Name = "lblResultTotal";
|
||||||
|
this.lblResultTotal.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.lblResultTotal.TabIndex = 1;
|
||||||
|
this.lblResultTotal.Text = "*****";
|
||||||
|
//
|
||||||
|
// lblTotal
|
||||||
|
//
|
||||||
|
this.lblTotal.AutoSize = true;
|
||||||
|
this.lblTotal.Location = new System.Drawing.Point(66, 37);
|
||||||
|
this.lblTotal.Name = "lblTotal";
|
||||||
|
this.lblTotal.Size = new System.Drawing.Size(69, 13);
|
||||||
|
this.lblTotal.TabIndex = 2;
|
||||||
|
this.lblTotal.Text = "Total remved";
|
||||||
|
//
|
||||||
|
// lblType
|
||||||
|
//
|
||||||
|
this.lblType.AutoSize = true;
|
||||||
|
this.lblType.Location = new System.Drawing.Point(66, 60);
|
||||||
|
this.lblType.Name = "lblType";
|
||||||
|
this.lblType.Size = new System.Drawing.Size(85, 13);
|
||||||
|
this.lblType.TabIndex = 3;
|
||||||
|
this.lblType.Text = "Annotation Type";
|
||||||
|
//
|
||||||
|
// lblTypeTxt
|
||||||
|
//
|
||||||
|
this.lblTypeTxt.AutoSize = true;
|
||||||
|
this.lblTypeTxt.Location = new System.Drawing.Point(159, 60);
|
||||||
|
this.lblTypeTxt.Name = "lblTypeTxt";
|
||||||
|
this.lblTypeTxt.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.lblTypeTxt.TabIndex = 4;
|
||||||
|
this.lblTypeTxt.Text = "*****";
|
||||||
|
//
|
||||||
|
// lblPlace1
|
||||||
|
//
|
||||||
|
this.lblPlace1.AutoSize = true;
|
||||||
|
this.lblPlace1.Location = new System.Drawing.Point(66, 87);
|
||||||
|
this.lblPlace1.Name = "lblPlace1";
|
||||||
|
this.lblPlace1.Size = new System.Drawing.Size(43, 13);
|
||||||
|
this.lblPlace1.TabIndex = 5;
|
||||||
|
this.lblPlace1.Text = "Place 1";
|
||||||
|
//
|
||||||
|
// lblPlace1Txt
|
||||||
|
//
|
||||||
|
this.lblPlace1Txt.AutoSize = true;
|
||||||
|
this.lblPlace1Txt.Location = new System.Drawing.Point(159, 87);
|
||||||
|
this.lblPlace1Txt.Name = "lblPlace1Txt";
|
||||||
|
this.lblPlace1Txt.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.lblPlace1Txt.TabIndex = 6;
|
||||||
|
this.lblPlace1Txt.Text = "*****";
|
||||||
|
//
|
||||||
|
// lblPlace2
|
||||||
|
//
|
||||||
|
this.lblPlace2.AutoSize = true;
|
||||||
|
this.lblPlace2.Location = new System.Drawing.Point(66, 115);
|
||||||
|
this.lblPlace2.Name = "lblPlace2";
|
||||||
|
this.lblPlace2.Size = new System.Drawing.Size(43, 13);
|
||||||
|
this.lblPlace2.TabIndex = 7;
|
||||||
|
this.lblPlace2.Text = "Place 2";
|
||||||
|
//
|
||||||
|
// lblPlace2Txt
|
||||||
|
//
|
||||||
|
this.lblPlace2Txt.AutoSize = true;
|
||||||
|
this.lblPlace2Txt.Location = new System.Drawing.Point(159, 115);
|
||||||
|
this.lblPlace2Txt.Name = "lblPlace2Txt";
|
||||||
|
this.lblPlace2Txt.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.lblPlace2Txt.TabIndex = 8;
|
||||||
|
this.lblPlace2Txt.Text = "*****";
|
||||||
|
//
|
||||||
|
// frmAnnotationResults
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(253, 157);
|
||||||
|
this.Controls.Add(this.lblPlace2Txt);
|
||||||
|
this.Controls.Add(this.lblPlace2);
|
||||||
|
this.Controls.Add(this.lblPlace1Txt);
|
||||||
|
this.Controls.Add(this.lblPlace1);
|
||||||
|
this.Controls.Add(this.lblTypeTxt);
|
||||||
|
this.Controls.Add(this.lblType);
|
||||||
|
this.Controls.Add(this.lblTotal);
|
||||||
|
this.Controls.Add(this.lblResultTotal);
|
||||||
|
this.Controls.Add(this.lblAnnotationResults);
|
||||||
|
this.Name = "frmAnnotationResults";
|
||||||
|
this.Text = "frmAnnotationResults";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label lblAnnotationResults;
|
||||||
|
private System.Windows.Forms.Label lblResultTotal;
|
||||||
|
private System.Windows.Forms.Label lblTotal;
|
||||||
|
private System.Windows.Forms.Label lblType;
|
||||||
|
private System.Windows.Forms.Label lblTypeTxt;
|
||||||
|
private System.Windows.Forms.Label lblPlace1;
|
||||||
|
private System.Windows.Forms.Label lblPlace1Txt;
|
||||||
|
private System.Windows.Forms.Label lblPlace2;
|
||||||
|
private System.Windows.Forms.Label lblPlace2Txt;
|
||||||
|
}
|
||||||
|
}
|
25
PROMS/VEPROMS User Interface/frmAnnotationResults.cs
Normal file
25
PROMS/VEPROMS User Interface/frmAnnotationResults.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace VEPROMS
|
||||||
|
{
|
||||||
|
public partial class frmAnnotationResults : Form
|
||||||
|
{
|
||||||
|
public frmAnnotationResults()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
150
PROMS/VEPROMS User Interface/frmAnnotationResults.resx
Normal file
150
PROMS/VEPROMS User Interface/frmAnnotationResults.resx
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="lblAnnotationResults.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblResultTotal.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblTotal.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblType.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblTypeTxt.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblPlace1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblPlace1Txt.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblPlace2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="lblPlace2Txt.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
@@ -22,6 +22,8 @@ namespace VEPROMS
|
|||||||
string procList = "";
|
string procList = "";
|
||||||
string docvList = "";
|
string docvList = "";
|
||||||
int AnnotationTyp;
|
int AnnotationTyp;
|
||||||
|
string AnnotationName = "";
|
||||||
|
string totalDeleteCnt = "";
|
||||||
List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
|
List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
|
||||||
List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
|
List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
|
||||||
private frmBatchRefresh mainForm = null;
|
private frmBatchRefresh mainForm = null;
|
||||||
@@ -102,13 +104,26 @@ namespace VEPROMS
|
|||||||
// Process used to cleanup annotations "(Proceed?" button)
|
// Process used to cleanup annotations "(Proceed?" button)
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void button1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
TextBox frm2 = mainForm.GettxtProcess();
|
||||||
|
TextBox frm3 = mainForm.GettxtResults();
|
||||||
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
|
AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||||
|
frm3.AppendText("Deleting Annotations: Annotation Type: " + '"' + AnnotationName + '"');
|
||||||
|
frm3.AppendText(Environment.NewLine + "P = Procedure, F = Folder" + Environment.NewLine);
|
||||||
|
int deletecountProc = 0;
|
||||||
|
int deletecountDocv = 0;
|
||||||
foreach (var p in pil2)
|
foreach (var p in pil2)
|
||||||
{
|
{
|
||||||
if (p.IsProcedure)
|
if (p.IsProcedure)
|
||||||
{
|
{
|
||||||
TextBox frm2 = mainForm.GettxtProcess();
|
//AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
frm2.AppendText(p.DisplayNumber + ' ' + p.DisplayText);
|
//AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||||
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
//deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, getAnnotationProcItems(p));
|
||||||
|
deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, p.ItemID.ToString());
|
||||||
|
frm2.AppendText(Environment.NewLine + p.DisplayNumber + ' ' + p.DisplayText);
|
||||||
|
//frm3.AppendText(Environment.NewLine + "P: " + p.DisplayNumber + '"' + p.DisplayText + '"' + " Type: " + '"' + AnnotationName + '"' + " count: " + deletecountProc);
|
||||||
|
frm3.AppendText(Environment.NewLine + "P: " + p.DisplayNumber + '"' + p.DisplayText + '"' + " Delete count: " + deletecountProc);
|
||||||
Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
|
Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
|
||||||
lblCountNumber.Text = "0";
|
lblCountNumber.Text = "0";
|
||||||
}
|
}
|
||||||
@@ -118,14 +133,21 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
if (d.IsDocVersion)
|
if (d.IsDocVersion)
|
||||||
{
|
{
|
||||||
TextBox frm2 = mainForm.GettxtProcess();
|
//AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
frm2.AppendText(d.ActiveParent.ToString());
|
//AnnotationName = System.Convert.ToString(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Value);
|
||||||
|
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, d.VersionID.ToString());
|
||||||
|
frm2.AppendText(Environment.NewLine + d.ActiveParent.ToString());
|
||||||
|
frm3.AppendText(Environment.NewLine + "F: " + '"' + d.ActiveParent.ToString() + '"' + " Delete count: " + deletecountDocv);
|
||||||
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
|
||||||
Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
|
Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
|
||||||
|
|
||||||
lblCountNumber.Text = "0";
|
lblCountNumber.Text = "0";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
frm3.AppendText(Environment.NewLine + Environment.NewLine + "Total Annotations Deleted: " + totalDeleteCnt + Environment.NewLine + Environment.NewLine);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve number of annotations that will be deleted.
|
// Retrieve number of annotations that will be deleted.
|
||||||
private void lbAnnotationTypes_SelectedIndexChanged(object sender, EventArgs e)
|
private void lbAnnotationTypes_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -145,6 +167,7 @@ namespace VEPROMS
|
|||||||
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, getAnnotationDocvItems(dvil2));
|
deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, getAnnotationDocvItems(dvil2));
|
||||||
}
|
}
|
||||||
lblCountNumber.Text = (deletecountProc + deletecountDocv).ToString();
|
lblCountNumber.Text = (deletecountProc + deletecountDocv).ToString();
|
||||||
|
totalDeleteCnt = (deletecountProc + deletecountDocv).ToString();
|
||||||
btnClean.Enabled = true;
|
btnClean.Enabled = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -156,3 +179,5 @@ namespace VEPROMS
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
@@ -618,9 +583,9 @@
|
|||||||
this.btnDeleteItems.Name = "btnDeleteItems";
|
this.btnDeleteItems.Name = "btnDeleteItems";
|
||||||
this.btnDeleteItems.Size = new System.Drawing.Size(212, 23);
|
this.btnDeleteItems.Size = new System.Drawing.Size(212, 23);
|
||||||
this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||||
this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, new DevComponents.DotNetBar.SuperTooltipInfo("Process Deletions", "", "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.\r\n\r\nClick on the on" +
|
this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, new DevComponents.DotNetBar.SuperTooltipInfo("Process Links", "", "This will run the selected RO Links or Transitions Links tool.\r\n\r\nClick on the on" +
|
||||||
"/off switches to turn on/off each tool.\r\n\r\nNote that only one of these tools can" +
|
"/off switches to turn on/off each tool.\r\n\r\nNote that only one of these tools can" +
|
||||||
" be run at a time.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 175)));
|
" be run at a time.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 130)));
|
||||||
this.btnDeleteItems.TabIndex = 35;
|
this.btnDeleteItems.TabIndex = 35;
|
||||||
this.btnDeleteItems.Text = "Process Deletions";
|
this.btnDeleteItems.Text = "Process Deletions";
|
||||||
this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
|
this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
@@ -65,6 +61,13 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
return txtProcess;
|
return txtProcess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make txtResults text box available to frmAnnotationsClean form.
|
||||||
|
internal TextBox GettxtResults()
|
||||||
|
{
|
||||||
|
return txtResults;
|
||||||
|
}
|
||||||
|
|
||||||
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
|
// NOTE: removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
|
||||||
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
|
// the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both
|
||||||
// also annotations will be placed on step elements that have RO changes
|
// also annotations will be placed on step elements that have RO changes
|
||||||
@@ -98,7 +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.
|
||||||
@@ -141,8 +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;
|
||||||
@@ -165,6 +165,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 +178,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 +1237,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 +1252,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 +1262,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 +1277,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 +1389,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 +1466,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 +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);
|
||||||
@@ -1734,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);
|
||||||
@@ -1748,31 +1691,45 @@ 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
|
||||||
{
|
{
|
||||||
// Write progress status
|
// Write progress status
|
||||||
txtProcess.AppendText("Deleting Annotations...");
|
txtProcess.AppendText("Deleting Annotations..." + Environment.NewLine);
|
||||||
|
|
||||||
// Create a list of procedures the user selected
|
// Create a list of procedures the user selected
|
||||||
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
List<ProcedureInfo> pil = new List<ProcedureInfo>();
|
||||||
@@ -1789,10 +1746,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 +1760,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 +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})");
|
|
||||||
}
|
}
|
||||||
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()
|
||||||
@@ -1887,3 +1799,5 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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