ActivityFeed
TsgcHTMLComponent_ActivityFeed — Delphi, C++ Builder 및 .NET에서 상대적 타임스탬프와 out-of-band WebSocket 푸시를 갖춘 최신순 실시간 활동 피드를 렌더링합니다.
TsgcHTMLComponent_ActivityFeed — Delphi, C++ Builder 및 .NET에서 상대적 타임스탬프와 out-of-band WebSocket 푸시를 갖춘 최신순 실시간 활동 피드를 렌더링합니다.
AddActivity로 활동을 추가하고, 최초 렌더링을 위해 HTML을 읽은 다음, WebSocket 프래그먼트로 새 항목을 실시간으로 푸시합니다.
TsgcHTMLComponent_ActivityFeed
Bootstrap 5 목록 + 범위 지정 CSS + 실시간 상대 시간 스크립트
Delphi, C++ Builder, .NET
각 항목에 대해 AddActivity를 호출하고, 초기 페이지를 위해 HTML을 읽은 다음, GetLastItemFragmentHTML로 새 항목을 WebSocket을 통한 out-of-band 프래그먼트로 푸시합니다.
uses
sgcHTML_Enums, sgcHTML_Component_ActivityFeed;
var
oFeed: TsgcHTMLComponent_ActivityFeed;
begin
oFeed := TsgcHTMLComponent_ActivityFeed.Create(nil);
try
oFeed.FeedID := 'timeline';
oFeed.Title := 'Recent Activity';
oFeed.MaxItems := 30;
oFeed.AddActivity('Ana', 'closed', 'ticket #482', hcSuccess, 'bi bi-check-circle');
oFeed.AddActivity('Marc', 'commented on', 'invoice #1190', hcPrimary);
WebModule.Response := oFeed.HTML; // feed list + scoped CSS + live relative-time script
finally
oFeed.Free;
end;
end;
// Push a new item live to connected clients (out-of-band htmx fragment):
oFeed.AddActivity('Ana', 'approved', 'purchase order #77', hcSuccess);
Engine.BroadcastFragment(oFeed.GetLastItemFragmentHTML);
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_ActivityFeed.hpp
TsgcHTMLComponent_ActivityFeed *oFeed = new TsgcHTMLComponent_ActivityFeed(NULL);
try
{
oFeed->FeedID = "timeline";
oFeed->Title = "Recent Activity";
oFeed->MaxItems = 30;
oFeed->AddActivity("Ana", "closed", "ticket #482", hcSuccess, "bi bi-check-circle");
oFeed->AddActivity("Marc", "commented on", "invoice #1190", hcPrimary);
String html = oFeed->HTML; // feed list + scoped CSS + live relative-time script
}
__finally
{
delete oFeed;
}
using esegece.sgcWebSockets;
var feed = new TsgcHTMLComponent_ActivityFeed();
feed.FeedID = "timeline";
feed.Title = "Recent Activity";
feed.MaxItems = 30;
feed.AddActivity("Ana", "closed", "ticket #482", TsgcHTMLColor.hcSuccess, "bi bi-check-circle");
feed.AddActivity("Marc", "commented on", "invoice #1190", TsgcHTMLColor.hcPrimary);
string html = feed.HTML; // feed list + scoped CSS + live relative-time script
// Push a new item live to connected clients (out-of-band htmx fragment):
feed.AddActivity("Ana", "approved", "purchase order #77", TsgcHTMLColor.hcSuccess);
engine.BroadcastFragment(feed.GetLastItemFragmentHTML());
가장 자주 사용하게 되는 멤버.
AddActivity(aActor, aAction, aTarget, aColor, aIcon, aActorAvatarURL)는 항목을 하나 추가하고 TsgcHTMLActivityItem을 반환합니다.
MaxItems는 보관할 항목 수의 상한을 정하며, 한도에 도달하면 가장 오래된 항목이 자동으로 제거됩니다.
ShowRelativeTime은 클라이언트 측에서 실시간으로 유지되는 "3분 전"과 같은 형식의 타임스탬프를 렌더링합니다. 꺼져 있을 때는 TimeFormat이 대체 형식으로 사용됩니다.
GetItemFragmentHTML / GetLastItemFragmentHTML은 PushFragment / BroadcastFragment에 사용할 out-of-band htmx 프래그먼트를 만들어, 새로고침 없이 새 활동이 나타나게 합니다.
EmptyText는 Items가 비어 있을 때 표시되는 자리표시자이며, GetEmptyFragmentHTML은 이를 푸시 프래그먼트로 다시 렌더링합니다.
Title은 피드에 레이블을 지정하고, Compact는 행 간격을 좁히며, HTML은 피드와 범위 지정 CSS 및 스크립트를 반환합니다.