ActivityFeed 컴포넌트 — sgcHTML | eSeGeCe

ActivityFeed

TsgcHTMLComponent_ActivityFeed — Delphi, C++ Builder 및 .NET에서 상대적 타임스탬프와 out-of-band WebSocket 푸시를 갖춘 최신순 실시간 활동 피드를 렌더링합니다.

TsgcHTMLComponent_ActivityFeed

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

AddActivity(aActor, aAction, aTarget, aColor, aIcon, aActorAvatarURL)는 항목을 하나 추가하고 TsgcHTMLActivityItem을 반환합니다.

링 버퍼

MaxItems는 보관할 항목 수의 상한을 정하며, 한도에 도달하면 가장 오래된 항목이 자동으로 제거됩니다.

상대 시간

ShowRelativeTime은 클라이언트 측에서 실시간으로 유지되는 "3분 전"과 같은 형식의 타임스탬프를 렌더링합니다. 꺼져 있을 때는 TimeFormat이 대체 형식으로 사용됩니다.

실시간 푸시

GetItemFragmentHTML / GetLastItemFragmentHTMLPushFragment / BroadcastFragment에 사용할 out-of-band htmx 프래그먼트를 만들어, 새로고침 없이 새 활동이 나타나게 합니다.

빈 상태

EmptyTextItems가 비어 있을 때 표시되는 자리표시자이며, GetEmptyFragmentHTML은 이를 푸시 프래그먼트로 다시 렌더링합니다.

레이아웃

Title은 피드에 레이블을 지정하고, Compact는 행 간격을 좁히며, HTML은 피드와 범위 지정 CSS 및 스크립트를 반환합니다.

계속 살펴보기

온라인 도움말이 찱포넌트의 전체 API 참조 및 사용 가이드입니다.
모든 sgcHTML 컴포넌트80개 이상의 컴포넌트 전체 기능 매트릭스를 둘러보십시오.
무료 체험판 다운로드30일 체험판에는 60.HTML 데모 프로젝트가 포함됩니다.
가격전체 소스 코드가 포함된 Single, Team 및 Site 라이선스.

시작할 준비가 되셨습니까?

무료 체험판을 다운로드하고 Delphi, C++ Builder 및 .NET에서 웹 UI를 구축하기 시작하십시오.