protected void Page_Load(object sender, EventArgs e)
    {
        int roomID = QueryHelper.GetInteger("roomid", 0);

        ChatRoomMessages.RoomID = roomID;

        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomID);

        if (room != null)
        {
            ChatOnlineUserHelper.LogInCurrentCMSUser();
            ChatRoomUserHelper.JoinUserToRoom(room.ChatRoomID, ChatUserHelper.GetChatUserFromCMSUser(), room.ChatRoomPassword, false);
        }

        ChatRoomUsers.ChatUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatRoomUsers.EnableFiltering            = true;
        ChatRoomUsers.ShowFilterItems            = 20;
        ChatRoomUsers.EnablePaging = true;
        ChatRoomUsers.PagingItems  = 30;
        ChatRoomUsers.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatRoomUsers.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatRoomUsers.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatRoomUsers.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";

        RoomName.ChatRoomNameTransformationName = "Chat.Transformations.CMSRoomName";
        RoomName.DisplayInitialTitle            = false;

        ChatNotification.NotificationTransformation = "Chat.Transformations.CMSChatNotification";
        ChatNotification.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatNotification.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatNotification.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatNotification.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatNotification.EnableNotificationBubble       = false;

        ChatErrors.ErrorTransformationName           = "Chat.Transformations.CMSChatError";
        ChatErrors.ShowDeleteAllBtn                  = true;
        ChatErrors.ButtonDeleteAllTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";

        ChatRoomMessages.ChatMessageTransformationName = "Chat.Transformations.CMSChatMessage";
        ChatRoomMessages.Count     = 100;
        ChatRoomMessages.Direction = ChatRoomMessagesDirectionEnum.Down;


        // Registration to chat webservice
        AbstractCMSPage cmsPage = this.Page as AbstractCMSPage;

        if (cmsPage != null)
        {
            ChatHelper.RegisterChatSupportAJAXProxy(cmsPage);
        }
    }
    // Init event
    void CMSModules_Chat_CMSPages_OfflineSupportForm_Init(object sender, EventArgs e)
    {
        if (!RequestHelper.IsPostBack())
        {
            int roomID = QueryHelper.GetInteger("roomid", 0);

            try
            {
                if (ChatUserHelper.CheckJoinRoomRights(roomID))
                {
                    ChatRoomUserInfo chatRoomUser = ChatRoomUserInfoProvider.GetChatRoomUser(ChatOnlineUserHelper.GetLoggedInChatUser().ChatUserID, roomID);

                    IEnumerable <MessageData> messages = ChatMessageInfoProvider.GetLatestMessages(roomID, 300, chatRoomUser.ChatRoomUserJoinTime);

                    StringBuilder sb = new StringBuilder();

                    // Iterate backwards over the messages, take only non-system messages
                    foreach (MessageData message in messages.Where(m => !m.SystemMessageType.IsSystemMessage()).Reverse())
                    {
                        sb.AppendFormat("{0} {1}: {2}", message.LastModified, message.Nickname, message.MessageText);
                        sb.NewLine();
                    }

                    messageEditElem.MessageText = sb.ToString();
                }
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("CMSModules_Chat_CMSPages_OfflineSupportForm", "GET ROOM MESSAGES", ex);
            }
        }
    }
