Beispiel #1
0
        public async Task <YHtmlString> RenderAsync(MessagesEditComponent.MessageData model)
        {
            HtmlBuilder hb = new HtmlBuilder();

            string     notSeen    = YetaWFManager.HtmlAttributeEncode(this.__ResStr("seen", "This message has not been seen"));
            SkinImages skinImages = new SkinImages();
            string     notSeenUrl = YetaWFManager.HtmlAttributeEncode(await skinImages.FindIcon_PackageAsync("NotSeen.png", Package));


            hb.Append($@"
<div class='yt_messenger_messages t_display' id='{DivId}' style='display:none'>
    <div class='t_messagearea'>");

            foreach (Message msg in model.Messages)
            {
                if (msg.FromUser == Manager.UserId)
                {
                    hb.Append($@"
        <div class='t_thisuser  t_notseen' data-key='{msg.Key}'>
            <div class='t_sent'>
                <img alt='{notSeen}' title='{notSeen}' src='{notSeenUrl}'>
                {YetaWFManager.HtmlEncode(Formatting.FormatDateTime(msg.Sent))}
            </div>
            <div class='t_text'>{YetaWFManager.HtmlEncode(msg.MessageText)}</div>
        </div>");
                }
                else
                {
                    hb.Append($@"
        <div class='t_otheruser {(msg.Seen ? "t_seen" : "t_notseen")}' data-key='{msg.Key}'>
            <div class='t_sent'>{YetaWFManager.HtmlEncode(Formatting.FormatDateTime(msg.Sent))}</div>
            <div class='t_text'>{YetaWFManager.HtmlEncode(msg.MessageText)}</div>
        </div>");
                }
            }
            hb.Append($@"
        <div class='t_last' style='clear:both'></div>
    </div>
</div>
<div class='yt_messenger_messages t_display' id='{DivId}_none' style='display:none'>
    {YetaWFManager.HtmlEncode(this.__ResStr("none", "(None)"))}
</div>
<script>
    var out = document.getElementById('{DivId}');
    out.style.display = '{(model.Messages.Count == 0 ? "none": "")}';
    out.scrollTop = out.scrollHeight - out.clientHeight;
    out = document.getElementById('{DivId}_none');
    out.style.display = '{(model.Messages.Count == 0 ? "": "none")}';
    new YetaWF_Messenger.MessagesTemplate('{DivId}', '{YetaWFManager.JserEncode(model.FromUser)}', '{YetaWFManager.JserEncode(model.ToUser)}');
</script>
");
            return(hb.ToYHtmlString());
        }
Beispiel #2
0
        public async Task AddSupportAsync(YetaWFManager manager)
        {
            ScriptManager scripts    = manager.ScriptManager;
            Package       package    = AreaRegistration.CurrentPackage;
            string        area       = package.AreaName;
            SkinImages    skinImages = new SkinImages();

            scripts.AddLocalization(area, "msgOnlineTT", this.__ResStr("online", "User is online and can receive messages"));
            scripts.AddLocalization(area, "msgOfflineTT", this.__ResStr("offline", "User is offline and can't receive messages - If you send a message it will be stored and shown to the user at a later time"));
            scripts.AddLocalization(area, "msgNotSeenTT", this.__ResStr("notSeen", "This message has not been seen"));

            scripts.AddConfigOption(area, "msgOnlineIcon", await skinImages.FindIcon_PackageAsync("Online.png", package));
            scripts.AddConfigOption(area, "msgOfflineIcon", await skinImages.FindIcon_PackageAsync("Offline.png", package));
            scripts.AddConfigOption(area, "msgNotSeenIcon", await skinImages.FindIcon_PackageAsync("NotSeen.png", package));
        }