Compare commits
45 Commits
F2025-026_
...
C2019-036
| Author | SHA1 | Date | |
|---|---|---|---|
| bd89af5e8c | |||
| b0e4128d3c | |||
| 875a8f101a | |||
| c5a8ef57ac | |||
| c8adeed187 | |||
| 49f5f506d4 | |||
| 1c87585570 | |||
| 30eb52da77 | |||
| 6f089482e6 | |||
| 8e221cc263 | |||
| 441917b670 | |||
| 6251de3b38 | |||
| d731125a14 | |||
| d6fe64bc40 | |||
| f8b93807ae | |||
| 2287a111c1 | |||
| a08d92ea41 | |||
| c41d7981ba | |||
| 37f5336806 | |||
| ebdc98dfa7 | |||
| f3c8c860f5 | |||
| f7b27142c4 | |||
| 4fc37c54c5 | |||
| 849e1e57dd | |||
| c768ca5eba | |||
| c9516d90e9 | |||
| 327aae687a | |||
| 3cbe4617eb | |||
| de69fe6b6f | |||
| e53101dacb | |||
| d3ec749848 | |||
| 410b7d3dd6 | |||
| e87b233713 | |||
| ca38ecb1cf | |||
| 5dfa70dc10 | |||
| ff3daff15a | |||
| 7b7f235354 | |||
| 779c6247cd | |||
| fcaffa8c5f | |||
| d2ffcc903a | |||
| 1d12c97e30 | |||
| 3bcaeb214e | |||
| 85995040a8 | |||
| 826d06b532 | |||
| 3328e35cf4 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1099,7 +1099,9 @@ namespace VEPROMS
|
||||
(int)changeBarData.FixedChangeColumn :
|
||||
System.Convert.ToInt32(changeBarData.DefaultCBLoc.Split(" ,".ToCharArray())[System.Convert.ToInt32(cbd.MyChangeBarLoc)]);
|
||||
//cbd.MyChangeBarColumn = (int)changeBarData.FixedChangeColumn;
|
||||
if (cbd.MyChangeBarText == PrintChangeBarText.UserDef)
|
||||
if (cbd.MyChangeBarText == PrintChangeBarText.UserDef && !string.IsNullOrEmpty(ppTxbxChangeBarUserMsgOne.Text))
|
||||
cbd.MyChangeBarMessage = ppTxbxChangeBarUserMsgOne.Text + @"\n" + ppTxbxChangeBarUserMsgTwo.Text;
|
||||
else if (cbd.MyChangeBarText == PrintChangeBarText.UserDef)
|
||||
cbd.MyChangeBarMessage = _DocVersionConfig.Print_UserCBMess1 + @"\n" + _DocVersionConfig.Print_UserCBMess2;
|
||||
|
||||
}
|
||||
|
||||
@@ -28,328 +28,416 @@ namespace VEPROMS
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.tcSecurity = new System.Windows.Forms.TabControl();
|
||||
this.tpGroupUsers = new System.Windows.Forms.TabPage();
|
||||
this.pnlMembers = new System.Windows.Forms.Panel();
|
||||
this.lstMembers = new System.Windows.Forms.ListBox();
|
||||
this.lblMembers = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.tvFolders = new System.Windows.Forms.TreeView();
|
||||
this.cmFolders = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.createSetAdministratorGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createWriterGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createROEToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createReviewerGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.lstUsers = new System.Windows.Forms.ListBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.lstGroups = new System.Windows.Forms.ListBox();
|
||||
this.tpDefault = new System.Windows.Forms.TabPage();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.pnlGroups = new System.Windows.Forms.Panel();
|
||||
this.cmMembers = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.removeMemberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cmUsers = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addMemberToolStripMenuItemUser = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cmGroups = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.deleteGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addMemberToolStripMenuItemGroup = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tcSecurity.SuspendLayout();
|
||||
this.tpGroupUsers.SuspendLayout();
|
||||
this.pnlMembers.SuspendLayout();
|
||||
this.cmFolders.SuspendLayout();
|
||||
this.tpDefault.SuspendLayout();
|
||||
this.cmMembers.SuspendLayout();
|
||||
this.cmUsers.SuspendLayout();
|
||||
this.cmGroups.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tcSecurity
|
||||
//
|
||||
this.tcSecurity.Controls.Add(this.tpGroupUsers);
|
||||
this.tcSecurity.Controls.Add(this.tpDefault);
|
||||
this.tcSecurity.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tcSecurity.Location = new System.Drawing.Point(0, 0);
|
||||
this.tcSecurity.Name = "tcSecurity";
|
||||
this.tcSecurity.SelectedIndex = 0;
|
||||
this.tcSecurity.Size = new System.Drawing.Size(784, 564);
|
||||
this.tcSecurity.TabIndex = 0;
|
||||
//
|
||||
// tpGroupUsers
|
||||
//
|
||||
this.tpGroupUsers.BackColor = System.Drawing.SystemColors.ButtonFace;
|
||||
this.tpGroupUsers.Controls.Add(this.pnlMembers);
|
||||
this.tpGroupUsers.Controls.Add(this.label6);
|
||||
this.tpGroupUsers.Controls.Add(this.tvFolders);
|
||||
this.tpGroupUsers.Controls.Add(this.lstUsers);
|
||||
this.tpGroupUsers.Controls.Add(this.label5);
|
||||
this.tpGroupUsers.Controls.Add(this.label3);
|
||||
this.tpGroupUsers.Controls.Add(this.lstGroups);
|
||||
this.tpGroupUsers.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpGroupUsers.Name = "tpGroupUsers";
|
||||
this.tpGroupUsers.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpGroupUsers.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpGroupUsers.TabIndex = 2;
|
||||
this.tpGroupUsers.Text = "Folders, Groups and Users";
|
||||
//
|
||||
// pnlMembers
|
||||
//
|
||||
this.pnlMembers.Controls.Add(this.lstMembers);
|
||||
this.pnlMembers.Controls.Add(this.lblMembers);
|
||||
this.pnlMembers.Location = new System.Drawing.Point(384, 304);
|
||||
this.pnlMembers.Name = "pnlMembers";
|
||||
this.pnlMembers.Size = new System.Drawing.Size(386, 232);
|
||||
this.pnlMembers.TabIndex = 12;
|
||||
//
|
||||
// lstMembers
|
||||
//
|
||||
this.lstMembers.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lstMembers.FormattingEnabled = true;
|
||||
this.lstMembers.Location = new System.Drawing.Point(0, 19);
|
||||
this.lstMembers.Name = "lstMembers";
|
||||
this.lstMembers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.lstMembers.Size = new System.Drawing.Size(386, 212);
|
||||
this.lstMembers.TabIndex = 10;
|
||||
this.lstMembers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstMembers_MouseUp);
|
||||
//
|
||||
// lblMembers
|
||||
//
|
||||
this.lblMembers.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lblMembers.Location = new System.Drawing.Point(0, 0);
|
||||
this.lblMembers.Name = "lblMembers";
|
||||
this.lblMembers.Size = new System.Drawing.Size(386, 19);
|
||||
this.lblMembers.TabIndex = 2;
|
||||
this.lblMembers.Text = "Members";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(8, 5);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(41, 13);
|
||||
this.label6.TabIndex = 7;
|
||||
this.label6.Text = "Folders";
|
||||
//
|
||||
// tvFolders
|
||||
//
|
||||
this.tvFolders.ContextMenuStrip = this.cmFolders;
|
||||
this.tvFolders.HideSelection = false;
|
||||
this.tvFolders.Location = new System.Drawing.Point(8, 21);
|
||||
this.tvFolders.Name = "tvFolders";
|
||||
this.tvFolders.Size = new System.Drawing.Size(370, 511);
|
||||
this.tvFolders.TabIndex = 6;
|
||||
this.tvFolders.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvFolders_NodeMouseClick);
|
||||
//
|
||||
// cmFolders
|
||||
//
|
||||
this.cmFolders.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.tcSecurity = new System.Windows.Forms.TabControl();
|
||||
this.tpManageFolders = new System.Windows.Forms.TabPage();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.tvFolders = new System.Windows.Forms.TreeView();
|
||||
this.cmFolders = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.createSetAdministratorGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createWriterGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createROEToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.createReviewerGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tpManageGroups = new System.Windows.Forms.TabPage();
|
||||
this.btnAddMember = new System.Windows.Forms.Button();
|
||||
this.btnRemoveMember = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lbNonMembers = new System.Windows.Forms.Label();
|
||||
this.btnDeleteGroup = new System.Windows.Forms.Button();
|
||||
this.cbGroupSelection = new System.Windows.Forms.ComboBox();
|
||||
this.lstNonMembers = new System.Windows.Forms.ListBox();
|
||||
this.pnlMembers = new System.Windows.Forms.Panel();
|
||||
this.lstMembers = new System.Windows.Forms.ListBox();
|
||||
this.lblMembers = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.tpManageUsers = new System.Windows.Forms.TabPage();
|
||||
this.lblUserGroups = new System.Windows.Forms.Label();
|
||||
this.lstGroups = new System.Windows.Forms.ListBox();
|
||||
this.lstUsers = new System.Windows.Forms.ListBox();
|
||||
this.lblUsers = new System.Windows.Forms.Label();
|
||||
this.tpDefault = new System.Windows.Forms.TabPage();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.pnlGroups = new System.Windows.Forms.Panel();
|
||||
this.cmMembers = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.removeMemberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cmUsers = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tt = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.tcSecurity.SuspendLayout();
|
||||
this.tpManageFolders.SuspendLayout();
|
||||
this.cmFolders.SuspendLayout();
|
||||
this.tpManageGroups.SuspendLayout();
|
||||
this.pnlMembers.SuspendLayout();
|
||||
this.tpManageUsers.SuspendLayout();
|
||||
this.tpDefault.SuspendLayout();
|
||||
this.cmUsers.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tcSecurity
|
||||
//
|
||||
this.tcSecurity.Controls.Add(this.tpManageFolders);
|
||||
this.tcSecurity.Controls.Add(this.tpManageGroups);
|
||||
this.tcSecurity.Controls.Add(this.tpManageUsers);
|
||||
this.tcSecurity.Controls.Add(this.tpDefault);
|
||||
this.tcSecurity.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tcSecurity.Location = new System.Drawing.Point(0, 0);
|
||||
this.tcSecurity.Name = "tcSecurity";
|
||||
this.tcSecurity.SelectedIndex = 0;
|
||||
this.tcSecurity.Size = new System.Drawing.Size(784, 564);
|
||||
this.tcSecurity.TabIndex = 0;
|
||||
this.tcSecurity.SelectedIndexChanged += new System.EventHandler(this.changedTab);
|
||||
//
|
||||
// tpManageFolders
|
||||
//
|
||||
this.tpManageFolders.BackColor = System.Drawing.SystemColors.ButtonFace;
|
||||
this.tpManageFolders.Controls.Add(this.label6);
|
||||
this.tpManageFolders.Controls.Add(this.tvFolders);
|
||||
this.tpManageFolders.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpManageFolders.Name = "tpManageFolders";
|
||||
this.tpManageFolders.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpManageFolders.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpManageFolders.TabIndex = 2;
|
||||
this.tpManageFolders.Text = "Manage Folders / Add Groups";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label6.Location = new System.Drawing.Point(8, 5);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(55, 15);
|
||||
this.label6.TabIndex = 7;
|
||||
this.label6.Text = "Folders";
|
||||
//
|
||||
// tvFolders
|
||||
//
|
||||
this.tvFolders.ContextMenuStrip = this.cmFolders;
|
||||
this.tvFolders.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.tvFolders.HideSelection = false;
|
||||
this.tvFolders.Location = new System.Drawing.Point(3, 32);
|
||||
this.tvFolders.Name = "tvFolders";
|
||||
this.tvFolders.Size = new System.Drawing.Size(770, 503);
|
||||
this.tvFolders.TabIndex = 6;
|
||||
this.tvFolders.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvFolders_NodeMouseClick);
|
||||
//
|
||||
// cmFolders
|
||||
//
|
||||
this.cmFolders.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.createSetAdministratorGroupToolStripMenuItem,
|
||||
this.createWriterGroupToolStripMenuItem,
|
||||
this.createROEToolStripMenuItem,
|
||||
this.createReviewerGroupToolStripMenuItem});
|
||||
this.cmFolders.Name = "cmFolders";
|
||||
this.cmFolders.Size = new System.Drawing.Size(249, 92);
|
||||
//
|
||||
// createSetAdministratorGroupToolStripMenuItem
|
||||
//
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Name = "createSetAdministratorGroupToolStripMenuItem";
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Text = "Create a Set Administrator Group";
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createWriterGroupToolStripMenuItem
|
||||
//
|
||||
this.createWriterGroupToolStripMenuItem.Name = "createWriterGroupToolStripMenuItem";
|
||||
this.createWriterGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createWriterGroupToolStripMenuItem.Text = "Create a Writer Group";
|
||||
this.createWriterGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createROEToolStripMenuItem
|
||||
//
|
||||
this.createROEToolStripMenuItem.Name = "createROEToolStripMenuItem";
|
||||
this.createROEToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createROEToolStripMenuItem.Text = "Create a RO Editor Group";
|
||||
this.createROEToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createReviewerGroupToolStripMenuItem
|
||||
//
|
||||
this.createReviewerGroupToolStripMenuItem.Name = "createReviewerGroupToolStripMenuItem";
|
||||
this.createReviewerGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createReviewerGroupToolStripMenuItem.Text = "Create a Reviewer Group";
|
||||
this.createReviewerGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// lstUsers
|
||||
//
|
||||
this.lstUsers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lstUsers.FormattingEnabled = true;
|
||||
this.lstUsers.Location = new System.Drawing.Point(630, 21);
|
||||
this.lstUsers.Name = "lstUsers";
|
||||
this.lstUsers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.lstUsers.Size = new System.Drawing.Size(140, 277);
|
||||
this.lstUsers.TabIndex = 5;
|
||||
this.lstUsers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstUsers_MouseUp);
|
||||
this.lstUsers.SelectedIndexChanged += new System.EventHandler(this.lstUsers_SelectedIndexChanged);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(630, 6);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(34, 13);
|
||||
this.label5.TabIndex = 4;
|
||||
this.label5.Text = "Users";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(381, 6);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(41, 13);
|
||||
this.label3.TabIndex = 1;
|
||||
this.label3.Text = "Groups";
|
||||
//
|
||||
// lstGroups
|
||||
//
|
||||
this.lstGroups.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lstGroups.FormattingEnabled = true;
|
||||
this.lstGroups.Location = new System.Drawing.Point(384, 21);
|
||||
this.lstGroups.Name = "lstGroups";
|
||||
this.lstGroups.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.lstGroups.Size = new System.Drawing.Size(240, 277);
|
||||
this.lstGroups.TabIndex = 0;
|
||||
this.lstGroups.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstGroups_MouseUp);
|
||||
this.lstGroups.SelectedIndexChanged += new System.EventHandler(this.lstGroups_SelectedIndexChanged);
|
||||
//
|
||||
// tpDefault
|
||||
//
|
||||
this.tpDefault.BackColor = System.Drawing.SystemColors.ButtonFace;
|
||||
this.tpDefault.Controls.Add(this.label8);
|
||||
this.tpDefault.Controls.Add(this.pnlGroups);
|
||||
this.tpDefault.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpDefault.Name = "tpDefault";
|
||||
this.tpDefault.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpDefault.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpDefault.TabIndex = 0;
|
||||
this.tpDefault.Text = "Default Group";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Location = new System.Drawing.Point(308, 6);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(460, 172);
|
||||
this.label8.TabIndex = 5;
|
||||
this.label8.Text = "label8";
|
||||
//
|
||||
// pnlGroups
|
||||
//
|
||||
this.pnlGroups.AutoScroll = true;
|
||||
this.pnlGroups.Location = new System.Drawing.Point(3, 6);
|
||||
this.pnlGroups.Name = "pnlGroups";
|
||||
this.pnlGroups.Size = new System.Drawing.Size(299, 526);
|
||||
this.pnlGroups.TabIndex = 4;
|
||||
//
|
||||
// cmMembers
|
||||
//
|
||||
this.cmMembers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.removeMemberToolStripMenuItem});
|
||||
this.cmMembers.Name = "cmGroupMembers";
|
||||
this.cmMembers.Size = new System.Drawing.Size(166, 26);
|
||||
//
|
||||
// removeMemberToolStripMenuItem
|
||||
//
|
||||
this.removeMemberToolStripMenuItem.Name = "removeMemberToolStripMenuItem";
|
||||
this.removeMemberToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||
this.removeMemberToolStripMenuItem.Text = "Remove Member";
|
||||
this.removeMemberToolStripMenuItem.Click += new System.EventHandler(this.removeMemberToolStripMenuItem_Click);
|
||||
//
|
||||
// cmUsers
|
||||
//
|
||||
this.cmUsers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.cmFolders.Name = "cmFolders";
|
||||
this.cmFolders.Size = new System.Drawing.Size(249, 92);
|
||||
//
|
||||
// createSetAdministratorGroupToolStripMenuItem
|
||||
//
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Name = "createSetAdministratorGroupToolStripMenuItem";
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Text = "Create a Set Administrator Group";
|
||||
this.createSetAdministratorGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createWriterGroupToolStripMenuItem
|
||||
//
|
||||
this.createWriterGroupToolStripMenuItem.Name = "createWriterGroupToolStripMenuItem";
|
||||
this.createWriterGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createWriterGroupToolStripMenuItem.Text = "Create a Writer Group";
|
||||
this.createWriterGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createROEToolStripMenuItem
|
||||
//
|
||||
this.createROEToolStripMenuItem.Name = "createROEToolStripMenuItem";
|
||||
this.createROEToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createROEToolStripMenuItem.Text = "Create a RO Editor Group";
|
||||
this.createROEToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// createReviewerGroupToolStripMenuItem
|
||||
//
|
||||
this.createReviewerGroupToolStripMenuItem.Name = "createReviewerGroupToolStripMenuItem";
|
||||
this.createReviewerGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22);
|
||||
this.createReviewerGroupToolStripMenuItem.Text = "Create a Reviewer Group";
|
||||
this.createReviewerGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem);
|
||||
//
|
||||
// tpManageGroups
|
||||
//
|
||||
this.tpManageGroups.Controls.Add(this.btnAddMember);
|
||||
this.tpManageGroups.Controls.Add(this.btnRemoveMember);
|
||||
this.tpManageGroups.Controls.Add(this.label1);
|
||||
this.tpManageGroups.Controls.Add(this.lbNonMembers);
|
||||
this.tpManageGroups.Controls.Add(this.btnDeleteGroup);
|
||||
this.tpManageGroups.Controls.Add(this.cbGroupSelection);
|
||||
this.tpManageGroups.Controls.Add(this.lstNonMembers);
|
||||
this.tpManageGroups.Controls.Add(this.pnlMembers);
|
||||
this.tpManageGroups.Controls.Add(this.label3);
|
||||
this.tpManageGroups.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpManageGroups.Name = "tpManageGroups";
|
||||
this.tpManageGroups.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpManageGroups.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpManageGroups.TabIndex = 3;
|
||||
this.tpManageGroups.Text = "Manage Groups";
|
||||
this.tpManageGroups.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnAddMember
|
||||
//
|
||||
this.btnAddMember.Location = new System.Drawing.Point(337, 190);
|
||||
this.btnAddMember.Name = "btnAddMember";
|
||||
this.btnAddMember.Size = new System.Drawing.Size(36, 29);
|
||||
this.btnAddMember.TabIndex = 19;
|
||||
this.btnAddMember.Text = "<<";
|
||||
this.tt.SetToolTip(this.btnAddMember, "Add User as Members of Group");
|
||||
this.btnAddMember.UseVisualStyleBackColor = true;
|
||||
this.btnAddMember.Click += new System.EventHandler(this.addMember_Click);
|
||||
//
|
||||
// btnRemoveMember
|
||||
//
|
||||
this.btnRemoveMember.Location = new System.Drawing.Point(337, 254);
|
||||
this.btnRemoveMember.Name = "btnRemoveMember";
|
||||
this.btnRemoveMember.Size = new System.Drawing.Size(36, 29);
|
||||
this.btnRemoveMember.TabIndex = 18;
|
||||
this.btnRemoveMember.Text = ">>";
|
||||
this.tt.SetToolTip(this.btnRemoveMember, "Remove User From Group");
|
||||
this.btnRemoveMember.UseVisualStyleBackColor = true;
|
||||
this.btnRemoveMember.Click += new System.EventHandler(this.removeMember_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(386, 42);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(97, 15);
|
||||
this.label1.TabIndex = 17;
|
||||
this.label1.Text = "Non Members";
|
||||
//
|
||||
// lbNonMembers
|
||||
//
|
||||
this.lbNonMembers.AutoSize = true;
|
||||
this.lbNonMembers.Location = new System.Drawing.Point(386, 42);
|
||||
this.lbNonMembers.Name = "lbNonMembers";
|
||||
this.lbNonMembers.Size = new System.Drawing.Size(73, 13);
|
||||
this.lbNonMembers.TabIndex = 17;
|
||||
this.lbNonMembers.Text = "Non Members";
|
||||
//
|
||||
// btnDeleteGroup
|
||||
//
|
||||
this.btnDeleteGroup.ForeColor = System.Drawing.Color.Red;
|
||||
this.btnDeleteGroup.Location = new System.Drawing.Point(668, 12);
|
||||
this.btnDeleteGroup.Name = "btnDeleteGroup";
|
||||
this.btnDeleteGroup.Size = new System.Drawing.Size(89, 23);
|
||||
this.btnDeleteGroup.TabIndex = 16;
|
||||
this.btnDeleteGroup.Text = "Delete Group";
|
||||
this.btnDeleteGroup.UseVisualStyleBackColor = true;
|
||||
this.btnDeleteGroup.Click += new System.EventHandler(this.deleteGroup_Click);
|
||||
//
|
||||
// cbGroupSelection
|
||||
//
|
||||
this.cbGroupSelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbGroupSelection.FormattingEnabled = true;
|
||||
this.cbGroupSelection.Location = new System.Drawing.Point(50, 9);
|
||||
this.cbGroupSelection.Name = "cbGroupSelection";
|
||||
this.cbGroupSelection.Size = new System.Drawing.Size(272, 21);
|
||||
this.cbGroupSelection.TabIndex = 15;
|
||||
this.cbGroupSelection.SelectedIndexChanged += new System.EventHandler(this.cbGroupSelection_SelectedIndexChanged);
|
||||
//
|
||||
// lstNonMembers
|
||||
//
|
||||
this.lstNonMembers.FormattingEnabled = true;
|
||||
this.lstNonMembers.Location = new System.Drawing.Point(389, 61);
|
||||
this.lstNonMembers.Name = "lstNonMembers";
|
||||
this.lstNonMembers.Size = new System.Drawing.Size(316, 472);
|
||||
this.lstNonMembers.TabIndex = 14;
|
||||
//
|
||||
// pnlMembers
|
||||
//
|
||||
this.pnlMembers.Controls.Add(this.lstMembers);
|
||||
this.pnlMembers.Controls.Add(this.lblMembers);
|
||||
this.pnlMembers.Location = new System.Drawing.Point(6, 42);
|
||||
this.pnlMembers.Name = "pnlMembers";
|
||||
this.pnlMembers.Size = new System.Drawing.Size(316, 493);
|
||||
this.pnlMembers.TabIndex = 13;
|
||||
//
|
||||
// lstMembers
|
||||
//
|
||||
this.lstMembers.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lstMembers.FormattingEnabled = true;
|
||||
this.lstMembers.Location = new System.Drawing.Point(0, 19);
|
||||
this.lstMembers.Name = "lstMembers";
|
||||
this.lstMembers.Size = new System.Drawing.Size(316, 474);
|
||||
this.lstMembers.TabIndex = 10;
|
||||
//
|
||||
// lblMembers
|
||||
//
|
||||
this.lblMembers.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.lblMembers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblMembers.Location = new System.Drawing.Point(0, 0);
|
||||
this.lblMembers.Name = "lblMembers";
|
||||
this.lblMembers.Size = new System.Drawing.Size(316, 19);
|
||||
this.lblMembers.TabIndex = 2;
|
||||
this.lblMembers.Text = "Selected Group Users";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(3, 12);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(39, 13);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "Group:";
|
||||
//
|
||||
// tpManageUsers
|
||||
//
|
||||
this.tpManageUsers.Controls.Add(this.lblUserGroups);
|
||||
this.tpManageUsers.Controls.Add(this.lstGroups);
|
||||
this.tpManageUsers.Controls.Add(this.lstUsers);
|
||||
this.tpManageUsers.Controls.Add(this.lblUsers);
|
||||
this.tpManageUsers.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpManageUsers.Name = "tpManageUsers";
|
||||
this.tpManageUsers.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpManageUsers.TabIndex = 4;
|
||||
this.tpManageUsers.Text = "Manage Users";
|
||||
this.tpManageUsers.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblUserGroups
|
||||
//
|
||||
this.lblUserGroups.AutoSize = true;
|
||||
this.lblUserGroups.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblUserGroups.Location = new System.Drawing.Point(268, 11);
|
||||
this.lblUserGroups.Name = "lblUserGroups";
|
||||
this.lblUserGroups.Size = new System.Drawing.Size(225, 15);
|
||||
this.lblUserGroups.TabIndex = 9;
|
||||
this.lblUserGroups.Text = "Groups That User Is a Member Of:";
|
||||
//
|
||||
// lstGroups
|
||||
//
|
||||
this.lstGroups.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lstGroups.FormattingEnabled = true;
|
||||
this.lstGroups.Location = new System.Drawing.Point(271, 36);
|
||||
this.lstGroups.Name = "lstGroups";
|
||||
this.lstGroups.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.lstGroups.Size = new System.Drawing.Size(502, 498);
|
||||
this.lstGroups.TabIndex = 8;
|
||||
this.lstGroups.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstGroups_MouseUp);
|
||||
//
|
||||
// lstUsers
|
||||
//
|
||||
this.lstUsers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lstUsers.FormattingEnabled = true;
|
||||
this.lstUsers.Location = new System.Drawing.Point(8, 36);
|
||||
this.lstUsers.Name = "lstUsers";
|
||||
this.lstUsers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.lstUsers.Size = new System.Drawing.Size(217, 498);
|
||||
this.lstUsers.TabIndex = 7;
|
||||
this.lstUsers.SelectedIndexChanged += new System.EventHandler(this.lstUsers_SelectedIndexChanged);
|
||||
this.lstUsers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstUsers_MouseUp);
|
||||
//
|
||||
// lblUsers
|
||||
//
|
||||
this.lblUsers.AutoSize = true;
|
||||
this.lblUsers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblUsers.Location = new System.Drawing.Point(8, 11);
|
||||
this.lblUsers.Name = "lblUsers";
|
||||
this.lblUsers.Size = new System.Drawing.Size(44, 15);
|
||||
this.lblUsers.TabIndex = 6;
|
||||
this.lblUsers.Text = "Users";
|
||||
//
|
||||
// tpDefault
|
||||
//
|
||||
this.tpDefault.BackColor = System.Drawing.SystemColors.ButtonFace;
|
||||
this.tpDefault.Controls.Add(this.label8);
|
||||
this.tpDefault.Controls.Add(this.pnlGroups);
|
||||
this.tpDefault.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpDefault.Name = "tpDefault";
|
||||
this.tpDefault.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpDefault.Size = new System.Drawing.Size(776, 538);
|
||||
this.tpDefault.TabIndex = 0;
|
||||
this.tpDefault.Text = "Default Group";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Location = new System.Drawing.Point(308, 6);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(460, 172);
|
||||
this.label8.TabIndex = 5;
|
||||
this.label8.Text = "label8";
|
||||
//
|
||||
// pnlGroups
|
||||
//
|
||||
this.pnlGroups.AutoScroll = true;
|
||||
this.pnlGroups.Location = new System.Drawing.Point(3, 6);
|
||||
this.pnlGroups.Name = "pnlGroups";
|
||||
this.pnlGroups.Size = new System.Drawing.Size(299, 526);
|
||||
this.pnlGroups.TabIndex = 4;
|
||||
//
|
||||
// cmMembers
|
||||
//
|
||||
this.cmMembers.Name = "cmGroupMembers";
|
||||
this.cmMembers.Size = new System.Drawing.Size(61, 4);
|
||||
//
|
||||
// removeMemberToolStripMenuItem
|
||||
//
|
||||
this.removeMemberToolStripMenuItem.Name = "removeMemberToolStripMenuItem";
|
||||
this.removeMemberToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||
this.removeMemberToolStripMenuItem.Text = "Remove Member";
|
||||
this.removeMemberToolStripMenuItem.Click += new System.EventHandler(this.removeMemberToolStripMenuItem_Click);
|
||||
//
|
||||
// cmUsers
|
||||
//
|
||||
this.cmUsers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addUserToolStripMenuItem,
|
||||
this.editUserToolStripMenuItem,
|
||||
this.deleteUserToolStripMenuItem,
|
||||
this.addMemberToolStripMenuItemUser});
|
||||
this.cmUsers.Name = "cmUsers";
|
||||
this.cmUsers.Size = new System.Drawing.Size(153, 114);
|
||||
//
|
||||
// addUserToolStripMenuItem
|
||||
//
|
||||
this.addUserToolStripMenuItem.Name = "addUserToolStripMenuItem";
|
||||
this.addUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.addUserToolStripMenuItem.Text = "Add User";
|
||||
this.addUserToolStripMenuItem.Click += new System.EventHandler(this.addUserToolStripMenuItem_Click);
|
||||
//
|
||||
// editUserToolStripMenuItem
|
||||
//
|
||||
this.editUserToolStripMenuItem.Name = "editUserToolStripMenuItem";
|
||||
this.editUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.editUserToolStripMenuItem.Text = "Edit User";
|
||||
this.editUserToolStripMenuItem.Click += new System.EventHandler(this.editUserToolStripMenuItem_Click);
|
||||
//
|
||||
// deleteUserToolStripMenuItem
|
||||
//
|
||||
this.deleteUserToolStripMenuItem.Name = "deleteUserToolStripMenuItem";
|
||||
this.deleteUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.deleteUserToolStripMenuItem.Text = "Delete User";
|
||||
this.deleteUserToolStripMenuItem.Click += new System.EventHandler(this.deleteUserToolStripMenuItem_Click);
|
||||
//
|
||||
// addMemberToolStripMenuItemUser
|
||||
//
|
||||
this.addMemberToolStripMenuItemUser.Name = "addMemberToolStripMenuItemUser";
|
||||
this.addMemberToolStripMenuItemUser.Size = new System.Drawing.Size(152, 22);
|
||||
this.addMemberToolStripMenuItemUser.Text = "Add Member";
|
||||
this.addMemberToolStripMenuItemUser.Click += new System.EventHandler(this.addMemberToolStripMenuItem_Click);
|
||||
//
|
||||
// cmGroups
|
||||
//
|
||||
this.cmGroups.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.deleteGroupToolStripMenuItem,
|
||||
this.addMemberToolStripMenuItemGroup});
|
||||
this.cmGroups.Name = "cmGroups";
|
||||
this.cmGroups.Size = new System.Drawing.Size(145, 48);
|
||||
//
|
||||
// deleteGroupToolStripMenuItem
|
||||
//
|
||||
this.deleteGroupToolStripMenuItem.Name = "deleteGroupToolStripMenuItem";
|
||||
this.deleteGroupToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
|
||||
this.deleteGroupToolStripMenuItem.Text = "Delete Group";
|
||||
this.deleteGroupToolStripMenuItem.Click += new System.EventHandler(this.deleteGroupToolStripMenuItem_Click);
|
||||
//
|
||||
// addMemberToolStripMenuItemGroup
|
||||
//
|
||||
this.addMemberToolStripMenuItemGroup.Name = "addMemberToolStripMenuItemGroup";
|
||||
this.addMemberToolStripMenuItemGroup.Size = new System.Drawing.Size(144, 22);
|
||||
this.addMemberToolStripMenuItemGroup.Text = "Add Member";
|
||||
this.addMemberToolStripMenuItemGroup.Click += new System.EventHandler(this.addMemberToolStripMenuItem_Click);
|
||||
//
|
||||
// dlgManageSecurity
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(784, 564);
|
||||
this.Controls.Add(this.tcSecurity);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "dlgManageSecurity";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Manage Security";
|
||||
this.Load += new System.EventHandler(this.dlgManageSecurity_Load);
|
||||
this.tcSecurity.ResumeLayout(false);
|
||||
this.tpGroupUsers.ResumeLayout(false);
|
||||
this.tpGroupUsers.PerformLayout();
|
||||
this.pnlMembers.ResumeLayout(false);
|
||||
this.cmFolders.ResumeLayout(false);
|
||||
this.tpDefault.ResumeLayout(false);
|
||||
this.cmMembers.ResumeLayout(false);
|
||||
this.cmUsers.ResumeLayout(false);
|
||||
this.cmGroups.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.deleteUserToolStripMenuItem});
|
||||
this.cmUsers.Name = "cmUsers";
|
||||
this.cmUsers.Size = new System.Drawing.Size(145, 92);
|
||||
//
|
||||
// addUserToolStripMenuItem
|
||||
//
|
||||
this.addUserToolStripMenuItem.Name = "addUserToolStripMenuItem";
|
||||
this.addUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
|
||||
this.addUserToolStripMenuItem.Text = "Add User";
|
||||
this.addUserToolStripMenuItem.Click += new System.EventHandler(this.addUserToolStripMenuItem_Click);
|
||||
//
|
||||
// editUserToolStripMenuItem
|
||||
//
|
||||
this.editUserToolStripMenuItem.Name = "editUserToolStripMenuItem";
|
||||
this.editUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
|
||||
this.editUserToolStripMenuItem.Text = "Edit User";
|
||||
this.editUserToolStripMenuItem.Click += new System.EventHandler(this.editUserToolStripMenuItem_Click);
|
||||
//
|
||||
// deleteUserToolStripMenuItem
|
||||
//
|
||||
this.deleteUserToolStripMenuItem.Name = "deleteUserToolStripMenuItem";
|
||||
this.deleteUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
|
||||
this.deleteUserToolStripMenuItem.Text = "Delete User";
|
||||
this.deleteUserToolStripMenuItem.Click += new System.EventHandler(this.deleteUserToolStripMenuItem_Click);
|
||||
//
|
||||
// dlgManageSecurity
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(784, 564);
|
||||
this.Controls.Add(this.tcSecurity);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "dlgManageSecurity";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Manage Security";
|
||||
this.Load += new System.EventHandler(this.dlgManageSecurity_Load);
|
||||
this.tcSecurity.ResumeLayout(false);
|
||||
this.tpManageFolders.ResumeLayout(false);
|
||||
this.tpManageFolders.PerformLayout();
|
||||
this.cmFolders.ResumeLayout(false);
|
||||
this.tpManageGroups.ResumeLayout(false);
|
||||
this.tpManageGroups.PerformLayout();
|
||||
this.pnlMembers.ResumeLayout(false);
|
||||
this.tpManageUsers.ResumeLayout(false);
|
||||
this.tpManageUsers.PerformLayout();
|
||||
this.tpDefault.ResumeLayout(false);
|
||||
this.cmUsers.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
@@ -357,20 +445,14 @@ namespace VEPROMS
|
||||
|
||||
private System.Windows.Forms.TabControl tcSecurity;
|
||||
private System.Windows.Forms.TabPage tpDefault;
|
||||
private System.Windows.Forms.TabPage tpGroupUsers;
|
||||
private System.Windows.Forms.ListBox lstGroups;
|
||||
private System.Windows.Forms.Label lblMembers;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.ContextMenuStrip cmGroups;
|
||||
private System.Windows.Forms.ListBox lstUsers;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TabPage tpManageFolders;
|
||||
private System.Windows.Forms.ContextMenuStrip cmUsers;
|
||||
private System.Windows.Forms.ToolStripMenuItem addUserToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem editUserToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem deleteUserToolStripMenuItem;
|
||||
private System.Windows.Forms.ContextMenuStrip cmMembers;
|
||||
private System.Windows.Forms.ToolStripMenuItem removeMemberToolStripMenuItem;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.ContextMenuStrip cmMembers;
|
||||
private System.Windows.Forms.ToolStripMenuItem removeMemberToolStripMenuItem;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TreeView tvFolders;
|
||||
private System.Windows.Forms.ContextMenuStrip cmFolders;
|
||||
private System.Windows.Forms.ToolStripMenuItem createSetAdministratorGroupToolStripMenuItem;
|
||||
@@ -379,10 +461,23 @@ namespace VEPROMS
|
||||
private System.Windows.Forms.ToolStripMenuItem createReviewerGroupToolStripMenuItem;
|
||||
private System.Windows.Forms.Panel pnlGroups;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.ToolStripMenuItem deleteGroupToolStripMenuItem;
|
||||
private System.Windows.Forms.Panel pnlMembers;
|
||||
private System.Windows.Forms.ListBox lstMembers;
|
||||
private System.Windows.Forms.ToolStripMenuItem addMemberToolStripMenuItemUser;
|
||||
private System.Windows.Forms.ToolStripMenuItem addMemberToolStripMenuItemGroup;
|
||||
}
|
||||
private System.Windows.Forms.TabPage tpManageGroups;
|
||||
private System.Windows.Forms.TabPage tpManageUsers;
|
||||
private System.Windows.Forms.Panel pnlMembers;
|
||||
private System.Windows.Forms.ListBox lstMembers;
|
||||
private System.Windows.Forms.Label lblMembers;
|
||||
private System.Windows.Forms.ListBox lstUsers;
|
||||
private System.Windows.Forms.Label lblUsers;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.ComboBox cbGroupSelection;
|
||||
private System.Windows.Forms.ListBox lstNonMembers;
|
||||
private System.Windows.Forms.Button btnDeleteGroup;
|
||||
private System.Windows.Forms.Label lbNonMembers;
|
||||
private System.Windows.Forms.ListBox lstGroups;
|
||||
private System.Windows.Forms.Button btnAddMember;
|
||||
private System.Windows.Forms.Button btnRemoveMember;
|
||||
private System.Windows.Forms.ToolTip tt;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label lblUserGroups;
|
||||
}
|
||||
}
|
||||
@@ -7,30 +7,492 @@ using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using Volian.Base.Library;
|
||||
using Volian.Controls.Library;
|
||||
using System.Linq;
|
||||
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
//C2024-047 Redesign PROMS Security Dialog
|
||||
public partial class dlgManageSecurity : Form
|
||||
{
|
||||
#region Log4Net
|
||||
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
#endregion
|
||||
|
||||
#region Main Form / Shared Code
|
||||
private GroupInfoList myGroupInfoList;
|
||||
private UserInfoList myUserInfoList;
|
||||
private List<MembershipInfo> myMembershipInfoList;
|
||||
private Folder myFolder;
|
||||
|
||||
public dlgManageSecurity()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private void dlgManageSecurity_Load(object sender, EventArgs e)
|
||||
{
|
||||
//load all folders
|
||||
myFolder = Folder.Get(1);
|
||||
SetupSecurity();
|
||||
SetupGroups();
|
||||
|
||||
//Default to Users Tab
|
||||
tcSecurity.SelectedIndex = 2;
|
||||
}
|
||||
|
||||
//This is called when the Index Changes for main tab Control
|
||||
//it loads info for the current tab
|
||||
private void changedTab(object sender, EventArgs e)
|
||||
{
|
||||
LoadRefreshGroupUsers();
|
||||
|
||||
switch (tcSecurity.SelectedIndex)
|
||||
{
|
||||
//Manage Folders
|
||||
case 0:
|
||||
SetupFolderOptions();
|
||||
break;
|
||||
//Manage Groups
|
||||
case 1:
|
||||
SetupGroups();
|
||||
break;
|
||||
//Manage Users (note that this is the default)
|
||||
case 2:
|
||||
SetupUserOptions();
|
||||
break;
|
||||
//Default Options tab
|
||||
case 3:
|
||||
SetupDefaultGroupOptions();
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Loads a refreshed list of Groups and Users
|
||||
private void LoadRefreshGroupUsers()
|
||||
{
|
||||
GroupInfoList.Reset();
|
||||
myGroupInfoList = GroupInfoList.Get();
|
||||
UserInfoList.Reset();
|
||||
myUserInfoList = UserInfoList.Get();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Manage Folders
|
||||
//Sets up Folders
|
||||
private void SetupFolderOptions()
|
||||
{
|
||||
if (tvFolders.Nodes.Count == 0)
|
||||
{
|
||||
FolderInfo fi = FolderInfo.Get(1);
|
||||
LoadChildFolders(fi, null);
|
||||
}
|
||||
}
|
||||
//loads child folders in tree view
|
||||
private void LoadChildFolders(FolderInfo fi, TreeNode tn)
|
||||
{
|
||||
if (tn == null)
|
||||
{
|
||||
tn = tvFolders.Nodes.Add(fi.Name);
|
||||
tn.Tag = fi;
|
||||
}
|
||||
else
|
||||
{
|
||||
tn = tn.Nodes.Add(fi.Name);
|
||||
tn.Tag = fi;
|
||||
}
|
||||
if (fi.ChildFolderCount > 0)
|
||||
{
|
||||
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||
{
|
||||
LoadChildFolders(fic, tn);
|
||||
}
|
||||
}
|
||||
}
|
||||
//Handles Creating a New Group
|
||||
private void createGroupMenuItem(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
ToolStripDropDownItem tsddi = sender as ToolStripDropDownItem;
|
||||
TreeNode tn = tvFolders.SelectedNode;
|
||||
FolderInfo fi = tn.Tag as FolderInfo;
|
||||
AddNewGroup(tsddi.Text, fi);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_MyLog.Warn("createGroupMenuItem", ex);
|
||||
}
|
||||
}
|
||||
private void AddNewGroup(string txt, FolderInfo fi)
|
||||
{
|
||||
txt = txt.Replace("Create", "").Replace(" a ", "").Replace("Group", "").Trim();
|
||||
RoleInfoList ril = RoleInfoList.Get();
|
||||
// B2022-080: cannot add a new group in Proms security. if the sql database's 'Roles' table was not initialized with the default roles, such as Set Administrator,
|
||||
// Writer, Reviewer, RO Editor, the Adding of new groups won't work. Databases should have this loaded by default.
|
||||
// Promsfixes has queries that insert these, but only gets run if there are no assignments (see commands under --define Roles)
|
||||
if (ril == null || ril.Count < 2)
|
||||
{
|
||||
MessageBox.Show("Roles table is missing entries.\r\nPlease contact Volian to create other groups.", "Cannot create groups", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var ri in ril.Where(ri => ri.Name == txt))
|
||||
{
|
||||
string gin = string.Format("{0}s - {1}", ri.Name, fi.Name);
|
||||
if (!myGroupInfoList.Any(gi => gi.GroupName == gin))
|
||||
{
|
||||
Group group = Group.MakeGroup(gin, null, null);
|
||||
Assignment.MakeAssignment(group, Role.Get(ri.RID), Folder.Get(fi.FolderID), null);
|
||||
}
|
||||
}
|
||||
|
||||
LoadRefreshGroupUsers();
|
||||
}
|
||||
private void tvFolders_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
||||
{
|
||||
tvFolders.SelectedNode = e.Node;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Manage Groups
|
||||
//Sets up Group Options
|
||||
private void SetupGroups()
|
||||
{
|
||||
cbGroupSelection.Items.Clear();
|
||||
foreach (GroupInfo gi in myGroupInfoList)
|
||||
cbGroupSelection.Items.Add(gi.GroupName);
|
||||
cbGroupSelection.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void cbGroupSelection_SelectedIndexChanged(object sender, EventArgs e) => updateMembershipLists();
|
||||
|
||||
//Updates the lists of members / nonMembers
|
||||
private void updateMembershipLists()
|
||||
{
|
||||
myMembershipInfoList = new List<MembershipInfo>();
|
||||
if (cbGroupSelection.SelectedIndex > -1)
|
||||
{
|
||||
GroupInfo gi = myGroupInfoList[cbGroupSelection.SelectedIndex];
|
||||
gi.RefreshGroupMemberships();
|
||||
if (gi.GroupMembershipCount > 0)
|
||||
myMembershipInfoList.AddRange(gi.GroupMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty).OrderBy(x => x.MyUserUserID));
|
||||
}
|
||||
lstMembers.DataSource = myMembershipInfoList;
|
||||
lstMembers.ValueMember = "UID";
|
||||
lstMembers.DisplayMember = "MyUserUserID";
|
||||
|
||||
//set NonMembers to Users that are not in Members
|
||||
lstNonMembers.DataSource = myUserInfoList.Select(x => x.UserID).Except(myMembershipInfoList.Select(x => x.MyUser.UserID)).ToList();
|
||||
}
|
||||
|
||||
//Add a Member to a Group
|
||||
private void addMember_Click(object sender, EventArgs e)
|
||||
{
|
||||
int groupIndex = cbGroupSelection.SelectedIndex;
|
||||
string selectedUserID = lstNonMembers.SelectedValue.ToString();
|
||||
int selectedUID = UserInfo.GetByUserID(selectedUserID).UID;
|
||||
GroupInfo gi = myGroupInfoList[groupIndex];
|
||||
User selectedUser = User.Get(selectedUID);
|
||||
|
||||
Membership.MakeMembership(selectedUser, Group.Get(gi.GID), null, "");
|
||||
updateMembershipLists();
|
||||
lstNonMembers.SelectedIndex = -1;
|
||||
|
||||
int index = lstMembers.FindString(selectedUserID);
|
||||
lstMembers.SetSelected(index, true);
|
||||
}
|
||||
|
||||
//Remove a Member From a Group
|
||||
private void removeMember_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstMembers.SelectedIndex > -1)
|
||||
{
|
||||
MembershipInfo mi = (MembershipInfo)lstMembers.SelectedItem;
|
||||
string selectedUserID = mi.MyUserUserID;
|
||||
string msg = "Are you sure you want to remove this Group Member?";
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
|
||||
{
|
||||
MessageBox.Show("You must have at least 1 user assigned to the Administrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
Membership m = Membership.Get(mi.UGID);
|
||||
m.EndDate = DateTime.Now.ToShortDateString();
|
||||
m.Save();
|
||||
updateMembershipLists();
|
||||
lstMembers.SelectedIndex = -1;
|
||||
lstNonMembers.SelectedItem = selectedUserID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Deletes the Currently Selected Group
|
||||
private void deleteGroup_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (cbGroupSelection.SelectedIndex < 0)
|
||||
{
|
||||
MessageBox.Show("You must select a group to delete", "No Group Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
GroupInfo gi = myGroupInfoList[cbGroupSelection.SelectedIndex];
|
||||
if(myFolder.FolderConfig.Security_Group == gi.GID)
|
||||
{
|
||||
MessageBox.Show("Cannot Delete Default Group", "Attempt to Delete Default", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
bool deleteOK = true;
|
||||
if (gi.GroupMembershipCount > 0 && gi.GroupMemberships.Any(mi => mi.EndDate == null || mi.EndDate == string.Empty))
|
||||
deleteOK = false;
|
||||
if (!deleteOK)
|
||||
{
|
||||
MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
Group.Delete(gi.GID);
|
||||
LoadRefreshGroupUsers();
|
||||
SetupGroups();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Manage Users
|
||||
|
||||
//Sets up UserOptions
|
||||
private void SetupUserOptions()
|
||||
{
|
||||
lstUsers.Items.Clear();
|
||||
foreach (UserInfo ui in myUserInfoList)
|
||||
lstUsers.Items.Add(ui.UserID);
|
||||
lstUsers.SelectedIndex = -1;
|
||||
lstGroups.DataSource = null;
|
||||
}
|
||||
|
||||
#region Manage Users - User Options
|
||||
|
||||
//Build Membership list based on selected user
|
||||
private void lstUsers_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
myMembershipInfoList = new List<MembershipInfo>();
|
||||
if (lstUsers.SelectedIndex > -1)
|
||||
{
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
if (ui.UserMembershipCount > 0)
|
||||
{
|
||||
myMembershipInfoList.AddRange(ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty));
|
||||
}
|
||||
}
|
||||
|
||||
lstGroups.DataSource = myMembershipInfoList;
|
||||
lstGroups.ValueMember = "UGID";
|
||||
lstGroups.DisplayMember = "MyGroupName";
|
||||
}
|
||||
|
||||
//Select User and set up Mouse Click Menus based on
|
||||
//where click in User Box
|
||||
private void lstUsers_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
int k = lstUsers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstUsers.SelectedIndex = k;
|
||||
editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
addUserToolStripMenuItem.Visible = true;
|
||||
editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = false;
|
||||
}
|
||||
|
||||
cmUsers.Show(lstUsers, e.Location);
|
||||
}
|
||||
else if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
int k = lstUsers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstUsers.SelectedIndex = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Adds a new User
|
||||
private void addUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
User u = User.MakeUser("[Enter New UserID]", "", "", "", "", "", "", "", "", "", "", DateTime.Now, "");
|
||||
frmManageUser frm = new frmManageUser("add");
|
||||
frm.MyUser = u;
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
u = frm.MyUser;
|
||||
u.Save();
|
||||
Membership.MakeMembership(u, Group.Get(myFolder.FolderConfig.Security_Group), "", "");
|
||||
|
||||
//Update the User list to reflect the added user
|
||||
LoadRefreshGroupUsers();
|
||||
SetupUserOptions();
|
||||
lstUsers.SelectedItem = u.UserID;
|
||||
}
|
||||
else
|
||||
{
|
||||
u.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
//Edit a User's details
|
||||
private void editUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstUsers.SelectedIndex == -1)
|
||||
{
|
||||
MessageBox.Show("You must select a user to edit", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
using (User u = User.Get(ui.UID))
|
||||
{
|
||||
frmManageUser frm = new frmManageUser("edit");
|
||||
frm.MyUser = u;
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
frm.MyUser.Save();
|
||||
|
||||
//Update the User list to reflect the edited user
|
||||
//this is done in case the UserID is updated so the list updates to reflect that
|
||||
LoadRefreshGroupUsers();
|
||||
SetupUserOptions();
|
||||
lstUsers.SelectedItem = u.UserID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Delete a User
|
||||
private void deleteUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstUsers.SelectedIndex == -1)
|
||||
{
|
||||
MessageBox.Show("You must select a user to delete", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
SessionInfoList sil = SessionInfoList.Get();
|
||||
foreach (SessionInfo si in sil)
|
||||
{
|
||||
if (si.UserID == ui.UserID && (si.DTSEnd == null))
|
||||
{
|
||||
MessageBox.Show("The user selected has an active session. You may not delete the user at this time.", "User Active Session", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
int nummemberships = ui.UserMemberships.Count(mi => mi.EndDate == null || mi.EndDate == string.Empty);
|
||||
string mem_text = nummemberships > 0 ? "\r\nNote that this will remove all memberships that this user has." : "";
|
||||
if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
foreach (MembershipInfo minfo in ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty))
|
||||
{
|
||||
Membership m = Membership.Get(minfo.UGID);
|
||||
m.EndDate = DateTime.Now.ToShortDateString();
|
||||
m.Save();
|
||||
}
|
||||
|
||||
User.Delete(ui.UID);
|
||||
|
||||
//Update the User list to reflect the deleted user
|
||||
LoadRefreshGroupUsers();
|
||||
SetupUserOptions();
|
||||
lstUsers.SelectedIndex = -1;
|
||||
lstGroups.DataSource = null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Manage Users - Member Options
|
||||
|
||||
//Adds Context Menu for when a Group is selected
|
||||
private void lstGroups_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
cmMembers.Items.Clear();
|
||||
lstGroups.SelectedIndex = -1;
|
||||
|
||||
//shouldn<64>t be bringing up a menu in the Group box unless a user is 1st selected in the Users box.
|
||||
if (e.Button == MouseButtons.Right && lstUsers.SelectedIndex > -1)
|
||||
{
|
||||
int k = lstGroups.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstGroups.SelectedIndex = k;
|
||||
cmMembers.Items.Add(this.removeMemberToolStripMenuItem);
|
||||
|
||||
}
|
||||
|
||||
var groupsCanAddTo = myGroupInfoList.Select(x => new { x.GroupName, x.GID }).Except(myMembershipInfoList.Select(x => new { x.MyGroup.GroupName, x.GID }));
|
||||
foreach (var possiblegroup in groupsCanAddTo)
|
||||
{
|
||||
ToolStripMenuItemwithValue AddToMenuItem = new ToolStripMenuItemwithValue($"Add as Member to Group: {possiblegroup.GroupName}", possiblegroup.GID);
|
||||
AddToMenuItem.Click += addMemberToolStripMenuItem_Click;
|
||||
cmMembers.Items.Add(AddToMenuItem);
|
||||
}
|
||||
|
||||
cmMembers.Show(lstGroups, e.Location);
|
||||
|
||||
}
|
||||
else if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
int k = lstGroups.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstGroups.SelectedIndex = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Adds a User to a Group
|
||||
private void addMemberToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ToolStripMenuItemwithValue item = (ToolStripMenuItemwithValue)sender;
|
||||
int userIndex = lstUsers.SelectedIndex;
|
||||
UserInfo ui = myUserInfoList[userIndex];
|
||||
|
||||
Membership.MakeMembership(User.Get(ui.UID), Group.Get((int) item.Value), null, "");
|
||||
|
||||
//Update the Group list to reflect the added group
|
||||
LoadRefreshGroupUsers();
|
||||
lstUsers_SelectedIndexChanged(sender, e);
|
||||
}
|
||||
|
||||
//Removes a User from a Group
|
||||
private void removeMemberToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MembershipInfo mi = (MembershipInfo)lstGroups.SelectedItem;
|
||||
string msg = "Are you sure you want to remove this Group Member?";
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
|
||||
{
|
||||
MessageBox.Show("You must have at least 1 user assigned to the Administrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
Membership m = Membership.Get(mi.UGID);
|
||||
m.EndDate = DateTime.Now.ToShortDateString();
|
||||
m.Save();
|
||||
|
||||
//Update the Group list to reflect the removed group
|
||||
LoadRefreshGroupUsers();
|
||||
lstUsers_SelectedIndexChanged(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region Default Options
|
||||
//Sets up Default Group options for Default Tab
|
||||
private void SetupDefaultGroupOptions()
|
||||
{
|
||||
pnlGroups.Controls.Clear();
|
||||
foreach (GroupInfo gi in myGroupInfoList)
|
||||
@@ -56,6 +518,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
}
|
||||
//Handles changing the default group
|
||||
private void rb_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
RadioButton rb = sender as RadioButton;
|
||||
@@ -64,446 +527,7 @@ namespace VEPROMS
|
||||
myFolder.FolderConfig.Security_Group = gi.GID;
|
||||
myFolder.Save();
|
||||
}
|
||||
private void SetupSecurity()
|
||||
{
|
||||
if (tvFolders.Nodes.Count == 0)
|
||||
{
|
||||
FolderInfo fi = FolderInfo.Get(1);
|
||||
LoadChildFolders(fi, null);
|
||||
}
|
||||
lstMembers.Items.Clear();
|
||||
lstUsers.Items.Clear();
|
||||
lstGroups.Items.Clear();
|
||||
GroupInfoList.Reset();
|
||||
UserInfoList.Reset();
|
||||
myGroupInfoList = GroupInfoList.Get();
|
||||
myUserInfoList = UserInfoList.Get();
|
||||
foreach (GroupInfo gi in myGroupInfoList)
|
||||
lstGroups.Items.Add(gi.GroupName);
|
||||
lstGroups.SelectedIndex = 0;
|
||||
foreach (UserInfo ui in myUserInfoList)
|
||||
lstUsers.Items.Add(ui.UserID);
|
||||
lstGroups.SelectedIndex = -1;
|
||||
lstUsers.SelectedIndex = -1;
|
||||
}
|
||||
private void LoadChildFolders(FolderInfo fi, TreeNode tn)
|
||||
{
|
||||
if (tn == null)
|
||||
{
|
||||
tn = tvFolders.Nodes.Add(fi.Name);
|
||||
tn.Tag = fi;
|
||||
}
|
||||
else
|
||||
{
|
||||
tn = tn.Nodes.Add(fi.Name);
|
||||
tn.Tag = fi;
|
||||
}
|
||||
if (fi.ChildFolderCount > 0)
|
||||
{
|
||||
foreach (FolderInfo fic in fi.SortedChildFolders)
|
||||
{
|
||||
LoadChildFolders(fic, tn);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void lstGroups_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
lblMembers.Text = "Selected Group Users";
|
||||
myMembershipInfoList = new List<MembershipInfo>();
|
||||
lstMembers.Items.Clear();
|
||||
if (lstGroups.SelectedIndex > -1)
|
||||
{
|
||||
GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex];
|
||||
if (gi.GroupMembershipCount > 0)
|
||||
foreach (MembershipInfo mi in gi.GroupMemberships)
|
||||
{
|
||||
if (mi.EndDate == null || mi.EndDate == string.Empty)
|
||||
{
|
||||
myMembershipInfoList.Add(mi);
|
||||
lstMembers.Items.Add(mi.MyUser.UserID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void addMemberToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
int groupIndex = lstGroups.SelectedIndex;
|
||||
int userIndex = lstUsers.SelectedIndex;
|
||||
GroupInfo gi = myGroupInfoList[groupIndex];
|
||||
UserInfo ui = myUserInfoList[userIndex];
|
||||
Membership.MakeMembership(User.Get(ui.UID), Group.Get(gi.GID), null, "");
|
||||
SetupSecurity();
|
||||
if ((sender as ToolStripMenuItem).Name.EndsWith("Group"))
|
||||
{
|
||||
lstUsers.SelectedIndex = userIndex;
|
||||
lstGroups.SelectedIndex = groupIndex;
|
||||
}
|
||||
else
|
||||
{
|
||||
lstGroups.SelectedIndex = groupIndex;
|
||||
lstUsers.SelectedIndex = userIndex;
|
||||
}
|
||||
}
|
||||
private void removeMemberToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MembershipInfo mi = myMembershipInfoList[lstMembers.SelectedIndex];
|
||||
string msg = "Are you sure you want to remove this Group Member?";
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
int groupIndex = lstGroups.SelectedIndex;
|
||||
int userIndex = lstUsers.SelectedIndex;
|
||||
if (mi.MyGroup.GroupName == "Administrators")
|
||||
{
|
||||
int k = 0;
|
||||
foreach(MembershipInfo mm in mi.MyGroup.GroupMemberships)
|
||||
if(mm.EndDate == null || mm.EndDate == string.Empty)
|
||||
k++;
|
||||
if (k == 1)
|
||||
{
|
||||
MessageBox.Show("You must have at least 1 user assigned to the Adminstrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Membership m = Membership.Get(mi.UGID);
|
||||
m.EndDate = DateTime.Now.ToShortDateString();
|
||||
m.Save();
|
||||
SetupSecurity();
|
||||
lstGroups.SelectedIndex = groupIndex;
|
||||
lstUsers.SelectedIndex = userIndex;
|
||||
}
|
||||
// foreach (int gg in lstGroups.SelectedIndices)
|
||||
// {
|
||||
// GroupInfo gi = myGroupInfoList[gg];
|
||||
// if (gi.GroupName == "Administrators" && gi.GroupMembershipCount == 1)
|
||||
// {
|
||||
// MessageBox.Show("You must have at least 1 user assigned to the Adminstrators group", "Can Not Delete User", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
// return;
|
||||
// }
|
||||
// foreach (MembershipInfo mi in gi.GroupMemberships)
|
||||
// {
|
||||
// foreach (int mm in lstGroupUsers.SelectedIndices)
|
||||
// {
|
||||
// MembershipInfo mig = myMembershipInfoList[mm];
|
||||
// if (mi.MyUser.UID == mig.MyUser.UID)
|
||||
// {
|
||||
// Membership m = Membership.Get(mi.UGID);
|
||||
// m.EndDate = DateTime.Now.ToShortDateString();
|
||||
// m.Save();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// SetupSecurity();
|
||||
//}
|
||||
}
|
||||
private void addUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
User u = User.MakeUser("[Enter New UserID]","", "", "", "", "", "", "", "", "", "",DateTime.Now,"");
|
||||
frmManageUser frm = new frmManageUser("add");
|
||||
frm.MyUser = u;
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
u = frm.MyUser;
|
||||
u.Save();
|
||||
Membership.MakeMembership(u, Group.Get(myFolder.FolderConfig.Security_Group), "", "");
|
||||
SetupSecurity();
|
||||
}
|
||||
else
|
||||
{
|
||||
u.Delete();
|
||||
}
|
||||
}
|
||||
private void editUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstUsers.SelectedIndex == -1)
|
||||
{
|
||||
MessageBox.Show("You must select a user to edit", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
using (User u = User.Get(ui.UID))
|
||||
{
|
||||
frmManageUser frm = new frmManageUser("edit");
|
||||
frm.MyUser = u;
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
frm.MyUser.Save();
|
||||
SetupSecurity();
|
||||
}
|
||||
}
|
||||
}
|
||||
private void deleteUserToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstUsers.SelectedIndex == -1)
|
||||
{
|
||||
MessageBox.Show("You must select a user to delete", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
SessionInfoList sil = SessionInfoList.Get();
|
||||
foreach (SessionInfo si in sil)
|
||||
{
|
||||
if (si.UserID == ui.UserID && (si.DTSEnd == null))
|
||||
{
|
||||
MessageBox.Show("The user selected has an active session. You may not delete the user at this time.", "User Active Session", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
int k = 0;
|
||||
if (ui.UserMembershipCount > 0)
|
||||
{
|
||||
foreach (MembershipInfo mi in ui.UserMemberships)
|
||||
{
|
||||
if (mi.EndDate == null || mi.EndDate == string.Empty)
|
||||
k++;
|
||||
}
|
||||
}
|
||||
if (k > 0)
|
||||
{
|
||||
MessageBox.Show("You must remove user from all groups that user is a member of in order to delete user", "User Has Memberships", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Are you sure you want to delete this user?", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
User.Delete(ui.UID);
|
||||
SetupSecurity();
|
||||
}
|
||||
//to do delete user
|
||||
//end date user memberships
|
||||
//delete user
|
||||
}
|
||||
private void createGroupMenuItem(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
ToolStripDropDownItem tsddi = sender as ToolStripDropDownItem;
|
||||
TreeNode tn = tvFolders.SelectedNode;
|
||||
FolderInfo fi = tn.Tag as FolderInfo;
|
||||
AddNewGroup(tsddi.Text, fi);
|
||||
SetupSecurity();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_MyLog.Warn("createGroupMenuItem", ex);
|
||||
}
|
||||
}
|
||||
private void AddNewGroup(string txt, FolderInfo fi)
|
||||
{
|
||||
txt = txt.Replace("Create", "").Replace(" a ", "").Replace("Group", "").Trim();
|
||||
RoleInfoList ril = RoleInfoList.Get();
|
||||
// B2022-080: cannot add a new group in Proms security. if the sql database's 'Roles' table was not initialized with the default roles, such as Set Administrator,
|
||||
// Writer, Reviewer, RO Editor, the Adding of new groups won't work. Databases should have this loaded by default.
|
||||
// Promsfixes has queries that insert these, but only gets run if there are no assignments (see commands under --define Roles)
|
||||
if (ril == null || ril.Count < 2)
|
||||
{
|
||||
MessageBox.Show("Roles table is missing entries.\r\nPlease contact Volian to create other groups.", "Cannot create groups", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
foreach(RoleInfo ri in ril)
|
||||
{
|
||||
if (ri.Name == txt)
|
||||
{
|
||||
string gin = string.Format("{0}s - {1}", ri.Name, fi.Name);
|
||||
bool addOK = true;
|
||||
foreach (GroupInfo gi in myGroupInfoList)
|
||||
{
|
||||
if (gin == gi.GroupName)
|
||||
{
|
||||
addOK = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (addOK)
|
||||
{
|
||||
Group group = Group.MakeGroup(gin, null, null);
|
||||
Assignment.MakeAssignment(group, Role.Get(ri.RID), Folder.Get(fi.FolderID), null);
|
||||
}
|
||||
}
|
||||
}
|
||||
GroupInfoList.Reset();
|
||||
myGroupInfoList = GroupInfoList.Get();
|
||||
SetupGroups();
|
||||
}
|
||||
private void lstUsers_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
lblMembers.Text = "Selected User Groups";
|
||||
myMembershipInfoList = new List<MembershipInfo>();
|
||||
lstMembers.Items.Clear();
|
||||
if (lstUsers.SelectedIndex > -1)
|
||||
{
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
if (ui.UserMembershipCount > 0)
|
||||
{
|
||||
foreach (MembershipInfo mi in ui.UserMemberships)
|
||||
{
|
||||
if (mi.EndDate == null || mi.EndDate == string.Empty)
|
||||
{
|
||||
myMembershipInfoList.Add(mi);
|
||||
lstMembers.Items.Add(mi.MyGroup.GroupName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void tvFolders_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
||||
{
|
||||
tvFolders.SelectedNode = e.Node;
|
||||
}
|
||||
private void deleteGroupToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstGroups.SelectedIndex < 0)
|
||||
{
|
||||
MessageBox.Show("You must select a group to delete", "No Group Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex];
|
||||
if(myFolder.FolderConfig.Security_Group == gi.GID)
|
||||
{
|
||||
MessageBox.Show("Cannot Delete Default Group", "Attempt to Delete Default", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
bool deleteOK = true;
|
||||
if(gi.GroupMembershipCount > 0)
|
||||
{
|
||||
foreach (MembershipInfo mi in gi.GroupMemberships)
|
||||
{
|
||||
if (mi.EndDate == null || mi.EndDate == string.Empty)
|
||||
{
|
||||
deleteOK = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteOK)
|
||||
{
|
||||
MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
Group.Delete(gi.GID);
|
||||
GroupInfoList.Reset();
|
||||
myGroupInfoList = GroupInfoList.Get();
|
||||
SetupGroups();
|
||||
SetupSecurity();
|
||||
}
|
||||
}
|
||||
private void lstGroups_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
lstGroups.SelectedIndex = -1;
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
int k = lstGroups.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstGroups.SelectedIndex = k;
|
||||
if (lstUsers.SelectedIndex >= 0)
|
||||
{
|
||||
GroupInfo gi = myGroupInfoList[k];
|
||||
if (gi.GroupMembershipCount > 0)
|
||||
{
|
||||
addMemberToolStripMenuItemGroup.Visible = true;
|
||||
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
|
||||
foreach (MembershipInfo mi in gi.GroupMemberships)
|
||||
{
|
||||
if (mi.MyUser.UserID == ui.UserID && (mi.EndDate == null || mi.EndDate == string.Empty))
|
||||
{
|
||||
addMemberToolStripMenuItemGroup.Visible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
addMemberToolStripMenuItemGroup.Visible = false;
|
||||
cmGroups.Show(lstGroups, e.Location);
|
||||
}
|
||||
}
|
||||
else if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
int k = lstGroups.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstGroups.SelectedIndex = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void lstUsers_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
lstUsers.SelectedIndex = -1;
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
int k = lstUsers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstUsers.SelectedIndex = k;
|
||||
//addUserToolStripMenuItem.Visible = false;
|
||||
editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = true;
|
||||
if (lstGroups.SelectedIndex >= 0)
|
||||
{
|
||||
UserInfo ui = myUserInfoList[k];
|
||||
if(ui.UserMembershipCount > 0)
|
||||
{
|
||||
addMemberToolStripMenuItemUser.Visible = true;
|
||||
GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex];
|
||||
foreach(MembershipInfo mi in ui.UserMemberships)
|
||||
{
|
||||
if (mi.MyGroup.GroupName == gi.GroupName && (mi.EndDate == null || mi.EndDate == string.Empty))
|
||||
{
|
||||
addMemberToolStripMenuItemUser.Visible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
addMemberToolStripMenuItemUser.Visible = false;
|
||||
cmUsers.Show(lstUsers, e.Location);
|
||||
}
|
||||
else
|
||||
{
|
||||
addUserToolStripMenuItem.Visible = true;
|
||||
editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = addMemberToolStripMenuItemUser.Visible = false;
|
||||
cmUsers.Show(lstUsers, e.Location);
|
||||
}
|
||||
}
|
||||
else if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
int k = lstUsers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstUsers.SelectedIndex = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void lstMembers_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
lstMembers.SelectedIndex = -1;
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
int k = lstMembers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstMembers.SelectedIndex = k;
|
||||
addMemberToolStripMenuItemUser.Visible = false;
|
||||
removeMemberToolStripMenuItem.Visible = true;
|
||||
cmMembers.Show(lstMembers, e.Location);
|
||||
}
|
||||
else
|
||||
{
|
||||
addMemberToolStripMenuItemUser.Visible = true;
|
||||
removeMemberToolStripMenuItem.Visible = false;
|
||||
cmMembers.Show(lstMembers, e.Location);
|
||||
}
|
||||
}
|
||||
else if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
int k = lstMembers.IndexFromPoint(e.Location);
|
||||
if (k >= 0)
|
||||
{
|
||||
lstMembers.SelectedIndex = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -112,21 +112,27 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="cmFolders.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="cmFolders.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>234, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>341, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmMembers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="cmMembers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmUsers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>243, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmGroups.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="cmUsers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>136, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>341, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>58</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -98,6 +98,8 @@ namespace VEPROMS
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest += MyStepTabRibbon_ContActionSummaryRequest;
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.AddProcToDVInTree -= new StepTabRibbonEvent(MyStepTabRibbon_AddProcToDocVersionInTree);
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.AddProcToDVInTree += new StepTabRibbonEvent(MyStepTabRibbon_AddProcToDocVersionInTree);
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.EnableDisableStepProperties -= EnableDisableStepProperties;
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.EnableDisableStepProperties += new StepTabRibbonEvent(EnableDisableStepProperties);
|
||||
// F2022-024 Time Critical Action Summary
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.TimeCriticalActionSummaryRequest -= MyStepTabRibbon_TimeCriticalActionSummaryRequest;
|
||||
_SelectedStepTabPanel.MyStepTabRibbon.TimeCriticalActionSummaryRequest += MyStepTabRibbon_TimeCriticalActionSummaryRequest;
|
||||
@@ -119,7 +121,7 @@ namespace VEPROMS
|
||||
|
||||
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave;
|
||||
|
||||
|
||||
DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi);
|
||||
|
||||
//added by jcb 20130718 to support create pdf button when multi-unit and user selects a unit
|
||||
@@ -372,12 +374,12 @@ namespace VEPROMS
|
||||
cmbFont.SelectedIndex = -1;
|
||||
string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray());
|
||||
string db = Volian.Base.Library.VlnSettings.GetDB();
|
||||
|
||||
|
||||
if (db != null)
|
||||
Database.SelectedDatabase = db;
|
||||
|
||||
//B2018-129 Most Recently Used list was being cleared. Needed to remove a (string) type case in the IF statement
|
||||
if (!string.IsNullOrEmpty((string)Properties.Settings.Default["DefaultDB"]))
|
||||
if (!string.IsNullOrEmpty((string)Properties.Settings.Default["DefaultDB"]))
|
||||
Database.LastDatabase = Properties.Settings.Default.DefaultDB;
|
||||
|
||||
// Setup the Context menu for DisplaySearch including the symbols
|
||||
@@ -416,7 +418,7 @@ namespace VEPROMS
|
||||
// B2019-107 Error Log message for inconsistent PromsFixes
|
||||
_MyLog.InfoFormat("\r\nSession Beginning\r\n<===={0}[SQL:{1:yyMM.ddHH}]====== User: {2}/{3} Started {4} ===============>{5}"
|
||||
, Application.ProductVersion, Database.RevDate, Environment.UserDomainName, Environment.UserName, DateTime.Now.ToString("dddd MMMM d, yyyy h:mm:ss tt"), FormatInfo.Failed ?? "");
|
||||
|
||||
|
||||
// C2022-030 Notify the user if the stored procedure in the database are not update to date
|
||||
// with those in the PROMSFixes.sql delivered with the PROMS executable
|
||||
string pfVersion = ExeInfo.GetAssocicatedPROMSFixesVersion();
|
||||
@@ -546,7 +548,7 @@ namespace VEPROMS
|
||||
tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo);
|
||||
tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF);
|
||||
displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged);
|
||||
|
||||
|
||||
tv.ExportImportProcedureSets += new vlnTreeViewEvent(tv_ExportImportProcedureSets);
|
||||
tv.PrintTransitionReport += new vlnTreeViewEvent(tv_PrintTransitionReport);
|
||||
tv.ProcessingComplete += tv_ProcessingComplete;
|
||||
@@ -554,10 +556,23 @@ namespace VEPROMS
|
||||
tv.CreateContinuousActionSummary += new vlnTreeViewEvent(tv_CreateContinuousActionSummary);
|
||||
tv.SelectDateToStartChangeBars += tv_SelectDateToStartChangeBars;
|
||||
tv.CreateTimeCriticalActionSummary += new vlnTreeViewEvent(tv_CreateTimeCriticalActionSummary);
|
||||
tv.RefreshFormats += new vlnTreeViewStatusEvent(RefreshFormats);
|
||||
|
||||
displayBookMarks.ResetBookMarksInPROMSWindows += displayBookMarks_ResetBookMarksInPROMSWindows;
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
void RefreshFormats(object sender, vlnTreeStatusEventArgs args)
|
||||
{
|
||||
Format.ClearFormatCache();
|
||||
FormatInfo.ClearFormatInfoCache();
|
||||
FormatInfo.Reset();
|
||||
FormatInfoList.Reset();
|
||||
Format.Reset();
|
||||
FormatList.Reset();
|
||||
displaySearch1.SetupContextMenu();
|
||||
}
|
||||
|
||||
// Part of Separate Windows upgrade C2015-022
|
||||
// Extend Changes to BookMark information to all of the child windows
|
||||
void displayBookMarks_ResetBookMarksInPROMSWindows(object sender, EventArgs args)
|
||||
@@ -574,7 +589,7 @@ namespace VEPROMS
|
||||
}
|
||||
}
|
||||
|
||||
void tv_SelectDateToStartChangeBars(object sender, vlnTreeEventArgs args)
|
||||
void tv_SelectDateToStartChangeBars(object sender, vlnTreeEventArgs args)
|
||||
{
|
||||
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
|
||||
if (pi == null) return;
|
||||
@@ -1183,6 +1198,7 @@ namespace VEPROMS
|
||||
|
||||
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
message = message.Replace("\r\nWould You like to open the procedure in View Only Mode?", "");
|
||||
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
@@ -2072,7 +2088,10 @@ namespace VEPROMS
|
||||
{
|
||||
foreach (DisplayTabItem dti in tc.MyBar.Items)
|
||||
{
|
||||
if (!myList.Contains(dti.OwnerID))
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
// View Only Mode is no longer checked out, so no longer has an OwnerID
|
||||
// This will keep those tabs from auto-closing based on the timer
|
||||
if (!myList.Contains(dti.OwnerID) && dti.MyStepTabPanel.MyStepPanel.VwMode != E_ViewMode.View)
|
||||
{
|
||||
MyCloseTabList.PushDTI(dti);
|
||||
}
|
||||
@@ -3913,6 +3932,7 @@ namespace VEPROMS
|
||||
string message = string.Empty;
|
||||
if (!MySessionInfo.CanCheckOutItem(args.ProcedureConfig.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
message = message.Replace("\r\nWould You like to open the procedure in View Only Mode?", "");
|
||||
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
this.Cursor = Cursors.Default;
|
||||
return DialogResult.None;
|
||||
@@ -3936,6 +3956,7 @@ namespace VEPROMS
|
||||
string message = string.Empty;
|
||||
if (!MySessionInfo.CanCheckOutItem(args.SectionConfig.MySection.MySectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
message = message.Replace("\r\nWould You like to open the procedure in View Only Mode?", "");
|
||||
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
this.Cursor = Cursors.Default;
|
||||
return DialogResult.None;
|
||||
@@ -4736,6 +4757,11 @@ namespace VEPROMS
|
||||
// B2022-026 RO Memory reduction coding (Jakes Merge)
|
||||
displayRO.SetFindDocROButton(false);
|
||||
displayRO.LoadTree();
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//In View Only Mode - Step Properties should be disabled
|
||||
EnableDisableStepProperties(sender, new StepTabRibbonEventArgs(args.MyEditItem.MyItemInfo, 0, args.MyEditItem.MyStepPanel.VwMode));
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4767,6 +4793,22 @@ namespace VEPROMS
|
||||
|
||||
}
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//In View Only Mode - Step Properties should be disabled
|
||||
public void EnableDisableStepProperties(object sender, StepTabRibbonEventArgs args)
|
||||
{
|
||||
if (args.ViewMode == E_ViewMode.View && (infoTabs.Enabled || infoTabs.SelectedTab != infotabTags))
|
||||
{
|
||||
infoTabs.Enabled = true;
|
||||
infoTabs.SelectedTab = infotabTags;
|
||||
infoTabs.Enabled = false;
|
||||
}
|
||||
else if (args.ViewMode != E_ViewMode.View && !infoTabs.Enabled)
|
||||
{
|
||||
infoTabs.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void _LastStepRTB_EditModeChanged(object sender, EventArgs args)
|
||||
{
|
||||
if (_LastStepRTB.EditMode) // going into edit mode in a cell of the grid.
|
||||
|
||||
@@ -765,6 +765,19 @@ namespace VEPROMS.CSLA.Library
|
||||
foreach (DocVersionInfo dvi in _CacheByPrimaryKey[key])
|
||||
dvi.ResetProcedures();
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void ResetAllProcedures()
|
||||
{
|
||||
foreach (string key in _CacheByPrimaryKey.Keys)
|
||||
{
|
||||
foreach (DocVersionInfo dvi in _CacheByPrimaryKey[key])
|
||||
dvi.ResetProcedures();
|
||||
}
|
||||
|
||||
foreach (DocVersionInfo dvi in _CacheList)
|
||||
dvi.ResetProcedures();
|
||||
}
|
||||
#region IVEReadOnlyItem
|
||||
public System.Collections.IList GetChildren()
|
||||
{
|
||||
|
||||
@@ -275,6 +275,14 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void Reset()
|
||||
{
|
||||
_LookupFormats?.Clear();
|
||||
_LookupFormats = null;
|
||||
_ = LookupFormats;
|
||||
}
|
||||
|
||||
private static Format AddFormatToDB(Format parent, string format, bool issub, DateTime Dts, string Userid, string fmtPath, string genmacPath)
|
||||
{
|
||||
string fmtdata = null;
|
||||
@@ -509,7 +517,12 @@ public partial class FormatInfo : IFormatOrFormatInfo
|
||||
return _PROMSBaseFormat;
|
||||
}
|
||||
}
|
||||
public static FormatInfo Get(string name)
|
||||
public static void Reset()
|
||||
{
|
||||
_PROMSBaseFormat = null;
|
||||
}
|
||||
|
||||
public static FormatInfo Get(string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -7984,12 +7984,20 @@ namespace VEPROMS.CSLA.Library
|
||||
public ProcedureInfo(SafeDataReader dr) : base(dr) { }
|
||||
#endif
|
||||
private ProcedureInfo() : base() { ;}
|
||||
public new static ProcedureInfo Get(int itemID)
|
||||
public new static ProcedureInfo Get(int itemID, bool forcerefresh = false)
|
||||
{
|
||||
//if (!CanGetObject())
|
||||
// throw new System.Security.SecurityException("User not authorized to view a Item");
|
||||
try
|
||||
{
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
// fixes caching issue
|
||||
// so this forces a refresh of the cache
|
||||
if (forcerefresh)
|
||||
{
|
||||
_CacheByPrimaryKey.Remove(itemID.ToString());
|
||||
}
|
||||
|
||||
ProcedureInfo tmp = GetCachedByPrimaryKey(itemID);
|
||||
if (tmp == null)
|
||||
{
|
||||
|
||||
@@ -1638,7 +1638,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// get the first enhanced section, there may be non-linked sections before first linked section:
|
||||
SectionConfig firstEnhSectionConfig = pastedEnhancedProc.Sections == null ? null : pastedEnhancedProc.Sections[0].MyConfig as SectionConfig;
|
||||
ItemInfo pastedEnhancedCurrentSection = null;
|
||||
if (firstEnhSectionConfig.MyEnhancedDocuments.Count > 0) pastedEnhancedCurrentSection = pastedEnhancedProc.Sections[0];
|
||||
if (firstEnhSectionConfig?.MyEnhancedDocuments.Count > 0) pastedEnhancedCurrentSection = pastedEnhancedProc.Sections[0];
|
||||
else pastedEnhancedCurrentSection = GetNextEnhancedSection(pastedEnhancedProc.Sections[0]);
|
||||
|
||||
// newly pasted procedure has sections/steps, need to adjust 'MyEnhancedDocuments' config items to point to correct
|
||||
@@ -1647,7 +1647,7 @@ namespace VEPROMS.CSLA.Library
|
||||
foreach (ItemInfo sourceSect in Sections)
|
||||
{
|
||||
SectionConfig srcCfg = sourceSect.MyConfig as SectionConfig;
|
||||
if (srcCfg != null && (srcCfg.Section_LnkEnh=="Y" || srcCfg.Section_LnkEnh=="T") && srcCfg.MyEnhancedDocuments != null && srcCfg.MyEnhancedDocuments.Count > 0)
|
||||
if (srcCfg != null && (srcCfg.Section_LnkEnh != "N") && srcCfg.MyEnhancedDocuments != null && srcCfg.MyEnhancedDocuments.Count > 0)
|
||||
{
|
||||
// use pastedEnhancedCurrentSection to link to:
|
||||
foreach (EnhancedDocument ed in srcCfg.MyEnhancedDocuments)
|
||||
@@ -1664,7 +1664,7 @@ namespace VEPROMS.CSLA.Library
|
||||
enhSectCfg.MyEnhancedDocuments[0].ItemID = sourceSect.ItemID;
|
||||
enhSectCfg.SaveEnhancedDocuments();
|
||||
pastedEnhancedCurrentSection.SaveConfig(enhSectCfg.ToString());
|
||||
if (srcCfg.Section_LnkEnh == "Y") EnhancedSetStepLinks(sourceSect, enhProc.Type); //if steps, do them for this type
|
||||
if (srcCfg.Section_LnkEnh != "T") EnhancedSetStepLinks(sourceSect, enhProc.Type); //if steps, do them for this type
|
||||
pastedEnhancedCurrentSection = GetNextEnhancedSection(pastedEnhancedCurrentSection);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace VEPROMS.CSLA.Library
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{ name = tmpproc.DisplayText; }
|
||||
|
||||
message = string.Format("The procedure {0} is already checked out to {1}", name, si.UserID);
|
||||
message = string.Format("The procedure {0} is already checked out to {1}.\r\nWould You like to open the procedure in View Only Mode?", name, si.UserID);
|
||||
rv = rv && false;
|
||||
}
|
||||
else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Document)
|
||||
|
||||
@@ -97,6 +97,12 @@ namespace VEPROMS.CSLA.Library
|
||||
if (formatInfo != null && formatInfo.ToString() == formatName) return formatInfo.Get();
|
||||
return null;
|
||||
}
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void Reset()
|
||||
{
|
||||
_MyFormatInfoList?.Clear();
|
||||
_MyFormatInfoList = null;
|
||||
}
|
||||
}
|
||||
public class DocStyleListConverter : System.ComponentModel.StringConverter
|
||||
{
|
||||
|
||||
@@ -1145,8 +1145,12 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
//string thisTab = StepInfo.Get(pitem.ItemID).MyTab.CleanText;
|
||||
string thisTab = pitem.MyTab.CleanText;// StepInfo.Get(pitem.ItemID).MyTab.CleanText;
|
||||
//B2025-058 remove continuous action indicator
|
||||
string medittag = pitem.FormatStepData.TabData.MacroEditTag;
|
||||
if (medittag != null && thisTab.StartsWith(medittag))
|
||||
thisTab = thisTab.Substring(medittag.Length);
|
||||
// remove delimiters of '.' and ')' in tab.
|
||||
if (!hasDelim)
|
||||
if (!hasDelim)
|
||||
{
|
||||
// get list of delimiters to remove from the format:
|
||||
foreach (string rmvDelim in DelimList) thisTab = thisTab.Replace(rmvDelim, "");
|
||||
|
||||
@@ -990,12 +990,21 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
public static Content Get(int contentID)
|
||||
public static Content Get(int contentID, bool forcerefresh = false)
|
||||
{
|
||||
if (!CanGetObject())
|
||||
throw new System.Security.SecurityException("User not authorized to view a Content");
|
||||
try
|
||||
{
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
// fixes caching issue
|
||||
// this forces a refresh of the cache for a case when need to do a hard refresh
|
||||
if (forcerefresh)
|
||||
{
|
||||
ConvertListToDictionary();
|
||||
_CacheByPrimaryKey.Remove(contentID.ToString());
|
||||
}
|
||||
|
||||
Content tmp = GetCachedByPrimaryKey(contentID);
|
||||
if (tmp == null)
|
||||
{
|
||||
|
||||
@@ -502,6 +502,15 @@ namespace VEPROMS.CSLA.Library
|
||||
_FolderInfoExtension.Refresh(this);
|
||||
OnChange();// raise an event
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void ClearFolderInfoCache()
|
||||
{
|
||||
_CacheByPrimaryKey.Clear();
|
||||
while (_CacheList.Count > 0)
|
||||
{ _CacheList[0].Dispose(); }
|
||||
}
|
||||
|
||||
public static FolderInfo Get(int folderID)
|
||||
{
|
||||
//if (!CanGetObject())
|
||||
|
||||
@@ -143,6 +143,14 @@ namespace VEPROMS.CSLA.Library
|
||||
if (_CacheByParentID_Name.ContainsKey(key)) return _CacheByParentID_Name[key][0];
|
||||
return null;
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void ClearFormatCache()
|
||||
{
|
||||
_CacheByPrimaryKey.Clear();
|
||||
while (_CacheList.Count > 0)
|
||||
{ _CacheList[0].Dispose(); }
|
||||
}
|
||||
#endregion
|
||||
#region Business Methods
|
||||
private string _ErrorMessage = string.Empty;
|
||||
|
||||
@@ -71,6 +71,13 @@ namespace VEPROMS.CSLA.Library
|
||||
if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0];
|
||||
return null;
|
||||
}
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public static void ClearFormatInfoCache()
|
||||
{
|
||||
_CacheByPrimaryKey.Clear();
|
||||
while (_CacheList.Count > 0)
|
||||
{ _CacheList[0].Dispose(); }
|
||||
}
|
||||
#endregion
|
||||
#region Business Methods
|
||||
private string _ErrorMessage = string.Empty;
|
||||
|
||||
@@ -119,6 +119,15 @@ namespace VEPROMS.CSLA.Library
|
||||
return _MyUser;
|
||||
}
|
||||
}
|
||||
public string MyUserUserID
|
||||
{
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
if (_MyUser == null && _UID != 0) _MyUser = UserInfo.Get(_UID);
|
||||
return _MyUser?.UserID;
|
||||
}
|
||||
}
|
||||
private int _GID;
|
||||
public int GID
|
||||
{
|
||||
@@ -139,6 +148,15 @@ namespace VEPROMS.CSLA.Library
|
||||
return _MyGroup;
|
||||
}
|
||||
}
|
||||
public string MyGroupName
|
||||
{
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
if (_MyGroup == null && _GID != 0) _MyGroup = GroupInfo.Get(_GID);
|
||||
return _MyGroup?.GroupName;
|
||||
}
|
||||
}
|
||||
private string _StartDate = string.Empty;
|
||||
public string StartDate
|
||||
{
|
||||
|
||||
@@ -188,7 +188,6 @@ namespace Volian.Controls.Library
|
||||
this.tabSearchTypes.Controls.Add(this.tabControlPanel5);
|
||||
this.tabSearchTypes.Controls.Add(this.tabControlPanel2);
|
||||
this.tabSearchTypes.Controls.Add(this.tabControlPanel3);
|
||||
this.tabSearchTypes.Controls.Add(this.tabControlPanel1);
|
||||
this.tabSearchTypes.Controls.Add(this.contextMenuBar1);
|
||||
this.tabSearchTypes.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.tabSearchTypes.Location = new System.Drawing.Point(0, 0);
|
||||
@@ -983,7 +982,6 @@ namespace Volian.Controls.Library
|
||||
this.tabControlPanel1.Controls.Add(this.lblSrchIncTran);
|
||||
this.tabControlPanel1.Controls.Add(this.groupBox1);
|
||||
this.tabControlPanel1.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.tabControlPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControlPanel1.Location = new System.Drawing.Point(0, 34);
|
||||
this.tabControlPanel1.Name = "tabControlPanel1";
|
||||
this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1);
|
||||
@@ -997,6 +995,8 @@ namespace Volian.Controls.Library
|
||||
this.tabControlPanel1.Style.GradientAngle = 90;
|
||||
this.tabControlPanel1.TabIndex = 17;
|
||||
this.tabControlPanel1.TabItem = this.tabIncTrans;
|
||||
this.tabControlPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tabControlPanel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
//
|
||||
// btnTranCvtSelToTxt
|
||||
//
|
||||
@@ -1732,6 +1732,12 @@ namespace Volian.Controls.Library
|
||||
this.Controls.Add(this.xpStepTypes);
|
||||
this.Controls.Add(this.xpSetToSearch);
|
||||
this.Controls.Add(this.tabSearchTypes);
|
||||
this.Controls.Add(this.tabControlPanel1);
|
||||
//B2025-056 Click on Incoming Transitions
|
||||
// This needs to be part of overall control
|
||||
// since if it is part of tabSearchTypes,
|
||||
// then when that is disabled, buttons on
|
||||
// this will be also
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.Name = "DisplaySearch";
|
||||
this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
|
||||
@@ -1857,14 +1857,15 @@ namespace Volian.Controls.Library
|
||||
lbSrchResultsIncTrans.Enabled = false;
|
||||
lbSrchResultsIncTrans.UseWaitCursor = true;
|
||||
}
|
||||
ListBox mylb = sender as ListBox;
|
||||
//B2025-056 Click on Incoming Transitions
|
||||
// Clicking on Incoming Transitions
|
||||
// will now open that item
|
||||
ListBox mylb_lbSrchResults = sender as ListBox;
|
||||
ListBoxAdv mylb_lbSrchResultsIncTrans = sender as ListBoxAdv;
|
||||
|
||||
// If the list is being refreshed, then set the selection index to -1 (no selection)
|
||||
// B2022-044: don't set selection to top of list (commented out/changed if)
|
||||
//if (mylb != null && _SearchResults.RefreshingList && mylb.SelectedIndex != -1)
|
||||
// //mylb.SelectedIndex = -1;
|
||||
//else
|
||||
if (mylb != null && !_SearchResults.RefreshingList)
|
||||
if ((mylb_lbSrchResults != null || mylb_lbSrchResultsIncTrans != null) && !_SearchResults.RefreshingList)
|
||||
{
|
||||
_ItemInfo = (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[4]) ? lbSrchResultsIncTrans.SelectedValue as ItemInfo : lbSrchResults.SelectedValue as ItemInfo;
|
||||
if ((tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[1]) && (_ItemInfo != null))
|
||||
|
||||
@@ -603,6 +603,8 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
ItemInfo myItemInfo = myItemInfo2;
|
||||
|
||||
bool viewonlymode = false;
|
||||
|
||||
//B2025-046 Remember Tabs failing when swapping versions of PROMS
|
||||
if (myItemInfo?.MyDocVersion == null) // bug fix: B2016-108 disconnected data will not have a MyDocVersion
|
||||
{
|
||||
@@ -620,8 +622,11 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
if (!MySessionInfo.CanCheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
FlexibleMessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return null;
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
if (MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||
viewonlymode = true;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -682,7 +687,7 @@ namespace Volian.Controls.Library
|
||||
// C2023-016 if a Word section and doing Find/Replace don't open Word section, position to section title in step editor instead
|
||||
if (myItemInfo.MyContent.MyEntry == null || doingFindReplace) // If it is not a Word document open in step editor
|
||||
{
|
||||
return OpenStepTabPage(myItemInfo, setFocus);
|
||||
return OpenStepTabPage(myItemInfo, setFocus, viewonlymode);
|
||||
}
|
||||
else // Otherwise open it in the Word editor
|
||||
{
|
||||
@@ -1178,7 +1183,7 @@ namespace Volian.Controls.Library
|
||||
//}
|
||||
//public Dictionary<DocVersionInfo, frmEnhanced> dicEnhancedDocuments = new Dictionary<DocVersionInfo, frmEnhanced>();
|
||||
|
||||
private DisplayTabItem OpenStepTabPage(ItemInfo myItemInfo, bool setFocus)
|
||||
private DisplayTabItem OpenStepTabPage(ItemInfo myItemInfo, bool setFocus, bool viewonlymode = false)
|
||||
{
|
||||
ItemInfo proc = myItemInfo.MyProcedure; // Find procedure Item
|
||||
string key = "Item - " + proc.ItemID.ToString();
|
||||
@@ -1197,7 +1202,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
else // If not already open, create a new Page
|
||||
{
|
||||
pg = new DisplayTabItem(this.components, this, proc, key); // Open a new Procedure Tab
|
||||
pg = new DisplayTabItem(this.components, this, proc, key, viewonlymode); // Open a new Procedure Tab
|
||||
_MyDisplayTabItems.Add(key, pg);
|
||||
if (setFocus)
|
||||
{
|
||||
|
||||
@@ -98,13 +98,18 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
#endregion
|
||||
#region Constructors
|
||||
public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, ItemInfo myItemInfo, string myKey)
|
||||
public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, ItemInfo myItemInfo, string myKey, bool viewonlymode = false)
|
||||
{
|
||||
_MyItemInfo = myItemInfo;
|
||||
if (MyItemInfo.MyContent.MyEntry == null)
|
||||
OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure);
|
||||
else
|
||||
OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyContent.MyEntry.DocID, CheckOutType.Document);
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//don't want to check out if opening in View Only Mode Due to someone else having it checked out
|
||||
if (!viewonlymode)
|
||||
{
|
||||
if (MyItemInfo.MyContent.MyEntry == null)
|
||||
OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure);
|
||||
else
|
||||
OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyContent.MyEntry.DocID, CheckOutType.Document);
|
||||
}
|
||||
//Console.WriteLine("DisplayTabItem");
|
||||
_MyKey = myKey;
|
||||
_MyDisplayTabControl = myDisplayTabControl;
|
||||
@@ -112,7 +117,7 @@ namespace Volian.Controls.Library
|
||||
InitializeComponent();
|
||||
this.Click += new EventHandler(DisplayTabItem_Click);
|
||||
if (myItemInfo.MyContent.MyEntry == null)
|
||||
SetupStepTabPanel();
|
||||
SetupStepTabPanel(viewonlymode);
|
||||
else
|
||||
SetupDSOTabPanel();
|
||||
SetupSecurity(myItemInfo);
|
||||
@@ -128,6 +133,11 @@ namespace Volian.Controls.Library
|
||||
private bool MesssageShown = false;
|
||||
public void SetupSecurity(ItemInfo myItem)
|
||||
{
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//is in View Only Mode, so do not set up the Security
|
||||
if (OwnerID == 0)
|
||||
return;
|
||||
|
||||
UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID);
|
||||
|
||||
if (ui == null)
|
||||
@@ -246,7 +256,7 @@ namespace Volian.Controls.Library
|
||||
/// <summary>
|
||||
/// Creates and sets-up a StepTabPanel
|
||||
/// </summary>
|
||||
private void SetupStepTabPanel()
|
||||
private void SetupStepTabPanel(bool viewonlymode = false)
|
||||
{
|
||||
((System.ComponentModel.ISupportInitialize)(_MyDisplayTabControl.MyBar)).BeginInit();
|
||||
_MyDisplayTabControl.MyBar.SuspendLayout();
|
||||
@@ -276,7 +286,7 @@ namespace Volian.Controls.Library
|
||||
_MyDisplayTabControl.MyBar.ResumeLayout(false);
|
||||
DocVersionInfo dvi = _MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; //MyRTBItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo;
|
||||
if (dvi == null) return;
|
||||
if (dvi.VersionType > 127)
|
||||
if (dvi.VersionType > 127 || viewonlymode)
|
||||
MyStepTabPanel.MyStepPanel.VwMode = E_ViewMode.View;
|
||||
// C2021 - 027: Procedure level PC/PC - add _MyIteminfo to argument list
|
||||
if (dvi.MultiUnitCount > 1)
|
||||
|
||||
@@ -9,6 +9,7 @@ using System.Drawing;
|
||||
using System.Text.RegularExpressions;
|
||||
using Volian.Base.Library;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Linq;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
@@ -386,6 +387,26 @@ namespace Volian.Controls.Library
|
||||
// The following line expands the items needed to display SelectedItemInfo
|
||||
ExpandAsNeeded(myItemInfo);
|
||||
}
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
public void ResetAll()
|
||||
{
|
||||
List<int> itemIDs = Controls.OfType<RTBItem>().Where(t => t?.MyItemInfo?.ActiveParent != null && t.MyItemInfo.ActiveParent.GetType() == typeof(ItemInfo)).Select(x => (x.MyItemInfo.ActiveParent as ItemInfo).ItemID).Distinct().ToList();
|
||||
|
||||
foreach (int itemID in itemIDs)
|
||||
{
|
||||
ItemInfo.ResetParts(itemID);
|
||||
}
|
||||
|
||||
// The following line actually reloads the procedure item
|
||||
MyProcedureItemInfo = ItemInfo.Get(MyProcedureItemInfo.ItemID, true);
|
||||
MyProcedureItemInfo.RefreshConfig();
|
||||
ContentInfo.Refresh(Content.Get(MyProcedureItemInfo.MyContent.ContentID, true));
|
||||
|
||||
// The following line expands the items needed to display SelectedItemInfo
|
||||
ExpandAsNeeded(SelectedItemInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Currently selected StepRTB
|
||||
/// </summary>
|
||||
|
||||
@@ -16,6 +16,8 @@ using DevComponents.DotNetBar;
|
||||
using Microsoft.Win32;
|
||||
using System.Diagnostics;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
@@ -906,6 +908,11 @@ namespace Volian.Controls.Library
|
||||
// //SetButtonAndMenuEnabling(false);
|
||||
//}
|
||||
private Bitmap createTextBitmap(char ch)
|
||||
{
|
||||
return createTextBitmap(ch, new Font("FreeMono", 18, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel));
|
||||
}
|
||||
|
||||
private Bitmap createTextBitmap(char ch, Font objFont)
|
||||
{
|
||||
string txt = string.Format("{0}", ch);
|
||||
Bitmap objBmpImage = new Bitmap(1, 1);
|
||||
@@ -916,8 +923,6 @@ namespace Volian.Controls.Library
|
||||
// Create the Font object for the image text drawing.
|
||||
// later on, we could add logic to use either FreeMono or Arial Unicode MS based on the format being used
|
||||
// but for now, we are going to use FreeMono to create the symbol list
|
||||
Font objFont = new Font("FreeMono", 18, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||
//Font objFont = new Font("Arial Unicode MS", 18, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||
|
||||
// Create a graphics object to measure the text's width and height.
|
||||
Graphics objGraphics = Graphics.FromImage(objBmpImage);
|
||||
@@ -937,7 +942,6 @@ namespace Volian.Controls.Library
|
||||
objGraphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
objGraphics.TextContrast = 0;
|
||||
objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||
//objGraphics.DrawString(txt, objFont, new SolidBrush(Color.FromArgb(102, 102, 102)), 0, 0);
|
||||
objGraphics.DrawString(txt, objFont, new SolidBrush(Color.Black),0,0);
|
||||
objGraphics.Flush();
|
||||
return (objBmpImage);
|
||||
@@ -2067,6 +2071,9 @@ namespace Volian.Controls.Library
|
||||
rtabHome.Select();
|
||||
rtabTableGridTools.Visible = false;
|
||||
SetButtonMenuEnabledDisabledOnStepType(false);
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
//Is in View Only Mode so show button as selected
|
||||
btnEditMode.Checked = btnCMEditMode1.Checked = true;
|
||||
this.Refresh();
|
||||
return;
|
||||
}
|
||||
@@ -3338,10 +3345,43 @@ namespace Volian.Controls.Library
|
||||
public void SetupAdminMode()
|
||||
{
|
||||
}
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
public event StepTabRibbonEvent EnableDisableStepProperties;
|
||||
private void OnEnableDisableStepProperties(StepTabRibbonEventArgs args)
|
||||
{
|
||||
if (EnableDisableStepProperties != null)
|
||||
EnableDisableStepProperties(this, args);
|
||||
}
|
||||
private void btnToggleEditView_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MyEditItem == null) return;
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
string message = string.Empty;
|
||||
if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View && !MySessionInfo.CanCheckOutItem(MyEditItem.MyItemInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message))
|
||||
{
|
||||
//someone else has the procedure checked out so cannot swap out of view only mode
|
||||
message = message.Replace("\r\nWould You like to open the procedure in View Only Mode?", "\r\n\r\nYou will be unable to turn off View Only Mode for this procedure until it is checked in by the user specified above.");
|
||||
MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
else if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View)
|
||||
{
|
||||
//swapping into edit mode, so check out procedure and Setup Security
|
||||
(this.Parent as StepTabPanel).MyDisplayTabItem.OwnerID = MySessionInfo.CheckOutItem(MyEditItem.MyItemInfo.MyProcedure.ItemID, 0);
|
||||
(this.Parent as StepTabPanel).MyDisplayTabItem.SetupSecurity(MyItemInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
//swapping into View Only mode, so check in procedure
|
||||
OwnerInfo oi = OwnerInfo.GetByItemID(MyEditItem.MyItemInfo.MyProcedure.ItemID, CheckOutType.Procedure);
|
||||
MySessionInfo.CheckInItem(oi.OwnerID);
|
||||
}
|
||||
|
||||
MyEditItem.MyStepPanel.VwMode = MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? E_ViewMode.View : E_ViewMode.Edit;
|
||||
//enable / disable the Step Properties Panel based on the ViewMode
|
||||
OnEnableDisableStepProperties(new StepTabRibbonEventArgs(MyEditItem.MyItemInfo, 0, MyEditItem.MyStepPanel.VwMode));
|
||||
MyEditItem.ToggleEditView(MyEditItem.MyStepPanel.VwMode);
|
||||
SetButtonAndMenuEnabling(true);
|
||||
SetStepButtonAndMenuEnabling(true);
|
||||
@@ -3355,7 +3395,62 @@ namespace Volian.Controls.Library
|
||||
// btnEnhancedDocSync.Checked = !btnEnhancedDocSync.Checked;
|
||||
//}
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
// using a blocking collection to make it thread safe in case someone
|
||||
// spams hitting the refresh button
|
||||
private BlockingCollection<bool> blockingRefreshProcedure = new BlockingCollection<bool>();
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
private void btnRefreshProcedure_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Consumer
|
||||
Task.Run(() =>
|
||||
{
|
||||
//Blocks until a newRefresh Procedure Run is available
|
||||
while (!blockingRefreshProcedure.IsCompleted)
|
||||
{
|
||||
_ = blockingRefreshProcedure.Take();
|
||||
RefreshProcedure();
|
||||
}
|
||||
});
|
||||
|
||||
//Producer
|
||||
Task.Run(() => { blockingRefreshProcedure.Add(true); });
|
||||
}
|
||||
|
||||
public void RefreshProcedure()
|
||||
{
|
||||
StepTabPanel stab_Panel = Parent as StepTabPanel;
|
||||
|
||||
if (MyEditItem != null)
|
||||
{
|
||||
if (!MyEditItem.MyStepPanel.ContainsFocus)
|
||||
this.Invoke((Action)(() => { MyEditItem.MyStepPanel.Focus(); }));
|
||||
|
||||
E_ViewMode mode = MyEditItem.MyStepPanel.VwMode;
|
||||
Application.DoEvents();
|
||||
this.Invoke((Action)(() => {MyEditItem.MyStepPanel.ResetAll();}));
|
||||
Application.DoEvents();
|
||||
this.Invoke((Action)(() => {MyEditItem.MyStepPanel.Refresh();}));
|
||||
Application.DoEvents();
|
||||
MyEditItem.MyStepPanel.VwMode = mode;
|
||||
Application.DoEvents();
|
||||
}
|
||||
else if (stab_Panel != null)
|
||||
{
|
||||
if (!stab_Panel.MyStepPanel.ContainsFocus)
|
||||
this.Invoke((Action)(() => {stab_Panel.MyStepPanel.Focus();}));
|
||||
|
||||
E_ViewMode mode = stab_Panel.MyStepPanel.VwMode;
|
||||
Application.DoEvents();
|
||||
this.Invoke((Action)(() => {stab_Panel.MyStepPanel.ResetAll();}));
|
||||
Application.DoEvents();
|
||||
this.Invoke((Action)(() => {stab_Panel.MyStepPanel.Refresh();}));
|
||||
Application.DoEvents();
|
||||
stab_Panel.MyStepPanel.VwMode = mode;
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
private void btnROEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (VlnSettings.ReleaseMode.Equals("DEMO"))
|
||||
@@ -4190,15 +4285,19 @@ namespace Volian.Controls.Library
|
||||
if (oring == eEventSource.Keyboard)
|
||||
_OringFlg = 1;
|
||||
|
||||
int selectedSlave = MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave;
|
||||
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
||||
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
||||
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = selectedSlave;
|
||||
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 0);
|
||||
}
|
||||
|
||||
private void btnPdfQuickCreate_Click(object sender, EventArgs e)
|
||||
{
|
||||
int selectedSlave = MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave;
|
||||
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
||||
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
||||
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = selectedSlave;
|
||||
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 1);
|
||||
}
|
||||
|
||||
@@ -4861,10 +4960,11 @@ namespace Volian.Controls.Library
|
||||
public class StepTabRibbonEventArgs : EventArgs
|
||||
{
|
||||
public StepTabRibbonEventArgs() { ; }
|
||||
public StepTabRibbonEventArgs(ItemInfo proc, int oringFlg = 0)
|
||||
public StepTabRibbonEventArgs(ItemInfo proc, int oringFlg = 0, E_ViewMode viewMode = E_ViewMode.Edit)
|
||||
{
|
||||
_Proc = proc;
|
||||
OringFlg = oringFlg;
|
||||
ViewMode = viewMode;
|
||||
}
|
||||
private ItemInfo _Proc;
|
||||
|
||||
@@ -4880,6 +4980,9 @@ namespace Volian.Controls.Library
|
||||
get { return _OringFlg; }
|
||||
set { _OringFlg = value; }
|
||||
}
|
||||
|
||||
//C2019-036 View Only mode work with Checked Out Procedures
|
||||
public E_ViewMode ViewMode { get; set; }
|
||||
}
|
||||
public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args);
|
||||
|
||||
|
||||
BIN
PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs
generated
BIN
PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs
generated
Binary file not shown.
16
PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs
Normal file
16
PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
//ToolStripMenuItem with Added Value Property
|
||||
public class ToolStripMenuItemwithValue : ToolStripMenuItem
|
||||
{
|
||||
public readonly object Value;
|
||||
|
||||
public ToolStripMenuItemwithValue(string text, object value)
|
||||
{
|
||||
Value = value;
|
||||
Text = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -384,6 +384,9 @@
|
||||
<Compile Include="TablePropertiesControl.Designer.cs">
|
||||
<DependentUpon>TablePropertiesControl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolStripMenuItemwithValue.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="TransPanel.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -1269,6 +1269,11 @@ namespace Volian.Controls.Library
|
||||
if (ok)
|
||||
if (pia == null && tn.VEObject as StepInfo == null) cm.MenuItems.Add("Properties...", new EventHandler(mi_Click));
|
||||
#endregion
|
||||
#region Refresh_Tree
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
if (tn == (VETreeNode)Nodes[0])
|
||||
cm.MenuItems.Add("Refresh Tree", new EventHandler(mi_Click));
|
||||
#endregion
|
||||
//_MyLog.WarnFormat("Context Menu 7 - {0}", GC.GetTotalMemory(true));
|
||||
|
||||
if (fi != null && fi.HasWorkingDraft)
|
||||
@@ -2352,6 +2357,10 @@ namespace Volian.Controls.Library
|
||||
case "Print All Approved Procedures": //C2025-017 print all approved procedures
|
||||
OnPrintAllApprovedProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
break;
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
case "Refresh Tree":
|
||||
RefreshTree();
|
||||
break;
|
||||
default:
|
||||
if (mi.Text.StartsWith("Showing Change Bars Starting"))
|
||||
OnSelectDateToStartChangeBars(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||
@@ -3926,6 +3935,13 @@ namespace Volian.Controls.Library
|
||||
if (Processing != null)
|
||||
Processing(this, new vlnTreeStatusEventArgs(status, message));
|
||||
}
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public event vlnTreeViewStatusEvent RefreshFormats;
|
||||
private void OnRefreshFormats(bool status, string message)
|
||||
{
|
||||
if (RefreshFormats != null)
|
||||
RefreshFormats(this, new vlnTreeStatusEventArgs(status, message));
|
||||
}
|
||||
#endregion
|
||||
#region SetLastValuesAndSaveIfChangedStuff
|
||||
private void SetLastValues(VETreeNode node)
|
||||
@@ -4648,6 +4664,36 @@ namespace Volian.Controls.Library
|
||||
if (myFolder.FolderID == ((FolderInfo)obj2).FolderID) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
//C2021-035 Add Refresh Tree Option at highest level
|
||||
public void RefreshTree()
|
||||
{
|
||||
//reload the base node
|
||||
VETreeNode tbase = (VETreeNode) Nodes[0];
|
||||
tbase.ChildrenLoaded = false;
|
||||
|
||||
//Refresh the formats
|
||||
OnRefreshFormats(true, "Refreshing Formats");
|
||||
|
||||
//reset the procedure lists so db is re-queried in case they changed
|
||||
//also clear other caches in case added steps / sections / etc...
|
||||
PartInfo.ClearPartInfoCache();
|
||||
ItemInfo.ClearItemInfoCache();
|
||||
DocVersionInfo.ResetAllProcedures();
|
||||
FolderInfo.ClearFolderInfoCache();
|
||||
|
||||
//Refresh the base VEPROMS object
|
||||
var fldr = tbase.VEObject as FolderInfo;
|
||||
if (fldr != null)
|
||||
{
|
||||
Invoke((Action)(() => { tbase.VEObject = FolderInfo.Get(fldr.FolderID); }));
|
||||
}
|
||||
|
||||
//refresh the tree
|
||||
Invoke((Action)(() => { tbase.RefreshNode(); }));
|
||||
this.Invoke((Action)(() => { this.Update(); }));
|
||||
}
|
||||
|
||||
}
|
||||
#region DragHelper
|
||||
public class DragHelper
|
||||
|
||||
@@ -345,6 +345,12 @@ namespace Volian.Print.Library
|
||||
// will skip certain logic if CAS Only or CTS Only
|
||||
public PromsPrinterPrintType PromsPrinterPrintType { get; set; } = PromsPrinterPrintType.Normal;
|
||||
|
||||
//B2025-054 Wrong Page Numbers in CAS Summary
|
||||
// when section title continued and CAS
|
||||
// Flag for when should build the CAS_CTAS
|
||||
//to avoid overwriting data
|
||||
public bool ShouldPrint_CAS_CTAS { get; set; } = true;
|
||||
|
||||
public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite,
|
||||
ChangeBarDefinition cbd, String pdfFile, bool insertBlankPages, bool batchPrint, string prefix, bool saveLinks, int removeTrailngHardReturnsAndManualPageBreaks, string blankPageText, bool didAll, MergedPdf mergedPdf, string watermarkColor, int PrtSectID = -1)
|
||||
{
|
||||
|
||||
@@ -1855,7 +1855,10 @@ namespace Volian.Print.Library
|
||||
if (doSectionContinue) DoTopContinueMsg(cb, ref yPageStart, yTopMargin, docstyle, null);
|
||||
// If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it
|
||||
// B2020-164 added check for SpecialCaseCalvert to bypass IsSeparateSubsection STP O-67B-2 step 6.5
|
||||
if ((!MyItemInfo.IsSection || MyItemInfo.IsSubsection) &&
|
||||
// B2025-060 no section continue message if previous was not in same section or sub-section
|
||||
// fixes Vogtle units 3&4 3-AOP-116 Attachments 2 & 3
|
||||
if ((!MyItemInfo.IsSection || MyItemInfo.IsSubsection) &&
|
||||
(MyItemInfo.MyPrevious != null && MyItemInfo.ActiveSection == MyItemInfo.MyPrevious.ActiveSection) &&
|
||||
MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader &&
|
||||
(!MyItemInfo.IsSection || (MyItemInfo.IsSeparateSubsection || MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert)))
|
||||
{
|
||||
@@ -2162,12 +2165,12 @@ namespace Volian.Print.Library
|
||||
//B2025-048 Problem with Printing CAS Steps
|
||||
// skip this if printing CAS or CTAS - was causing it to
|
||||
// skip/overwrite data
|
||||
if (doSectionTitleContinued && MyPromsPrinter.PromsPrinterPrintType == PromsPrinterPrintType.Normal)
|
||||
if (doSectionTitleContinued)
|
||||
{
|
||||
vlnParagraph sectContPara;
|
||||
string contMsg = (MyItemInfo.ActiveSection != null) ? MyItemInfo.ActiveSection.MyDocStyle.Continue.SectionTitle.AppendToTitle : ""; // C2018-003 fixed use of getting the active section
|
||||
// For Calvert, the xoffset will be the highest level sections xoffset (there are metasections,
|
||||
// don't use their xoffset or the continue message is indented too much)
|
||||
// For Calvert, the xoffset will be the highest level sections xoffset (there are metasections,
|
||||
// don't use their xoffset or the continue message is indented too much)
|
||||
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert)
|
||||
{
|
||||
float secContinueTabXoff = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin;
|
||||
@@ -2187,6 +2190,12 @@ namespace Volian.Print.Library
|
||||
// get to the correct section for the message, i.e. if on a section, the message should be the parent
|
||||
// section (not the activesection which is myself); if on a step, the message should be the active section
|
||||
ItemInfo sectForCont = MyItemInfo.IsSection && MyItemInfo.MyParent.IsSection ? MyItemInfo.MyParent : MyItemInfo.ActiveSection;
|
||||
//B2025-054 Wrong Page Numbers in CAS Summary
|
||||
// when section title continued and CAS
|
||||
//to avoid overwriting data
|
||||
// - this will be built at a different call to vlnParagraph
|
||||
if (MyPromsPrinter.PromsPrinterPrintType != PromsPrinterPrintType.Normal)
|
||||
MyPromsPrinter.ShouldPrint_CAS_CTAS = false;
|
||||
sectContPara = new vlnParagraph(MyParent.MyParent, cb, sectForCont, MyParent.XOffset, 0, 0, 0, MyParent.MyItemInfo.ActiveFormat, null, (contMsg == null || contMsg == "") ? " (Continued)" : contMsg, 0, false, MyPromsPrinter);
|
||||
if (sectContPara.PartsLeft.Count > 0)
|
||||
{
|
||||
@@ -2197,7 +2206,7 @@ namespace Volian.Print.Library
|
||||
vt.XOffset = secContinueTabXoff;
|
||||
vt.Width = secContinueXoff - secContinueTabXoff;
|
||||
sectContPara.XOffset = secContinueXoff;
|
||||
if ((wd + 12) > secContinueXoff - secContinueTabXoff) // 12 is 2 characters
|
||||
if ((wd + 12) > secContinueXoff - secContinueTabXoff) // 12 is 2 characters
|
||||
{
|
||||
float dif = wd + 12 - (secContinueXoff - secContinueTabXoff);
|
||||
vt.Width += dif;
|
||||
@@ -2212,12 +2221,20 @@ namespace Volian.Print.Library
|
||||
}
|
||||
else
|
||||
{
|
||||
//B2025-054 Wrong Step Numbers
|
||||
// when section title continued and CAS
|
||||
//to avoid overwriting data
|
||||
// - this will be built at a different call to vlnParagraph
|
||||
if (MyPromsPrinter.PromsPrinterPrintType != PromsPrinterPrintType.Normal)
|
||||
MyPromsPrinter.ShouldPrint_CAS_CTAS = false;
|
||||
sectContPara = new vlnParagraph(MyParent.MyParent, cb, MyItemInfo.ActiveSection, MyParent.XOffset, 0, 0, 0, MyParent.MyItemInfo.ActiveFormat, null, (contMsg == null || contMsg == "") ? " (Continued)" : contMsg, 0, false, MyPromsPrinter);
|
||||
float mytmpfloat = sectContPara.ParagraphToPdf(cb, yTopMargin, yTopMargin, yBottomMargin);
|
||||
if (sectContPara.SectionContinuePrinted)
|
||||
yPageStart -= sectContPara.Height + SixLinesPerInch;
|
||||
}
|
||||
}
|
||||
//out of section title section - reset this back to true (default)
|
||||
MyPromsPrinter.ShouldPrint_CAS_CTAS = true;
|
||||
|
||||
// see if this hls has footnotes, add to the footnote datastructure for processing at end of page.
|
||||
if (MyItemInfo.IsHigh && MyPageHelper.NotesToFootNotesHLS.ContainsKey(MyItemInfo.ItemID)) AddFootNote(cb);
|
||||
@@ -3596,11 +3613,11 @@ namespace Volian.Print.Library
|
||||
BuildPlacekeeper(parent, itemInfo);
|
||||
|
||||
// Save step text information to be used to create a Continuous Action Summary
|
||||
BuildContinuousActionSummary(parent, itemInfo);
|
||||
if (MyPromsPrinter.ShouldPrint_CAS_CTAS) BuildContinuousActionSummary(parent, itemInfo);
|
||||
|
||||
// F2022-024 Time Critical Step
|
||||
// Save step text information to be used to create a Time Critical Action Summary
|
||||
BuildTimeCriticalActionSummary(parent, itemInfo);
|
||||
if (MyPromsPrinter.ShouldPrint_CAS_CTAS) BuildTimeCriticalActionSummary(parent, itemInfo);
|
||||
|
||||
if (itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj != null)
|
||||
_MyBoxLeftAdj = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj);
|
||||
|
||||
Reference in New Issue
Block a user