Example #3
0
    private string BuildStartupScript()
    {
        bool       enBBCode = IsSupport || (ChatSettingsProvider.EnableBBCodeSetting && EnableBBCode);
        WebControl input    = enBBCode ? ucBBEditor.TextArea : txtMessage;

        if (enBBCode)
        {
            txtMessage.Visible = false;
        }
        else
        {
            ucBBEditor.Visible = false;
        }

        string json = JsonConvert.SerializeObject(
            new
        {
            roomID                        = RoomID,
            inputClientID                 = GetString(input),
            buttonClientID                = GetString(btnSendMessage),
            groupID                       = GroupID,
            chbWhisperClientID            = GetString(chbWhisper),
            drpRecipientClientID          = GetString(drpRecipient),
            pnlRecipientContainerClientID = GetString(pnlRecipientContainer),
            noneLabel                     = ResHelper.GetString("chat.everyone"),
            enableBBCode                  = enBBCode,
            bbCodeClientID                = GetString(ucBBEditor),
            btnCannedResponses            = GetString(btnCannedResponses),
            pnlContent                    = GetString(pnlWebpartContent),
            envelopeID                    = "#envelope_" + ClientID,
            informDialogID                = GetString(pnlChatMessageSendInfoDialog),
            btnInformDialogClose          = GetString(btnChatMessageSendInformDialogClose)
        },
            new JsonSerializerSettings {
            StringEscapeHandling = StringEscapeHandling.EscapeHtml
        }
            );
        string startupScript = String.Format("InitChatSenderWebpart({0});", json);

        // If this webpart is for support person -> generate "Canned responses"
        if ((ChatOnlineUserHelper.GetLoggedInChatUser() != null) && (IsSupport == true))
        {
            // Get canned responses from database
            IEnumerable <ChatSupportCannedResponseInfo> cannedResponses = ChatSupportCannedResponseInfoProvider.GetCannedResponses(ChatOnlineUserHelper.GetLoggedInChatUser().ChatUserID, SiteContext.CurrentSiteID);

            if (cannedResponses.Any())
            {
                plcCannedResponses.Visible = true;

                // Register necessary files
                ScriptHelper.RegisterScriptFile(Page, "~/CMSWebParts/Chat/ChatMessageSend_files/CannedResponses.js");
                CssRegistration.RegisterCssLink(Page, "~/App_Themes/Design/Chat/ChatIntelliSense.css");

                // Creates canned responses in format expected in javascript
                var cannedResponseToSerialize = from cr in cannedResponses
                                                let resolvedText = MacroResolver.Resolve(cr.ChatSupportCannedResponseText)
                                                                   select new
                {
                    label   = "#" + HTMLHelper.HTMLEncode(cr.ChatSupportCannedResponseTagName),
                    tooltip = HTMLHelper.HTMLEncode(TextHelper.LimitLength(resolvedText, mTooltipLength)),
                    value   = resolvedText
                };

                // Serialize canned responses to JS Array expected by javascript
                string cannedResponsesJSArray = "";
                try
                {
                    cannedResponsesJSArray = JsonConvert.SerializeObject(cannedResponseToSerialize, new JsonSerializerSettings {
                        StringEscapeHandling = StringEscapeHandling.EscapeHtml
                    });
                }
                catch (Exception ex)
                {
                    EventLogProvider.LogException("Chat", "JSON serialization of canned responses", ex);
                }
                startupScript += string.Format("var CannedResponses = {0};", cannedResponsesJSArray);

                startupScript += string.Format("InitCannedResponses({0}, {1});", ScriptHelper.GetString("#" + input.ClientID), ScriptHelper.GetString("#" + btnCannedResponses.ClientID));
            }
        }

        return(startupScript);
    }
Example #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int roomID = QueryHelper.GetInteger("roomid", 0);

        ChatRoomMessages.RoomID = roomID;

        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomID);

        if (room != null)
        {
            if (!room.ChatRoomEnabled)
            {
                CSSHelper.RegisterBootstrap(Page);
                CSSHelper.RegisterDesignMode(Page);
                ShowError(GetString("chat.errormessage.roomdisabled"));
                pnlChatView.Visible = false;

                return;
            }

            ChatOnlineUserHelper.LogInChatUser(ChatUserHelper.GetChatUserFromCMSUser(MembershipContext.AuthenticatedUser), false);
            ChatRoomUserHelper.JoinUserToRoom(room.ChatRoomID, ChatUserHelper.GetChatUserFromCMSUser(), room.ChatRoomPassword, false);
        }

        ChatRoomUsers.ChatUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatRoomUsers.EnableFiltering            = true;
        ChatRoomUsers.ShowFilterItems            = ChatHelper.WPShowFilterLimit;
        ChatRoomUsers.EnablePaging = true;
        ChatRoomUsers.PagingItems  = ChatHelper.WPPagingItems;
        ChatRoomUsers.GroupPagesBy = ChatHelper.WPGroupPagesBy;
        ChatRoomUsers.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatRoomUsers.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatRoomUsers.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatRoomUsers.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";

        RoomName.ChatRoomNameTransformationName = "Chat.Transformations.CMSRoomName";
        RoomName.DisplayInitialTitle            = false;

        ChatNotification.NotificationTransformation = "Chat.Transformations.CMSChatNotification";
        ChatNotification.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatNotification.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatNotification.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatNotification.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatNotification.EnableNotificationBubble       = false;

        ChatErrors.ErrorTransformationName           = "Chat.Transformations.CMSChatError";
        ChatErrors.ShowDeleteAllBtn                  = true;
        ChatErrors.ButtonDeleteAllTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";

        ChatRoomMessages.ChatMessageTransformationName = "Chat.Transformations.CMSChatMessage";
        ChatRoomMessages.Count     = 100;
        ChatRoomMessages.Direction = ChatRoomMessagesDirectionEnum.Down;


        // Registration to chat webservice
        AbstractCMSPage cmsPage = this.Page as AbstractCMSPage;

        if (cmsPage != null)
        {
            ChatHelper.RegisterChatSupportAJAXProxy(cmsPage);
        }
    }