From bd518eeff130fa53e669325c7408776f68674aba Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Tue, 23 Jun 2020 10:39:57 +0200 Subject: [PATCH] MS: Push Conversations --- app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj | 1 + .../My Project/Resources.Designer.vb | 10 + app/DD_PM_WINDREAM/My Project/Resources.resx | 67 +++--- app/DD_PM_WINDREAM/Resources/conversation.jpg | Bin 0 -> 44570 bytes app/DD_PM_WINDREAM/frmChat_NewConversation.vb | 2 +- app/DD_PM_WINDREAM/frmMain.vb | 101 +++++++-- app/DD_PM_WINDREAM/frmValidator.Designer.vb | 36 ++-- app/DD_PM_WINDREAM/frmValidator.resx | 49 +++-- app/DD_PM_WINDREAM/frmValidator.vb | 201 ++++++++++++------ 9 files changed, 319 insertions(+), 148 deletions(-) create mode 100644 app/DD_PM_WINDREAM/Resources/conversation.jpg diff --git a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj index 2593c0f..7e579b4 100644 --- a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj +++ b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj @@ -871,6 +871,7 @@ + diff --git a/app/DD_PM_WINDREAM/My Project/Resources.Designer.vb b/app/DD_PM_WINDREAM/My Project/Resources.Designer.vb index 68c3ee3..6b04178 100644 --- a/app/DD_PM_WINDREAM/My Project/Resources.Designer.vb +++ b/app/DD_PM_WINDREAM/My Project/Resources.Designer.vb @@ -270,6 +270,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property conversation() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("conversation", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/app/DD_PM_WINDREAM/My Project/Resources.resx b/app/DD_PM_WINDREAM/My Project/Resources.resx index 2330338..624f73e 100644 --- a/app/DD_PM_WINDREAM/My Project/Resources.resx +++ b/app/DD_PM_WINDREAM/My Project/Resources.resx @@ -121,18 +121,9 @@ ..\Resources\refresh_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\asterisk_yellow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\hide_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -190,6 +181,9 @@ ..\Resources\Search(Go)_5718.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ampel-gruen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\application_form_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -211,15 +205,15 @@ ..\Resources\database_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\DeleteFilter_5563.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\database_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Image_File.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\key_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -232,6 +226,9 @@ ..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\show_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\dxf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -250,6 +247,9 @@ ..\Resources\Hammer_Builder_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\magifier_zoom_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\page_copy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -265,6 +265,9 @@ ..\Resources\properties_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\bullet_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -274,8 +277,11 @@ ..\Resources\user.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\ampel-gruen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\shape_square_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\email_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\A_1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -307,9 +313,6 @@ ..\Resources\resultset_last.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\shape_square_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\bullet_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -340,17 +343,20 @@ ..\Resources\ID_FILE_PAGE_SETUP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\flag_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\flag_orange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\bullet_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\resultset_previous.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Image_File.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Files_7954.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -361,8 +367,8 @@ ..\Resources\Monitor_Screen_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\flag_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\OpenFileDialog_692.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -370,9 +376,6 @@ ..\Resources\doc_text_image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Einstellungen6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\pdf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -385,8 +388,8 @@ ..\Resources\WorkItem_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\show_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\resultset_first.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -406,8 +409,8 @@ ..\Resources\Checkbox.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\magifier_zoom_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Einstellungen6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\key1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -415,7 +418,7 @@ ..\Resources\user_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\DeleteFilter_5563.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\conversation.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/app/DD_PM_WINDREAM/Resources/conversation.jpg b/app/DD_PM_WINDREAM/Resources/conversation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a44fdef4ef4bb40ef525d3b76f435c9a44f3aed2 GIT binary patch literal 44570 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 J3j(k8{~tYXAK(B0 literal 0 HcmV?d00001 diff --git a/app/DD_PM_WINDREAM/frmChat_NewConversation.vb b/app/DD_PM_WINDREAM/frmChat_NewConversation.vb index 314b622..0d06026 100644 --- a/app/DD_PM_WINDREAM/frmChat_NewConversation.vb +++ b/app/DD_PM_WINDREAM/frmChat_NewConversation.vb @@ -14,7 +14,7 @@ InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - ChatNewConv1.Init(LOGCONFIG, CONNECTION_STRING_IDB, CURRENT_DOC_ID, USER_USERNAME, USER_LANGUAGE, oDTUsers, oDTGroups) + ChatNewConv1.Init(LOGCONFIG, CONNECTION_STRING_IDB, CURRENT_DOC_ID, USER_ID, USER_USERNAME, USER_LANGUAGE, oDTUsers, oDTGroups) AddHandler ChatNewConv1.Conversation_Created, AddressOf onConversationCreated End Sub Sub onConversationCreated() diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index 87971ef..4c9862b 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -409,6 +409,11 @@ Public Class frmMain GridView_Docs.Columns.Item("ICON").MinWidth = 24 GridView_Docs.Columns.Item("ICON").AppearanceCell.BackColor = Color.White GridView_Docs.Columns.Item("ICON").Fixed = FixedStyle.Left + GridView_Docs.Columns.Item("CONV_YN").Visible = False + GridView_Docs.Columns.Item("CONVERSATION").MaxWidth = 24 + GridView_Docs.Columns.Item("CONVERSATION").MinWidth = 24 + 'GridView_Docs.Columns.Item("CONVERSATION").AppearanceCell.BackColor = Color.White + GridView_Docs.Columns.Item("CONVERSATION").Fixed = FixedStyle.Left Try GridView_Docs.Columns("Last edited").DisplayFormat.FormatType = FormatType.DateTime GridView_Docs.Columns("Last edited").DisplayFormat.FormatString = "dd.MM.yyyy HH:MM:ss" @@ -659,6 +664,12 @@ Public Class frmMain GridView_Docs.Columns.Item("ICON").MinWidth = 24 GridView_Docs.Columns.Item("ICON").AppearanceCell.BackColor = Color.White GridView_Docs.Columns.Item("ICON").Fixed = FixedStyle.Left + + GridView_Docs.Columns.Item("CONV_YN").Visible = False + GridView_Docs.Columns.Item("CONVERSATION").MaxWidth = 24 + GridView_Docs.Columns.Item("CONVERSATION").MinWidth = 24 + 'GridView_Docs.Columns.Item("CONVERSATION").AppearanceCell.BackColor = Color.White + GridView_Docs.Columns.Item("CONVERSATION").Fixed = FixedStyle.Left ' GridView_Docs.OptionsView.ShowIndicator = False Try GridView_Docs.Columns("Last edited").DisplayFormat.FormatType = FormatType.DateTime @@ -702,7 +713,7 @@ Public Class frmMain If oViewColumn.Caption = oGridDXFieldName Then If oActGridColumn.Visible = False Then If oViewColumn.Caption <> "GUID" And oViewColumn.Caption <> "TL_STATE" And oViewColumn.Caption <> "PROFILE_ID" And oViewColumn.Caption <> "DocID" And - oViewColumn.Caption <> "FULL_FILE_PATH" And oViewColumn.Caption <> "GROUP_COLOR" And oViewColumn.Caption <> "GROUP_TEXT" Then + oViewColumn.Caption <> "FULL_FILE_PATH" And oViewColumn.Caption <> "GROUP_COLOR" And oViewColumn.Caption <> "GROUP_TEXT" And oViewColumn.Caption <> "CONV_YN" Then Console.WriteLine($"ViewColumn [{oViewColumn.Caption}] is invisible") Else oViewColumn_exists = True @@ -739,7 +750,32 @@ Public Class frmMain Return False End Try End Function + Private Function Column_inGridViewLayout(Col2bChecked As String) As Boolean + Try + Dim oGridView As New GridView + Dim oXml As String = GetXML_OverviewLayoutName() + oGridView.RestoreLayoutFromXml(oXml, OptionsLayoutBase.FullLayout) + Dim oViewColumn_exists As Boolean = False + For Each oActGridColumn As GridColumn In oGridView.Columns + Dim oGridDXFieldName = oActGridColumn.FieldName + Dim GridDXColumnEditName = oActGridColumn.ColumnEditName + Dim GridDXFieldName = oActGridColumn.FieldName + If Col2bChecked = oGridDXFieldName Then + oViewColumn_exists = True + Exit For + End If + Next + If oViewColumn_exists = False Then + LOGGER.Info($"Following ViewColumn is not existing in the view: [{Col2bChecked}]") + Return Not False + End If + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Unexpected Error in Column_inGridViewLayout: " & ex.Message) + Return Not False + End Try + End Function Private Sub NotifyIcon1_MouseDoubleClick(sender As System.Object, e As MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick BringMonitor2Front() @@ -788,7 +824,7 @@ Public Class frmMain LoadNavBar() 'bwSync.ReportProgress(60) Dim oStopWatch As New RefreshHelper.SW("Decide_Load") - Decide_Load() + Decide_Load(False) oStopWatch.Done() 'bwSync.ReportProgress(95) If USER_LANGUAGE <> "de-DE" Then @@ -816,7 +852,7 @@ Public Class frmMain Private Sub NotifyIcon1_Click(sender As System.Object, e As EventArgs) Handles NotifyIcon1.Click BringMonitor2Front() End Sub - Private Sub Decide_Load() + Private Sub Decide_Load(FormLoad As Boolean) Try If USER_EXISTS = False Then Exit Sub @@ -825,7 +861,7 @@ Public Class frmMain TimerRefresh.Enabled = False End If If GRID_LOAD_TYPE = "OVERVIEW" Then - Load_Grid_Overview() + Load_Grid_Overview(FormLoad) ElseIf GRID_LOAD_TYPE.StartsWith("PROFILE#") Then Load_single_Profile() End If @@ -1273,7 +1309,7 @@ Public Class frmMain TimerRefresh.Enabled = False frmMassValidator.ShowDialog() LoadNavBar() - Decide_Load() + Decide_Load(False) Else If USER_LANGUAGE = "de-DE" Then MsgBox("Massenabschluss konnte nicht ausgeführt werden, weil windream nicht initialisiert werden konnte!", MsgBoxStyle.Critical, "Massenabschluss") @@ -1294,10 +1330,10 @@ Public Class frmMain ' Das aktuelle Layout speichern, bevor das neue geladen wird ' und GRID_LOAD_TYPE gesetzt wird. SaveGridLayout() - Load_Grid_Overview() + Load_Grid_Overview(False) RefreshHelper.LoadViewInfo() End Sub - Sub Load_Grid_Overview() + Sub Load_Grid_Overview(FormLoad As Boolean) Dim oStopWatch As New RefreshHelper.SW("Load_Grid_Overview(LGO)") Layout_Single_Profile() GRID_LOAD_TYPE = "OVERVIEW" @@ -1386,10 +1422,10 @@ Public Class frmMain columnStateIcon.Caption = "" CURR_DT_OVERVIEW.Columns.Add(columnStateIcon) + RedDocuments = 0 YellowDocuments = 0 GreenDocuments = 0 - For Each row As DataRow In CURR_DT_OVERVIEW.Rows Dim State As Integer = row.Item("TL_STATE") Select Case State @@ -1404,6 +1440,23 @@ Public Class frmMain row.Item("ICON") = My.Resources.ampel_gruen End Select Next + If IDB_ACTIVE = True Then + ' Spalte für Conversation erstellen + Dim columnConvIcon As New DataColumn() + columnConvIcon.DataType = GetType(Image) + columnConvIcon.ColumnName = "CONVERSATION" + columnConvIcon.Caption = "" + CURR_DT_OVERVIEW.Columns.Add(columnConvIcon) + End If + For Each row As DataRow In CURR_DT_OVERVIEW.Rows + Dim oCONVYN As Boolean = row.Item("CONV_YN") + Select Case oCONVYN + Case True + ' RedDocuments += 1 + row.Item("CONVERSATION") = My.Resources.conversation + End Select + Next + bindsourcegrid.DataSource = CURR_DT_OVERVIEW GridControl_Docs.DataSource = bindsourcegrid If USER_LANGUAGE = "de-DE" Then @@ -1412,17 +1465,24 @@ Public Class frmMain ToolStripLabelViewTape.Text = "Overview" End If - + Dim oColNotPartofLayout As Boolean + oColNotPartofLayout = False 'GridControlDocRow.ForceInitialize() ' GridControl1.DataSource = CURR_DT_PROFILEGRID - If FORCE_LAYOUT_OVERVIEW = True And GridLayoutChanged() = True Then + If FormLoad = True Then + If IDB_ACTIVE = True Then + oColNotPartofLayout = Column_inGridViewLayout("CONV_YN") + End If + End If + If FORCE_LAYOUT_OVERVIEW = True And GridLayoutChanged() = True Or oColNotPartofLayout = True Then ResetLayout() SaveGridLayout() Else - RestoreLayout() + If oColNotPartofLayout = False Then + RestoreLayout() + End If End If - Try LOGGER.Debug("Now Working on Groups..") 'GridView_Docs.OptionsBehavior.AutoExpandAllGroups = False @@ -1458,6 +1518,11 @@ Public Class frmMain GridView_Docs.Columns.Item("ICON").MinWidth = 24 GridView_Docs.Columns.Item("ICON").AppearanceCell.BackColor = Color.White GridView_Docs.Columns.Item("ICON").Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left + GridView_Docs.Columns.Item("CONV_YN").Visible = False + GridView_Docs.Columns.Item("CONVERSATION").MaxWidth = 24 + GridView_Docs.Columns.Item("CONVERSATION").MinWidth = 24 + 'GridView_Docs.Columns.Item("CONVERSATION").AppearanceCell.BackColor = Color.White + GridView_Docs.Columns.Item("CONVERSATION").Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left 'GridView_Docs.OptionsView.ShowIndicator = False LOGGER.Debug(" GridView_Docs.Columns loaded...") Try @@ -1481,7 +1546,7 @@ Public Class frmMain SaveGridLayout() If GridView_Docs.Columns.Count <= 2 Then LOGGER.Info("GridView_Docs.Columns.Count <= 2 - Reset_Gridlayout will be forced...", False) - Reset_GridLayout() + Reset_GridLayout(FormLoad) End If Else NO_WORKFLOWITEMS = True @@ -1513,10 +1578,10 @@ Public Class frmMain Private Sub TabellenlayoutZurücksetzenToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles TabellenlayoutZurücksetzenToolStripMenuItem.Click - Reset_GridLayout() + Reset_GridLayout(False) End Sub - Sub Reset_GridLayout() + Sub Reset_GridLayout(FormLoad As Boolean) If GridControl_Docs.Visible = True And formopenClose = False Then RefreshHelper.SaveViewInfo() InResetlayout = True ' Layout zurücksetzen @@ -1525,7 +1590,7 @@ Public Class frmMain ' Ansicht neu laden LoadNavBar() - Decide_Load() + Decide_Load(FormLoad) InResetlayout = False RefreshHelper.LoadViewInfo() End Sub @@ -1704,7 +1769,7 @@ Public Class frmMain End Sub Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown - Decide_Load() + Decide_Load(True) Handling_DEBUG_USER() If RIBBON_COLOR_SCHEME = "BLUE" Then @@ -1842,7 +1907,7 @@ Public Class frmMain End If LoadNavBar() - Decide_Load() + Decide_Load(False) If GridControl_Docs.Visible = True And formopenClose = False Then RefreshHelper.LoadViewInfo() End Sub diff --git a/app/DD_PM_WINDREAM/frmValidator.Designer.vb b/app/DD_PM_WINDREAM/frmValidator.Designer.vb index bf7b7b4..f4fde51 100644 --- a/app/DD_PM_WINDREAM/frmValidator.Designer.vb +++ b/app/DD_PM_WINDREAM/frmValidator.Designer.vb @@ -85,7 +85,7 @@ Partial Class frmValidator Me.BbtnItm = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() Me.BarLinkContainerItem1 = New DevExpress.XtraBars.BarLinkContainerItem() - Me.bbtnitem_ConversationEnd = New DevExpress.XtraBars.BarButtonItem() + Me.btnitemConversationEnd = New DevExpress.XtraBars.BarButtonItem() Me.bbtnitem_ConversationNew = New DevExpress.XtraBars.BarButtonItem() Me.BarLinkContainerItem2 = New DevExpress.XtraBars.BarLinkContainerItem() Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem() @@ -94,6 +94,7 @@ Partial Class frmValidator Me.RepositoryItemComboBox2 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() Me.BarEditItem3 = New DevExpress.XtraBars.BarEditItem() Me.RepositoryItemComboBox3 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() + Me.btnitemConversation_reload = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPageConversations = New DevExpress.XtraBars.Ribbon.RibbonPageCategory() Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroupConv1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -104,7 +105,6 @@ Partial Class frmValidator Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem() CType(Me.SplitContainer2_DV_Chat, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer2_DV_Chat.SuspendLayout() CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -446,7 +446,7 @@ Partial Class frmValidator 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2, Me.BbtnItm, Me.BarButtonItem2, Me.BarLinkContainerItem1, Me.bbtnitem_ConversationEnd, Me.bbtnitem_ConversationNew, Me.BarLinkContainerItem2, Me.BarEditItem1, Me.BarEditItem2, Me.BarEditItem3, Me.BarButtonItem5}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2, Me.BbtnItm, Me.BarButtonItem2, Me.BarLinkContainerItem1, Me.btnitemConversationEnd, Me.bbtnitem_ConversationNew, Me.BarLinkContainerItem2, Me.BarEditItem1, Me.BarEditItem2, Me.BarEditItem3, Me.btnitemConversation_reload}) resources.ApplyResources(Me.RibbonControl1, "RibbonControl1") Me.RibbonControl1.MaxItemId = 26 Me.RibbonControl1.Name = "RibbonControl1" @@ -591,12 +591,12 @@ Partial Class frmValidator Me.BarLinkContainerItem1.Id = 18 Me.BarLinkContainerItem1.Name = "BarLinkContainerItem1" ' - 'bbtnitem_ConversationEnd + 'btnitemConversationEnd ' - resources.ApplyResources(Me.bbtnitem_ConversationEnd, "bbtnitem_ConversationEnd") - Me.bbtnitem_ConversationEnd.Id = 19 - Me.bbtnitem_ConversationEnd.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitem_ConversationEnd.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) - Me.bbtnitem_ConversationEnd.Name = "bbtnitem_ConversationEnd" + resources.ApplyResources(Me.btnitemConversationEnd, "btnitemConversationEnd") + Me.btnitemConversationEnd.Id = 19 + Me.btnitemConversationEnd.ImageOptions.SvgImage = CType(resources.GetObject("btnitemConversationEnd.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnitemConversationEnd.Name = "btnitemConversationEnd" ' 'bbtnitem_ConversationNew ' @@ -651,6 +651,13 @@ Partial Class frmValidator Me.RepositoryItemComboBox3.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("RepositoryItemComboBox3.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))}) Me.RepositoryItemComboBox3.Name = "RepositoryItemComboBox3" ' + 'btnitemConversation_reload + ' + resources.ApplyResources(Me.btnitemConversation_reload, "btnitemConversation_reload") + Me.btnitemConversation_reload.Id = 25 + Me.btnitemConversation_reload.ImageOptions.SvgImage = CType(resources.GetObject("btnitemConversation_reload.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnitemConversation_reload.Name = "btnitemConversation_reload" + ' 'RibbonPageConversations ' Me.RibbonPageConversations.Name = "RibbonPageConversations" @@ -666,14 +673,13 @@ Partial Class frmValidator 'RibbonPageGroupConv1 ' Me.RibbonPageGroupConv1.ItemLinks.Add(Me.bbtnitem_ConversationNew) - Me.RibbonPageGroupConv1.ItemLinks.Add(Me.bbtnitem_ConversationEnd) + Me.RibbonPageGroupConv1.ItemLinks.Add(Me.btnitemConversation_reload) Me.RibbonPageGroupConv1.Name = "RibbonPageGroupConv1" resources.ApplyResources(Me.RibbonPageGroupConv1, "RibbonPageGroupConv1") ' 'RibbonPageGroupConv_Change ' Me.RibbonPageGroupConv_Change.ItemLinks.Add(Me.BarEditItem3) - Me.RibbonPageGroupConv_Change.ItemLinks.Add(Me.BarButtonItem5) Me.RibbonPageGroupConv_Change.Name = "RibbonPageGroupConv_Change" resources.ApplyResources(Me.RibbonPageGroupConv_Change, "RibbonPageGroupConv_Change") ' @@ -727,12 +733,6 @@ Partial Class frmValidator Me.RibbonPage2.Name = "RibbonPage2" resources.ApplyResources(Me.RibbonPage2, "RibbonPage2") ' - 'BarButtonItem5 - ' - resources.ApplyResources(Me.BarButtonItem5, "BarButtonItem5") - Me.BarButtonItem5.Id = 25 - Me.BarButtonItem5.Name = "BarButtonItem5" - ' 'frmValidator ' Me.Appearance.Options.UseFont = True @@ -838,7 +838,7 @@ Partial Class frmValidator Friend WithEvents Panel1 As Panel Friend WithEvents SplitContainer2_DV_Chat As DevExpress.XtraEditors.SplitContainerControl Friend WithEvents BarLinkContainerItem1 As DevExpress.XtraBars.BarLinkContainerItem - Friend WithEvents bbtnitem_ConversationEnd As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnitemConversationEnd As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtnitem_ConversationNew As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageConversations As DevExpress.XtraBars.Ribbon.RibbonPageCategory Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage @@ -852,5 +852,5 @@ Partial Class frmValidator Friend WithEvents BarEditItem3 As DevExpress.XtraBars.BarEditItem Friend WithEvents RepositoryItemComboBox3 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox Friend WithEvents ChatControl1 As DigitalData.Controls.ChatControl.ChatControl - Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnitemConversation_reload As DevExpress.XtraBars.BarButtonItem End Class diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx index 44e385c..971106f 100644 --- a/app/DD_PM_WINDREAM/frmValidator.resx +++ b/app/DD_PM_WINDREAM/frmValidator.resx @@ -899,11 +899,11 @@ Konversationen - + Beende Konversation - + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl @@ -975,8 +975,29 @@ 200 - - BarButtonItem5 + + Neu laden + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAC4DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJlZnJlc2hfMV8iPg0KICAgIDxwYXRoIGQ9Ik0yNC41 + LDcuNUMyMi4zLDUuMywxOS4zLDQsMTYsNEMxMC4xLDQsNS4xLDguMyw0LjIsMTRoNC4xYzAuOS0zLjQs + NC02LDcuNy02YzIuMiwwLDQuMiwwLjksNS42LDIuNEwxOCwxNCAgIGg1LjdoNC4xSDI4VjRMMjQuNSw3 + LjV6IiBjbGFzcz0iR3JlZW4iIC8+DQogICAgPHBhdGggZD0iTTE2LjIsMjRjLTIuMiwwLTQuMi0wLjkt + NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz + LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj + bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= + 0, 0 @@ -988,7 +1009,7 @@ Beendete Konversationen - Start + Funktionen Konversationen @@ -1555,10 +1576,10 @@ DevExpress.XtraBars.BarLinkContainerItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - bbtnitem_ConversationEnd + + btnitemConversationEnd - + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -1609,6 +1630,12 @@ DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + btnitemConversation_reload + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPageConversations @@ -1663,12 +1690,6 @@ DevExpress.XtraBars.Ribbon.RibbonPage, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - BarButtonItem5 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - frmValidator diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index ff3fbfd..0e772e2 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -67,6 +67,10 @@ Public Class frmValidator Private Right_Conversation_Stop As Boolean = False Private Right_Conversation_Message As Boolean = False + Private Conversation_User_Active As Boolean = False + Private ConversationQUDT_Delete As DataTable + Private Conversation_initialized As Boolean = False + Public FormLoaded As Boolean = False Private ItemWorked As Boolean = False Private Override As Boolean = False @@ -264,44 +268,29 @@ Public Class frmValidator RibbonPageGroupConv1.Enabled = False Dim oView As DataView = New DataView(DTDYNAMIC_RIGHTS) Debug.WriteLine(oView.Count, "oView before") - oView.RowFilter = "CONF_TITLE like '%CONVERSATION_%'" + oView.RowFilter = "CONF_TITLE like '%CONVERSATION_RIGHT%'" Debug.WriteLine(oView.Count, "oView after") If oView.Count > 0 Then + LOGGER.Debug("CONVERSATION-RIGHTS EXISTING") RibbonPageConversations.Visible = True - bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - bbtnitem_ConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - - Dim oConvRightStart - For Each oRow As DataRow In DTDYNAMIC_RIGHTS.Rows - If oRow.Item("CONF_TITLE").ToString.Contains("CONVERSATION_") Then - RibbonPageGroupConv1.Enabled = True - Select Case oRow.Item("CONF_VALUE") - Case "Start|Stop" - bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - bbtnitem_ConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - Right_Conversation_Add = True - Right_Conversation_Stop = True - Case "Start" - bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - Right_Conversation_Add = True - Case "Stop" - bbtnitem_ConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - Right_Conversation_Stop = True - End Select - End If + RibbonPageGroupConv1.Enabled = True + ConversationQUDT_Delete = ClassAllgemeineFunktionen.GUI_LANGUAGE_INFO("frmValidator.Conversation_Delete") + oView = New DataView(DTDYNAMIC_RIGHTS) + oView.RowFilter = "CONF_TITLE = 'CONVERSATION_USER_ACTIVE'" + Conversation_initialized = Conversation_init() - Next + If oView.Count = 1 Then + Conversation_User_Active = True - oSQL = $"select * From VWIDB_CONVERSATION where IDB_OBJ_ID = {CURRENT_DOC_ID} and CONVERSATION_STATE = 'Started'" - DTConversations = ClassDatabase.Return_Datatable_ConStr(oSQL, CONNECTION_STRING_IDB, "ValidatorLoad-GetConversations") - If DTConversations.Rows.Count > 0 Then - 'CURRENT_DOC_ID - ChatControl1.Init(LOGCONFIG, CONNECTION_STRING_IDB, IIf(CONV_IDENTIFICATION = "Email", USER_EMAIL, USER_USERNAME), USER_USERNAME) - Conversations_load() Else - + SplitContainer2_DV_Chat.Collapsed = True + Conversation_User_Active = False + SplitContainer2_DV_Chat.Panel2.Visible = False End If + + Else + SplitContainer2_DV_Chat.Collapsed = True RibbonPageConversations.Visible = False End If @@ -344,30 +333,68 @@ Public Class frmValidator LOGGER.Info(">> error in LOADING(2) Profile-Data: " & ex.Message, True) End Try + End Sub + Sub Conversations_Init_Rights() + RibbonPageConversations.Visible = True + bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + btnitemConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + btnitemConversationEnd.Enabled = True + btnitemConversation_reload.Enabled = True + + For Each oRow As DataRow In DTDYNAMIC_RIGHTS.Rows + If oRow.Item("CONF_TITLE").ToString = "CONVERSATION_RIGHT" Then + Select Case oRow.Item("CONF_VALUE") + Case "Admin" + bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + btnitemConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + Right_Conversation_Add = True + Right_Conversation_Stop = True + Case "Start" + bbtnitem_ConversationNew.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + Right_Conversation_Add = True + Case "Stop" + btnitemConversationEnd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + Right_Conversation_Stop = True + Case "AddMessage" + Right_Conversation_Message = True + End Select + 'ElseIf oRow.Item("CONF_TITLE").ToString = "CONVERSATION_USER_ACTIVE" Then + ' Conversation_User_Active = True + End If + Next + End Sub Sub Conversations_load() - ChatControl1.GetConversations(CURRENT_DOC_ID) Dim oConversations As List(Of String) oConversations = ChatControl1.GetConversations(CURRENT_DOC_ID) - If oConversations.Count = 1 Then + RibbonPageGroupConv_Change.Visible = True + If oConversations.Count = 0 Then RibbonPageGroupConv_Change.Visible = False - Else - RepositoryItemComboBox3.Items.Clear() - + End If + RepositoryItemComboBox3.Items.Clear() + Dim oActiveConv As Boolean = False RibbonPageGroupConv_Change.Visible = True For Each oconv As String In oConversations - If Not oconv.EndsWith("Started") Then - RepositoryItemComboBox3.Items.Add(oconv) - End If + If Not oconv.Contains("Started") Then + RepositoryItemComboBox3.Items.Add(oconv) + End If + If oconv.Contains("Started") Then + oActiveConv = True + End If - Next - End If - If oConversations.Count >= 1 Then - If Right_Conversation_Stop = True Then - bbtnitem_ConversationEnd.Enabled = True + Next + If oActiveConv = False Then + btnitemConversationEnd.Enabled = False + btnitemConversation_reload.Enabled = False + SplitContainer2_DV_Chat.Collapsed = True + Else + If SplitContainer2_DV_Chat.Panel2.Visible = False Then + SplitContainer2_DV_Chat.Panel2.Visible = True + End If + SplitContainer2_DV_Chat.Collapsed = False End If - End If + End Sub Private Sub frmValidation_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try @@ -501,7 +528,7 @@ Public Class frmValidator bbtniRefreshSearches.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End If Catch ex As Exception - MsgBox(ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, ADDITIONAL_TITLE) End Try End Sub @@ -3525,7 +3552,7 @@ Public Class frmValidator Try Dim oDTRESULT_FOR_COLUMN As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"oDEPENDING_CTRL_ID: {oDEPENDING_CTRL_ID}") If Not IsNothing(oDTRESULT_FOR_COLUMN) Then - LOGGER.Debug($"Trying to create a DropDown(FI) for oDEPENDING_CTRL_ID [{oDEPENDING_CTRL_ID}]..RowCount: [{oDTRESULT_FOR_COLUMN.Rows.Count}] ") + LOGGER.Debug($"Trying to create a DropDown(FIV) for oDEPENDING_CTRL_ID [{oDEPENDING_CTRL_ID}]..RowCount: [{oDTRESULT_FOR_COLUMN.Rows.Count}] ") For Each oControl As Control In pnldesigner.Controls If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid = oDEPENDING_CTRL_ID Then ClassControlCreator.GridTables.Add(oDEPENDING_COLUMN, oDTRESULT_FOR_COLUMN) @@ -3537,12 +3564,12 @@ Public Class frmValidator End If Catch ex As Exception - LOGGER.Warn($"Unexpected error in creating dropdown(FI) for oDEPENDING_GUID {oDEPENDING_CTRL_ID} an Column {oDEPENDING_COLUMN} " & ex.Message) + LOGGER.Warn($"Unexpected error in creating dropdown(FIV) for oDEPENDING_GUID {oDEPENDING_CTRL_ID} an Column {oDEPENDING_COLUMN} " & ex.Message) End Try Next Catch ex As Exception - LOGGER.Warn($"Unexpected error in creating dropdown(FI) for Grid: " & ex.Message) + LOGGER.Warn($"Unexpected error in creating dropdown(FIV) for Grid: " & ex.Message) End Try @@ -3669,7 +3696,7 @@ Public Class frmValidator Dim oMsgType Dim oQuestion Dim oTitle - + LOGGER.Debug("## btnFinish_continue ##") Try oMsgType = oDT_ACTIONS?.Rows(0).Item("MsgType") Catch ex As Exception @@ -3679,6 +3706,7 @@ Public Class frmValidator Try oQuestion = oDT_ACTIONS?.Rows(0).Item("Question") Catch ex As Exception + LOGGER.Warn($"btnFinishContinue - No QUESTION-Column in select-Result!") oQuestion = "" End Try Try @@ -3686,7 +3714,7 @@ Public Class frmValidator Catch ex As Exception oTitle = "" End Try - + LOGGER.Debug($"Case is: [{oMsgType.ToString.ToUpper}]") Select Case oMsgType.ToString.ToUpper Case "MsgboxResult".ToUpper @@ -3715,7 +3743,7 @@ Public Class frmValidator Return True Case Else MsgBox($"No valid action provided [{oMsgType}] in btnFinishContinue - Check Your log and inform the WorkflowTeam", MsgBoxStyle.Exclamation, "") - LOGGER.Warn($"No valid action provided [{oMsgType}] in btnFinishContinue - Check Your log and inform the WorkflowTeam") + LOGGER.Warn($"No valid action provided [{oMsgType}] in btnFinishContinue!") Return False End Select Catch ex As Exception @@ -5340,15 +5368,28 @@ Public Class frmValidator Dim Filename As String = String.Format($"DevExpressValidatorGridControl_{pProfilID}-{pControlID}.xml") Return System.IO.Path.Combine(Application.UserAppDataPath(), Filename) End Function + Private Function Conversation_init() + Try + Dim oResult = ChatControl1.Init(LOGCONFIG, CONNECTION_STRING_IDB, IIf(CONV_IDENTIFICATION = "Email", USER_EMAIL, USER_USERNAME), USER_ID, USER_USERNAME, USER_LANGUAGE, ConversationQUDT_Delete, DTDYNAMIC_RIGHTS) + If oResult = True Then + Conversations_Init_Rights() + Conversations_load() + AddHandler ChatControl1.Conversation_Ended, AddressOf onConversationEnded + AddHandler ChatControl1.Conversation_UsersAdded_Success, AddressOf ConversationUsersAdded + End If + Return oResult + Catch ex As Exception + Return False + End Try + + End Function Private Sub bbtnitem_ConversationNew_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitem_ConversationNew.ItemClick Dim oDTUSER As DataTable For Each oRow As DataRow In DTDYNAMIC_RIGHTS.Rows - If oRow.Item("CONF_TITLE") = "NEW_CONVERSATION_USER_SELECT" Then Dim oSQL = oRow.Item("CONF_VALUE") oDTUSER = ClassDatabase.Return_Datatable(oSQL) - End If Next If Not IsNothing(oDTUSER) Then @@ -5357,27 +5398,31 @@ Public Class frmValidator Dim oResult = oForm.ShowDialog() If CURRENT_CONVERSATION_NEW <> 0 Then + If Not Conversation_initialized Then + Conversation_init() + End If + Conversations_Init_Rights() Conversations_load() + End If End If - End If - End Sub - Private Sub bbtnitem_ConversationEnd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitem_ConversationEnd.ItemClick - If ChatControl1.CurrentConversation <> 0 Then + Private Sub bbtnitem_ConversationEnd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnitemConversationEnd.ItemClick + If ChatControl1.CurrentConversationID <> 0 Then Dim oQuestion As DataTable = ClassAllgemeineFunktionen.GUI_LANGUAGE_INFO("frmValidator.Conversation_Delete") If Not IsNothing(oQuestion) Then If oQuestion.Rows.Count = 1 Then Dim result As MsgBoxResult result = MessageBox.Show(oQuestion.Rows(0).Item("STRING1").ToString, oQuestion.Rows(0).Item("STRING2").ToString, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) If result = MsgBoxResult.Yes Then - Dim oSQL = $"EXEC PRIDB_END_CONVERSATION {ChatControl1.CurrentConversation}, '{USER_USERNAME}', '{USER_LANGUAGE}'" - If ClassDatabase.Execute_non_Query(oSQL, "EXEC PRIDB_END_CONVERSATION") = True Then - bbtnitem_ConversationEnd.Enabled = False + Dim oSQL = $"EXEC PRIDB_END_CONVERSATION {ChatControl1.CurrentConversationID}, '{USER_USERNAME}', '{USER_LANGUAGE}'" + If ClassDatabase.Execute_non_Query_ConStr(oSQL, CONNECTION_STRING_IDB, "EXEC PRIDB_END_CONVERSATION") = True Then + btnitemConversationEnd.Enabled = False SplitContainer2_DV_Chat.Collapsed = True + btnitemConversationEnd.Enabled = True Else MsgBox("Unexpected error in PRIDB_END_CONVERSATION - Check Your log!", MsgBoxStyle.Exclamation) End If @@ -5393,11 +5438,37 @@ Public Class frmValidator End Sub Private Sub RepositoryItemComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RepositoryItemComboBox3.SelectedIndexChanged + Try + Dim cBox As DevExpress.XtraEditors.ComboBoxEdit = sender + Dim item = cBox.EditValue + Dim oSplit() = item.ToString.Split("|") + Dim oConvID = oSplit(0) + ChatControl1.LoadConversation(oConvID) + btnitemConversationEnd.Enabled = False + If SplitContainer2_DV_Chat.IsPanelCollapsed Then + SplitContainer2_DV_Chat.Collapsed = False + If SplitContainer2_DV_Chat.Panel2.Visible = False Then + SplitContainer2_DV_Chat.Panel2.Visible = True + End If + End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) + End Try + + End Sub - Dim cBox As DevExpress.XtraEditors.ComboBoxEdit = sender - Dim item = cBox.EditValue - Dim oSplit() = item.ToString.Split("|") - Dim oConvID = oSplit(0) - ChatControl1.LoadConversation(oConvID) + Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnitemConversation_reload.ItemClick + Conversations_Init_Rights() + Conversations_load() End Sub + Sub onConversationEnded() + Conversations_load() + btnitemConversationEnd.Enabled = False + SplitContainer2_DV_Chat.Collapsed = True + btnitemConversation_reload.Enabled = False + End Sub + Sub ConversationUsersAdded() + Conversations_load() + End Sub + End Class \ No newline at end of file