Compare commits

...

15 Commits

Author SHA1 Message Date
2783d2cc77 B2019-140/B2022-099 After doing an Approval (final stage) of a procedure, the change bars do not reset on the screen.
Also, when change the “Showing Change bars” option, the screen does not refresh.
2025-12-03 15:53:29 -05:00
a7a5df1991 Merge pull request 'F2025-038 Added a format flag to not include the word “SECTION” in front the section number and title on the Continuous Action Summary that is generated by PROMS.' (#665) from F2025-038_Vogtle_3&4_CAS_Formating into Development
Looks Good! Ready for QA!
2025-12-02 12:17:03 -05:00
62a296f909 F2025-038 Added a format flag to not include the word “SECTION” in front the section number and title on the Continuous Action Summary that is generated by PROMS. 2025-12-02 10:53:26 -05:00
0a301e1a84 Merge pull request 'F2025-039 Added “Deselect”, “deselect”, “Refill”, “refill” to the replace words list to the Vogtle Units 3&4 formats' (#664) from F2025-039_Vogtle_3&4_ReplaceWordsUpdate into Development
format only change - good for testing phase
2025-12-01 14:50:57 -05:00
37e727202c F2025-039 Added “Deselect”, “deselect”, “Refill”, “refill” to the replace words list to the Vogtle Units 3&4 formats 2025-12-01 14:24:31 -05:00
49bdd03c1c Merge pull request 'F2025-037 Added “/open” and “/reset” to the replacewords list and replace them as is so that the “open” and “reset” are not bolded when preceded by a forward slash.' (#663) from F2025-037_Vogtle_ReplaceWords_Tweak into Development
Format only change - good for testing
2025-11-21 09:56:55 -05:00
23f4b672b2 F2025-037 Added “/open” and “/reset” to the replacewords list and replace them as is so that the “open” and “reset” are not bolded when preceded by a forward slash. 2025-11-21 09:46:09 -05:00
599d45086f Merge pull request 'C2025-063 If Separate Windows is set, should not open Remember Tabs.' (#661) from C2025-063 into Development
good for testing phase
2025-11-20 08:44:09 -05:00
93aed0e06a Merge pull request 'B2025-063 Show User in View Mode' (#660) from B2025-063 into Development
good for testing
2025-11-20 08:39:46 -05:00
7eb94d7575 C2025-063 If Separate Windows is set, should not open Remember Tabs. 2025-11-20 07:23:23 -05:00
fa8b0bd6a1 B2025-063 Show User in View Mode 2025-11-20 07:06:43 -05:00
c26e271676 Merge pull request 'C2019-036' (#659) from C2019-036 into Development
good for testing
2025-11-19 09:05:32 -05:00
10257a832a Merge pull request 'C2019-036 View Only Mode - Handle special case where item is opened in a separate window and tabs are remembered' (#658) from C2019-036 into Development
good for testing phase
2025-11-19 08:47:04 -05:00
b5e0c121e8 Merge pull request 'C2019-036 View Only Mode --- shouldn't prompt for View Only Mode if already open in another tab in View Only Mode' (#657) from C2019-036 into Development
good for testing phase
2025-11-19 08:18:25 -05:00
8c6f0c2736 Merge pull request 'C2019-036 View Only mode work with Checked Out Procedures' (#656) from C2019-036 into Development
good for testing phase
2025-11-17 10:01:44 -05:00
10 changed files with 147 additions and 6 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -13,6 +13,8 @@ using System.Text.RegularExpressions;
using System.Globalization;
using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms;
using Volian.Controls.Library;
using System.Linq;
namespace VEPROMS
{
@@ -1321,6 +1323,26 @@ namespace VEPROMS
// Clear the change bar override for this procedure:
pi.ClearChangeBarOverrides();
//B2019-140 Change bars do not get refreshed when approval is run.
ProcedureInfo newproc = ItemInfo.ResetProcedure(pi.ItemID);
//// Refresh the StepPanel for the current Procedure
//// so change bars update
//// on any open StepPanel
DisplayTabItem dti = MyFrmVEPROMS.GetTabContainingProcedure(pi.ItemID);
if (dti != null)
{
if (!dti.MyStepTabPanel.MyStepPanel.ContainsFocus)
dti.MyStepTabPanel.MyStepPanel.Focus();
foreach (EditItem eitm in dti.MyStepTabPanel.MyStepPanel.Controls.OfType<EditItem>())
eitm.ChangeBar = eitm.MyItemInfo.HasChangeBar;
}
//since in a separate form, need to update the tree view
//so "Showing Change Bars" Content Menu Item is correct
MyFrmVEPROMS.RefreshProcedureNode(newproc);
}
else
UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave);

View File

@@ -589,6 +589,25 @@ namespace VEPROMS
}
}
//B2019-140 Change bars do not get refreshed when approval is run.
// Get the displaytab containing the procedure
// if none exists, return null
public DisplayTabItem GetTabContainingProcedure(int procid) => tc?.MyBar?.Items?.OfType<DisplayTabItem>().FirstOrDefault(x => x.MyItemInfo?.ItemID == procid);
// Refresh Node in Tree
// Used for when Change Bar Updates as part of approval.
public void RefreshProcedureNode(ProcedureInfo itm)
{
VETreeNode tn = tv.FindNode(itm, tv.Nodes);
var tmp = (ProcedureInfo)tn?.VEObject;
if (tmp != null)
{
tmp.ChangeBarDate = itm.ChangeBarDate;
tmp.MyConfig = itm.MyConfig;
}
tn?.RefreshNode();
}
void tv_SelectDateToStartChangeBars(object sender, vlnTreeEventArgs args)
{
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
@@ -606,6 +625,23 @@ namespace VEPROMS
itm.MyContent.Config = pc.ToString();
itm.UserID = Volian.Base.Library.VlnSettings.UserID;
itm.Save();
//B2019-140 Change bars do not get refreshed when approval is run.
// Reset a Procedure and sub items in the cache
ProcedureInfo newproc = ItemInfo.ResetProcedure(pi.ItemID);
//// Refresh the StepPanel for the current Procedure
//// so change bars update
//// on any open StepPanel
DisplayTabItem dti = GetTabContainingProcedure(pi.ItemID);
if (dti != null)
{
if (!dti.MyStepTabPanel.MyStepPanel.ContainsFocus)
dti.MyStepTabPanel.MyStepPanel.Focus();
foreach (EditItem eitm in dti.MyStepTabPanel.MyStepPanel.Controls.OfType<EditItem>())
eitm.ChangeBar = eitm.MyItemInfo.HasChangeBar;
}
}
}
}
@@ -2497,7 +2533,7 @@ namespace VEPROMS
//and set checkboxes based on what they are set to
UserSettings usersettings = new UserSettings(VlnSettings.UserID);
if (DisPlayTabState.Rows.Count > 0 && (usersettings.UserSetting_OpenTabs_AutoOpen || !usersettings.UserSetting_OpenTabs_Remember))
if (!Settings.Default.SeparateWindows && DisPlayTabState.Rows.Count > 0 && (usersettings.UserSetting_OpenTabs_AutoOpen || !usersettings.UserSetting_OpenTabs_Remember))
{
//will open tabs by default / ask by default
DialogResult result = DialogResult.Yes;

View File

@@ -3819,6 +3819,51 @@ namespace VEPROMS.CSLA.Library
_Tables = null;
_SupInfos = null;
}
//B2019-140 Change bars do not get refreshed when approval is run.
// Reset a Procedure and sub items in the cache
public static ProcedureInfo ResetProcedure(int procID)
{
// The following lines reload the procedure info cache
ProcedureInfo newproc = ProcedureInfo.Get(procID, true);
newproc.RefreshConfig();
//the following is needed to force the ProcedureConfig to reload
#pragma warning disable S1656 // Variables should not be self-assigned
newproc.MyConfig = newproc.MyConfig;
#pragma warning restore S1656 // Variables should not be self-assigned
//reload the Content Cache for the procedure
ContentInfo.Refresh(Content.Get(newproc.MyContent.ContentID, true));
// The following line actually reloads the item info cache
ItemInfo newprocitem = Get(procID, true);
newprocitem.RefreshConfig();
//Reload all the child/sub items
#pragma warning disable S2971 // LINQ expressions should be simplified - need initial ToList to force enumeration
//otherwise will get a "Collection was modified; enumeration operation may not execute" error
List<int> itemIDs = _CacheByPrimaryKey.Values.ToList().SelectMany(y => y).Where(t => t?.ActiveParent != null && (t.ActiveParent is ItemInfo) && t.MyProcedure.ItemID == procID).Select(x => (x.ActiveParent as ItemInfo).ItemID).Distinct().ToList();
#pragma warning restore S2971 // LINQ expressions should be simplified
for (int index = 0; index < itemIDs.Count; index++)
{
ResetParts(itemIDs[index]);
}
//reset the procedure config for all items attached to current procedure
#pragma warning disable S2971 // LINQ expressions should be simplified - need initial ToList to force enumeration
//otherwise will get a "Collection was modified; enumeration operation may not execute" error
List<ItemInfo> pconfigrefresh_items = _CacheByPrimaryKey.Values.ToList().SelectMany(y => y).Where(t => t?.MyProcedure?.ItemID == procID).Distinct().ToList();
#pragma warning restore S2971 // LINQ expressions should be simplified
for (int index = 0; index < pconfigrefresh_items.Count; index++)
{
pconfigrefresh_items[index].MyProcedure = newproc;
}
//return the changed procedure info
return newproc;
}
private ItemInfoList _Procedures;
public ItemInfoList Procedures
{ get { return Lookup(E_FromType.Procedure, ref _Procedures); } }

View File

@@ -4341,6 +4341,16 @@ public LeftJustifyList(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
return LazyLoad(ref _IncludeSectionNumAndTitle, "@IncludeSectionNumAndTitle");
}
}
//F2025-038 default (in base format) is True. The lable "SECTION" will precede the section number an title
private LazyLoad<bool> _IncludeSectionLabel;
public bool IncludeSectionLabel
{
get
{
return LazyLoad(ref _IncludeSectionLabel, "@IncludeSectionLabel");
}
}
// the font and font styles to use for the continuous action summary
private VE_Font _Font;
public VE_Font Font

View File

@@ -136,9 +136,34 @@ namespace Volian.Controls.Library
//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);
UserInfo uiViewOnly = UserInfo.GetByUserID(Base.Library.VlnSettings.UserID);
if (uiViewOnly.IsAdministrator())
{
MyUserRole = $"{Base.Library.VlnSettings.UserID} - Administrator";
}
else if (uiViewOnly.IsSetAdministrator(myItem.MyDocVersion))
{
MyUserRole = $"{Base.Library.VlnSettings.UserID} - Set Administrator";
}
else if (uiViewOnly.IsWriter(myItem.MyDocVersion))
{
MyUserRole = $"{Base.Library.VlnSettings.UserID} - Writer";
}
else if (uiViewOnly.IsROEditor(myItem.MyDocVersion))
{
MyUserRole = $"{Base.Library.VlnSettings.UserID} - RO Editor";
}
else
{
MyUserRole = $"{Base.Library.VlnSettings.UserID} - Reviewer";
}
return;
}
UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID);
if (ui == null)
{

View File

@@ -49,7 +49,7 @@ namespace Volian.Print.Library
{
if (myContAct.MyChildren.Count > 0)
if (myContAct.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.ContinuousActionSummaryData.IncludeSectionNumAndTitle) // only print the section title if it has Continuous Action Steps
AddSectionHeader(myContAct.MyParagraph.MyItemInfo.DisplayNumber, myContAct.MyParagraph.MyItemInfo.FormattedDisplayText);
AddSectionHeader(myContAct.MyParagraph.MyItemInfo.DisplayNumber, myContAct.MyParagraph.MyItemInfo.FormattedDisplayText, myContAct.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.ContinuousActionSummaryData.IncludeSectionLabel);
foreach (pkParagraph pgh in myContAct.MyChildren) // within each section...
{
ItemInfo hlsii = GetHLSii(pgh.MyParagraph.MyItemInfo);
@@ -175,7 +175,7 @@ namespace Volian.Print.Library
WriteCell("DONE", true, true);
WriteCell("PAGE", true, false);
}
private void AddSectionHeader(string number, string title)
private void AddSectionHeader(string number, string title, bool IncludeSectionLabel)
{
if (!_FirstSection)
{
@@ -187,7 +187,10 @@ namespace Volian.Print.Library
_FirstSection = false;
Advance(2);
SetIndent(0, 0);
WriteCell("SECTION " + number, true, false);
if (IncludeSectionLabel)
WriteCell("SECTION " + number, true, false);
else
WriteCell(number, true, false); // F2025-038 don't include the word SECTION before number and title
WriteCell(" " + title, false, true);
Advance();
}