diff --git a/Scrummer/Code/Controls/ChatControl.cs b/Scrummer/Code/Controls/ChatControl.cs
index f19b972..0cc7b86 100644
--- a/Scrummer/Code/Controls/ChatControl.cs
+++ b/Scrummer/Code/Controls/ChatControl.cs
@@ -1,10 +1,11 @@
using System;
+using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Scrummer.Code.Controls
{
- public class ChatControl : Control
+ public class ChatControl : Control, INamingContainer
{
#region Declarations
@@ -18,6 +19,7 @@ namespace Scrummer.Code.Controls
private Unit _height = new Unit(300, UnitType.Pixel);
private Panel _divChatWindow = null;
+ private Panel _divChatContainer = null;
#endregion
@@ -47,9 +49,9 @@ namespace Scrummer.Code.Controls
set
{
_width = value;
- if (_divChatWindow != null)
+ if (_divChatContainer != null)
{
- _divChatWindow.Width = value;
+ _divChatContainer.Width = value;
}
}
}
@@ -60,9 +62,9 @@ namespace Scrummer.Code.Controls
set
{
_height = value;
- if (_divChatWindow != null)
+ if (_divChatContainer != null)
{
- _divChatWindow.Height = value;
+ _divChatContainer.Height = value;
}
}
}
@@ -87,16 +89,21 @@ namespace Scrummer.Code.Controls
private void InitializeControls()
{
+ string strCfgName = string.Format("{0}_cfg", this.ClientID);
+
_divChatWindow = new Panel { ID = "divChatWindow", CssClass = "divChatWindow" };
Controls.Add(_divChatWindow);
- _divChatWindow.Width = _width;
- _divChatWindow.Height = _height;
+
+ _divChatContainer = new Panel { ID = "divChatContainer", CssClass = "divChatContainer" };
+ _divChatWindow.Controls.Add(_divChatContainer);
+ _divChatContainer.Width = _width;
+ _divChatContainer.Height = _height;
var divChat = new Panel { ID = "divChat", CssClass = "divChat" };
- _divChatWindow.Controls.Add(divChat);
+ _divChatContainer.Controls.Add(divChat);
var divChatControls = new Panel { ID = "divChatControls", CssClass = "divChatControls" };
- _divChatWindow.Controls.Add(divChatControls);
+ _divChatContainer.Controls.Add(divChatControls);
var hidUserName = new HiddenField { ID = "hidUserName", Value = _userName };
divChatControls.Controls.Add(hidUserName);
@@ -113,13 +120,29 @@ namespace Scrummer.Code.Controls
var btnSend = new Button { ID = "btnSend", Text = "Send", CssClass = "chatButton" };
divChatControls.Controls.Add(btnSend);
- btnSend.Attributes.Add("onclick", String.Format("SendChat('{0}', '{1}', {2}, '{3}'); return false;",
- _serviceUrl, txtText.ClientID, _idBoard, hidUserName.ClientID));
+ btnSend.Attributes.Add("onclick", String.Format("SendChat({0}); return false;", strCfgName));
- LiteralControl litScript = new LiteralControl();
- litScript.Text = String.Format("",
- _serviceUrl, divChat.ClientID, _idBoard, hidIDMessage.ClientID, hidUserName.ClientID, hidLastUser.ClientID);
- Controls.Add(litScript);
+ StringBuilder sbCfg = new StringBuilder();
+ sbCfg.AppendFormat("\n");
+ LiteralControl liScript = new LiteralControl(sbCfg.ToString());
+ Controls.Add(liScript);
}
#endregion
diff --git a/Scrummer/Code/Pages/FrmBoard.cs b/Scrummer/Code/Pages/FrmBoard.cs
index a8e2222..99cc0ca 100644
--- a/Scrummer/Code/Pages/FrmBoard.cs
+++ b/Scrummer/Code/Pages/FrmBoard.cs
@@ -19,6 +19,7 @@ namespace Scrummer.Code.Pages
Controls.Add(lblTest);
ChatControl chatControl = new ChatControl();
+ chatControl.ID = "ctrChat";
chatControl.IDBoard = _idBoard;
chatControl.UserName = Convert.ToString(new Random().Next());
Controls.Add(chatControl);
diff --git a/Scrummer/Scripts/10. Chat.js b/Scrummer/Scripts/10. Chat.js
index 91d84e3..d52c2df 100644
--- a/Scrummer/Scripts/10. Chat.js
+++ b/Scrummer/Scripts/10. Chat.js
@@ -1,8 +1,8 @@
-function RunChat(serviceUrl, divContainer, idBoard, hidIDMessage, hidUserName, hidLastUser) {
- divContainer = GetElement(divContainer);
- hidIDMessage = GetElement(hidIDMessage);
- hidUserName = GetElement(hidUserName);
- hidLastUser = GetElement(hidLastUser);
+function RunChat(cfg) {
+ cfg.divChat = GetElement(cfg.divChat);
+ cfg.hidIDMessage = GetElement(cfg.hidIDMessage);
+ cfg.hidUserName = GetElement(cfg.hidUserName);
+ cfg.hidLastUser = GetElement(cfg.hidLastUser);
var CreateMessageDOM = function (message, selfMessage, showUserName) {
var divMessageRow = document.createElement("DIV");
@@ -36,27 +36,27 @@
};
var RequestChatData = function () {
- var requestUrl = serviceUrl + "?idBoard=" + idBoard + "&idMessage=" + hidIDMessage.value;
+ var requestUrl = cfg.ServiceUrl + "?idBoard=" + cfg.IDBoard + "&idMessage=" + cfg.hidIDMessage.value;
var ReciveChatData = function (responseText) {
recvMsgs = JSON.parse(responseText);
if (recvMsgs) {
- var idMessage = parseInt(hidIDMessage.value);
+ var idMessage = parseInt(cfg.hidIDMessage.value);
var frag = document.createDocumentFragment();
for (var i = 0, n = recvMsgs.length; i < n; i++) {
var msg = recvMsgs[i];
if (idMessage < msg.IDMessage) {
- hidIDMessage.value = msg.IDMessage;
+ cfg.hidIDMessage.value = msg.IDMessage;
idMessage = msg.IDMessage;
var elemMessage = CreateMessageDOM(msg,
- (msg.UserName == hidUserName.value),
- (hidLastUser.value !== msg.UserName));
- hidLastUser.value = msg.UserName;
+ (msg.UserName == cfg.hidUserName.value),
+ (cfg.hidLastUser.value !== msg.UserName));
+ cfg.hidLastUser.value = msg.UserName;
frag.appendChild(elemMessage);
}
}
- divContainer.appendChild(frag);
- divContainer.scrollTop = divContainer.scrollHeight;
+ cfg.divChat.appendChild(frag);
+ cfg.divChat.scrollTop = cfg.divChat.scrollHeight;
}
// Reset pool
@@ -78,20 +78,20 @@
RequestChatData();
}
-function SendChat(serviceUrl, txtText, idBoard, hidUserName) {
- txtText = GetElement(txtText);
- hidUserName = GetElement(hidUserName);
+function SendChat(cfg) {
+ cfg.txtText = GetElement(cfg.txtText);
+ cfg.hidUserName = GetElement(cfg.hidUserName);
- if (txtText.value.trim() == "") {
+ if (cfg.txtText.value.trim() == "") {
return;
}
var data = {
- "text": txtText.value,
- "idBoard": idBoard,
- "userName": hidUserName.value
+ "text": cfg.txtText.value,
+ "idBoard": cfg.IDBoard,
+ "userName": cfg.hidUserName.value
};
- txtText.value = "";
- SendData(serviceUrl, data, null, null);
- txtText.focus();
+ cfg.txtText.value = "";
+ SendData(cfg.ServiceUrl, data, null, null);
+ cfg.txtText.focus();
}