neu
This commit is contained in:
@@ -20,8 +20,11 @@ Public Class frmMessenger
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub MyDatagridview1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvChats.CellContentClick
|
||||
|
||||
Private Sub MyDatagridview1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvChats.CellContentClick, dgvChats.CellClick
|
||||
If dgvChats.Rows(e.RowIndex).Cells("ungelesen").Value <> "" Then
|
||||
Dim dgv_ChatID = If(dgvChats.SelectedRows.Count > 0, dgvChats.SelectedRows(0).Cells("chat_id").Value, -1)
|
||||
intiDGVChats(dgv_ChatID, False) ' Splate ungelesen sol sich ändern
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
@@ -77,13 +80,50 @@ Public Class frmMessenger
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub initEmojisTEST()
|
||||
FlowLayoutPanel.Controls.Clear()
|
||||
If alloweasteregg Then pic.Visible = False
|
||||
|
||||
If IO.Directory.Exists(DATENVERVER_OPTIONS.getRootDir & "\DOKUMENTE\CHAT_EMOJIS\") Then
|
||||
Dim EmojiPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "CHAT_EMOJIS\"
|
||||
If Not IO.Directory.Exists(EmojiPath) Then IO.Directory.CreateDirectory(EmojiPath)
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cProgrammeUpdate.copyProgramLIST(DATENVERVER_OPTIONS.getRootDir & "\DOKUMENTE\CHAT_EMOJIS\", EmojiPath, {}) Then
|
||||
For Each a In IO.Directory.GetFiles(EmojiPath) '.OrderBy(Function(f) f)
|
||||
If alloweasteregg Or Not a.Contains("easteregg") Then
|
||||
If IO.File.Exists(a) And a.Contains(".png") And a.Contains("emoji_") Then
|
||||
|
||||
Dim p As New PictureBox
|
||||
p.Size = New Size(40, 40)
|
||||
p.BackgroundImage = Image.FromFile(a)
|
||||
p.BackgroundImageLayout = ImageLayout.Zoom
|
||||
p.Cursor = Cursors.Hand
|
||||
AddHandler p.Click, Sub()
|
||||
If Not CHAT.chat_aktiv Then MsgBox("Chat inaktiv!") : Exit Sub
|
||||
If CHAT IsNot Nothing Then
|
||||
saveEmoji(a)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
FlowLayoutPanel.Controls.Add(p)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub intiDGVChats(Optional dgv_ChatID = -1, Optional reloadChat = True)
|
||||
With dgvChats
|
||||
|
||||
Dim loadedTmp = loaded
|
||||
If Not reloadChat Then
|
||||
loaded = False
|
||||
End If
|
||||
.DataSource = SQL.loadDgvBySql("SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
|
||||
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen
|
||||
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
|
||||
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "' ORDER BY chat_id DESC", "ADMIN")
|
||||
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "' ORDER BY chat_lastMsg DESC", "ADMIN")
|
||||
|
||||
If .Columns.Count = 0 Then Exit Sub
|
||||
|
||||
@@ -96,9 +136,8 @@ Public Class frmMessenger
|
||||
.Columns("ungelesen").DefaultCellStyle.Font = New Font(.Font.FontFamily, 7, FontStyle.Bold)
|
||||
|
||||
dgvChats.GetOrder()
|
||||
Dim loadedTmp = loaded
|
||||
|
||||
If Not reloadChat Then
|
||||
loaded = False
|
||||
dgvChats.ClearSelection()
|
||||
If dgv_ChatID > 0 Then
|
||||
For Each r As DataGridViewRow In .Rows
|
||||
@@ -158,21 +197,53 @@ Public Class frmMessenger
|
||||
|
||||
Sub RELOAD_CHAT()
|
||||
Try
|
||||
lblChatName.Text = "-"
|
||||
' Dim scrollMax = (MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum)
|
||||
MyFlowLayoutPanel1.Controls.Clear()
|
||||
If CHAT IsNot Nothing Then
|
||||
CHAT.READ_ALL_MESSAGES()
|
||||
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
|
||||
For Each MSG In CHAT.CHAT_MESSAGES
|
||||
|
||||
|
||||
MyFlowLayoutPanel1.Controls.Add(getControlFromMSG(MSG))
|
||||
|
||||
Next
|
||||
' MyFlowLayoutPanel1.VerticalScroll.()
|
||||
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
|
||||
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
|
||||
|
||||
' If scrollMax Then
|
||||
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
|
||||
|
||||
If CHAT.chat_name <> "" Then
|
||||
lblChatName.Text = CHAT.chat_name
|
||||
Button5.BackgroundImage = My.Resources.people
|
||||
Else
|
||||
lblChatName.Text = SQL.getValueTxtBySql("SELECT isnull(mit_vname,'') + ' ' + isnull(mit_nname,'') FROM [tblMessenger_ChatMembers] inner join tblMitarbeiter on mit_id=chatMb_maId where chatMb_chatId ='" & CHAT.chat_id & "' and chatMb_maId<>'" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "'", "ADMIN")
|
||||
Button5.BackgroundImage = My.Resources.person
|
||||
End If
|
||||
End If
|
||||
checkOnlineOffline()
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
Sub checkOnlineOffline()
|
||||
Try
|
||||
|
||||
If CHAT Is Nothing OrElse CHAT.chat_name <> "" Then
|
||||
lblOnlineOffline.Visible = False
|
||||
Else
|
||||
lblOnlineOffline.Visible = True
|
||||
Dim cntOnline = SQL.getValueTxtBySql("SELECT count(*) FROM [tblMessenger_ChatMembers] inner join tblSessions ON sess_maId=[chatMb_maId] and sess_lastRm > dateadd(MINUTE,-2, getdate()) where chatMb_chatId ='" & CHAT.chat_id & "' and chatMb_maId<>'" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "'", "ADMIN")
|
||||
If cntOnline > 0 Then
|
||||
lblOnlineOffline.Text = "ONLINE"
|
||||
lblOnlineOffline.BackColor = Color.MediumSeaGreen
|
||||
Else
|
||||
lblOnlineOffline.Text = "OFFLINE"
|
||||
lblOnlineOffline.BackColor = Color.Red
|
||||
End If
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
@@ -224,6 +295,7 @@ Public Class frmMessenger
|
||||
CHAT.LOAD_MESSAGES(topMessages)
|
||||
|
||||
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
|
||||
Dim newMsg As Boolean = False
|
||||
For Each MSG In CHAT.CHAT_MESSAGES
|
||||
Dim found As Boolean = False
|
||||
For Each I In MyFlowLayoutPanel1.Controls
|
||||
@@ -244,6 +316,7 @@ Public Class frmMessenger
|
||||
|
||||
Next
|
||||
If Not found Then
|
||||
newMsg = True
|
||||
MyFlowLayoutPanel1.Controls.Add(getControlFromMSG(MSG))
|
||||
|
||||
'Dim CHAT_ITEM As New usrCntlMessenger_ChatElement(MSG)
|
||||
@@ -255,12 +328,15 @@ Public Class frmMessenger
|
||||
CHAT.READ_ALL_MESSAGES()
|
||||
End If
|
||||
Next
|
||||
If newMsg Then
|
||||
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
|
||||
End If
|
||||
' MyFlowLayoutPanel1.VerticalScroll.()
|
||||
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
|
||||
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
|
||||
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
|
||||
' MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum --> nur, wenn neue MSG
|
||||
End If
|
||||
|
||||
checkOnlineOffline()
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
@@ -400,13 +476,37 @@ Public Class frmMessenger
|
||||
loaded = False
|
||||
REFRESH_CHAT()
|
||||
Dim dgv_ChatID = If(dgvChats.SelectedRows.Count > 0, dgvChats.SelectedRows(0).Cells("chat_id").Value, -1)
|
||||
intiDGVChats(dgv_ChatID,False)
|
||||
|
||||
|
||||
If checkNewestShit() Then ' prüft, ob neue Nachrichten gekommen sind, sont kein Refresh (stört das scrollen)
|
||||
intiDGVChats(dgv_ChatID, False)
|
||||
End If
|
||||
|
||||
loaded = True
|
||||
End Sub
|
||||
|
||||
|
||||
Function checkNewestShit() As Boolean
|
||||
Try
|
||||
|
||||
Dim Dt_New As DataTable = SQL.loadDgvBySql("SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
|
||||
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen
|
||||
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
|
||||
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "' ORDER BY chat_lastMsg DESC", "ADMIN")
|
||||
Dim Dt_Current As DataTable = dgvChats.DataSource
|
||||
|
||||
If Dt_Current.Rows.Count <> Dt_New.Rows.Count Then Return True
|
||||
|
||||
For Each r As DataRow In Dt_New.Rows
|
||||
If r("ungelesen") IsNot DBNull.Value AndAlso r("ungelesen") <> "" AndAlso CInt(r("ungelesen")) > 0 Then
|
||||
Return True
|
||||
End If
|
||||
Next
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Sub initMsg()
|
||||
Dim dgv_ChatID = If(dgvChats.SelectedRows.Count > 0, dgvChats.SelectedRows(0).Cells("chat_id").Value, -1)
|
||||
'intiDGVChats(dgv_ChatID)
|
||||
@@ -608,14 +708,6 @@ Public Class frmMessenger
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
If CHAT IsNot Nothing Then
|
||||
|
||||
Dim f As New frmMessenger_Members(CHAT)
|
||||
f.ShowDialog(Me)
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
@@ -639,7 +731,7 @@ Public Class frmMessenger
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox(" FEHLER: DaagDrop!" & ex.Message & ex.StackTrace)
|
||||
MsgBox(" FEHLER: DragDrop!" & ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
@@ -664,6 +756,20 @@ Public Class frmMessenger
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||
If CHAT Is Nothing Then Exit Sub
|
||||
|
||||
If CHAT.chat_name <> "" Then
|
||||
Dim f As New frmMessenger_Members(CHAT)
|
||||
f.ShowDialog(Me)
|
||||
Else
|
||||
Dim mit_id = SQL.getValueTxtBySql("SELECT mit_id FROM [tblMessenger_ChatMembers] inner join tblMitarbeiter on mit_id=chatMb_maId where chatMb_chatId ='" & CHAT.chat_id & "' and chatMb_maId<>'" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "'", "ADMIN")
|
||||
Dim f As New frmMitarbeitersuche(mit_id)
|
||||
f.ShowDialog(Me)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
'Private Sub rtbChatMessage_TextChanged(sender As Object, e As EventArgs) Handles rtbChatMessage.TextChanged
|
||||
' FlowLayoutPanel.Enabled = (rtbChatMessage.Text = "")
|
||||
'End Sub
|
||||
|
||||
Reference in New Issue
Block a user