diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.cs b/PROMS/Volian.Controls.Library/DSOTabPanel.cs index b9665e9a..5abb651e 100644 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.cs +++ b/PROMS/Volian.Controls.Library/DSOTabPanel.cs @@ -413,11 +413,14 @@ namespace Volian.Controls.Library _MyLog.FatalFormat("File does not exist {0}\r\nFile was {1}", tmp, MyDSOFile.FullName); // if this was a library document, ask user if it should be saved for all usages. bool cvtLibDoc = false; - EntryInfo myei = MyDisplayTabItem.MyItemInfo.MyContent.MyEntry; - if (myei != null && myei.MyDocument != null && myei.MyDocument.LibTitle != null && myei.MyDocument.LibTitle != "") + if (MyDisplayTabItem.MyItemInfo != null) // B2016-131 if myiteminfo is null then the lib doc is not referenced, so just save the changes - don't generate a pdf { - DialogResult ans = MessageBox.Show("Save as Library Document for all usages?", "Document Save", MessageBoxButtons.YesNo); - if (ans == DialogResult.No) cvtLibDoc = true; + EntryInfo myei = MyDisplayTabItem.MyItemInfo.MyContent.MyEntry; + if (myei != null && myei.MyDocument != null && myei.MyDocument.LibTitle != null && myei.MyDocument.LibTitle != "") + { + DialogResult ans = MessageBox.Show("Save as Library Document for all usages?", "Document Save", MessageBoxButtons.YesNo); + if (ans == DialogResult.No) cvtLibDoc = true; + } } MyDSOFile.SaveFile(doc.Length, doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged); if (cvtLibDoc) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index fae9229f..1eee6433 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -810,7 +810,7 @@ namespace Volian.Controls.Library foreach (object itm in b.Items) { DisplayTabItem myTabItem = itm as DisplayTabItem; - if (myTabItem != null && myTabItem.MyStepTabPanel != null) + if (myTabItem != null && myTabItem.MyStepTabPanel != null && myItemInfo != null) if (myTabItem.MyStepTabPanel.MyProcedureItemInfo.ItemID == myItemInfo.MyProcedure.ItemID) return b; } @@ -1041,6 +1041,7 @@ namespace Volian.Controls.Library } public DisplayTabItem OpenDSOTabPage(DocumentInfo myDocumentInfo) { + _MyBar = GetParentBar(null); // B2016-131 - allow open of a non-referenced library document CleanUpClosedItems(); DisplayTabItem pg = null; string key = "Doc - " + myDocumentInfo.DocID; @@ -1048,7 +1049,7 @@ namespace Volian.Controls.Library pg = _MyDisplayTabItems[key]; else { - if (DSOTabPanel.Count > 18) // Limit the number of open document pages to 18 + if (DSOTabPanel.Count > DSOTabPanel.MSWordLimit) //18) // Limit the number of open document pages to 18 { MessageBox.Show("Too many Word Documents Open. Please close one of the Documents before attempting to open another"); return null; diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs b/PROMS/Volian.Controls.Library/DisplayTabItem.cs index 34d72dfa..257a6c73 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabItem.cs @@ -326,7 +326,10 @@ namespace Volian.Controls.Library private void SetupLibraryDocumentDSOTabPanel() { UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); - _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion)); + // B2016-131 if myiteminfo is null, then the lib doc is not referenced. + // - Allow editting only if you are an Administrator + // - Cannot check if you are a Writer or Set Aministrator because we don't have a Doc Verion + _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, (MyItemInfo != null) ? UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion):ui.IsAdministrator()); // // tabItem //