* Some fixes, refresh was wrongly overridden

This commit is contained in:
Michaël Van Canneyt 2022-08-28 12:12:02 +02:00
parent 1664ac4fc4
commit 3e371f14c0

View File

@ -85,13 +85,13 @@ Type
Function GetTemplateHTML: String; override; Function GetTemplateHTML: String; override;
Procedure RefreshReferences; override; Procedure RefreshReferences; override;
procedure Loaded; override; procedure Loaded; override;
Function HTMLTag : String; override;
Public Public
Constructor Create(aOwner : TComponent); override; Constructor Create(aOwner : TComponent); override;
Destructor Destroy; override; Destructor Destroy; override;
procedure GetValues(aList: TStrings); procedure GetValues(aList: TStrings);
Procedure Show; Procedure Show;
Procedure Hide; Procedure Hide;
Function HTMLTag : String; override;
Property Showing : Boolean Read FShowing; Property Showing : Boolean Read FShowing;
// Id of the modal toplevel element. If not set, the first child is used. // Id of the modal toplevel element. If not set, the first child is used.
Published Published
@ -128,6 +128,8 @@ Type
// Single toast message // Single toast message
{ TBaseBulmaToastWidget }
TBaseBulmaToastWidget = Class(TCustomWebWidget) TBaseBulmaToastWidget = Class(TCustomWebWidget)
private private
FAnimate: Boolean; FAnimate: Boolean;
@ -154,11 +156,12 @@ Type
FElement : TJSHTMLElement; FElement : TJSHTMLElement;
function BodyHTML: String; virtual; function BodyHTML: String; virtual;
function HeaderHTML: String; virtual; function HeaderHTML: String; virtual;
Function DoRenderHTML(aParent, aElement: TJSHTMLElement): TJSHTMLElement;
Public Public
Class Function DefaultParentElement : TJSHTMLElement; override;
Constructor Create(aOwner : TComponent); override; Constructor Create(aOwner : TComponent); override;
Procedure Refresh; Function DoRenderHTML(aParent, aElement: TJSHTMLElement): TJSHTMLElement; override;
procedure Hide; procedure Hide;
function HtmlTag : String; override;
Protected Protected
Property Header : String Read FHeader Write SetHeader; Property Header : String Read FHeader Write SetHeader;
Property Body : String Read FBody Write SetBody; Property Body : String Read FBody Write SetBody;
@ -721,6 +724,15 @@ begin
Result:=Result+'</p>' Result:=Result+'</p>'
end; end;
class function TBaseBulmaToastWidget.DefaultParentElement : TJSHTMLElement;
begin
Result:=Nil;
if Toasts.ParentID<>'' then
Result:=TJSHTMLElement(Document.getElementById(Toasts.ParentID))
else
Result:=TJSHTMLElement(Document.Body);
end;
function TBaseBulmaToastWidget.BodyHTML: String; function TBaseBulmaToastWidget.BodyHTML: String;
@ -735,6 +747,8 @@ function TBaseBulmaToastWidget.DoRenderHTML(aParent, aElement: TJSHTMLElement):
Var Var
S : String; S : String;
Opts : TJSObject;
aDelay : NativeInt;
Begin Begin
S:=ContextualNames[Contextual]; S:=ContextualNames[Contextual];
if S<>'' then if S<>'' then
@ -743,6 +757,20 @@ Begin
Result.ClassName:='message is-small is-light '+S; Result.ClassName:='message is-small is-light '+S;
Result.Style.CSSText:='min-width: '+IntToStr(MinWidth)+'px;'; Result.Style.CSSText:='min-width: '+IntToStr(MinWidth)+'px;';
Result.InnerHTML:={HeaderHTML+}BodyHTML; Result.InnerHTML:={HeaderHTML+}BodyHTML;
aDelay:=FHideDelay;
if Not AutoHide then // we let it display for 1 day
aDelay:=24*3600*1000;
Opts:=New([
'message', aElement,
'type', S,
'single', single,
'animate',FAnimate,
'dismissible', CloseButton ,
'position',ToastPositionNames[Position],
'duration',aDelay,
'extraClasses','is-light'
]);
TBulmaToast.toast(Opts);
end; end;
constructor TBaseBulmaToastWidget.Create(aOwner: TComponent); constructor TBaseBulmaToastWidget.Create(aOwner: TComponent);
@ -759,33 +787,11 @@ begin
end; end;
function TBaseBulmaToastWidget.HtmlTag: String;
procedure TBaseBulmaToastWidget.Refresh; begin
Var Result:='article';
S : String;
Opts : TJSObject;
aDelay : NativeInt;
Begin
S:=ContextualNames[Contextual];
if S<>'' then
S:='is-'+S;
FElement:=TToastManager.CreateElement('article');
aDelay:=FHideDelay;
if Not AutoHide then // we let it display for 1 day
aDelay:=24*3600*1000;
DoRenderHTML(Nil,FElement);
Opts:=New([
'message', FElement,
'type', S,
'single', single,
'animate',FAnimate,
'dismissible', CloseButton ,
'position',ToastPositionNames[Position],
'duration',aDelay,
'extraClasses','is-light'
]);
TBulmaToast.toast(Opts);
end; end;
end. end.