@@ -18,6 +18,7 @@ interface
1818 TMS.TMSFNCWebPushSender,
1919 TMS.TMSFNCWebPushServer,
2020 TMS.TMSFNCWebPushDB,
21+ TMS.TMSFNCWebPushCommon,
2122 IdContext,
2223 IdCustomHTTPServer,
2324 System.JSON;
@@ -45,8 +46,8 @@ TMainForm = class(TForm)
4546 Panel2: TPanel;
4647 btnSendToSelectedUserId: TBitBtn;
4748 btnSendToAll: TBitBtn;
48- BitBtn1 : TBitBtn;
49- BitBtn2: TBitBtn ;
49+ btnDeleteUserIDSelected : TBitBtn;
50+ lbClearLog: TLabel ;
5051 procedure FormCreate (Sender: TObject);
5152 procedure TMSFNCWebPushSender1NotificationError (Sender: TObject; AResponseCode: Integer; AResponse, AEndpoint,
5253 APayload, AUserID, ABrowserID: string; var ADelete: Boolean);
@@ -60,14 +61,15 @@ TMainForm = class(TForm)
6061 procedure TMSFNCWebPushServer1UnregisterSubscription (Sender: TObject; AData: TJSONObject; var AHandled: Boolean);
6162 procedure btnSendToAllClick (Sender: TObject);
6263 procedure btnSendToSelectedUserIdClick (Sender: TObject);
63- procedure BitBtn1Click (Sender: TObject);
64- procedure BitBtn2Click (Sender: TObject);
64+ procedure btnDeleteUserIDSelectedClick (Sender: TObject);
65+ procedure lbClearLogClick (Sender: TObject);
6566 private
6667 procedure ConfScreen ;
6768 function GetPortsText : string;
6869 function GetUrlToClick : string;
6970 function GetIconURL : string;
7071 function GetUserIDSelected : string;
72+ procedure DeleteUserIdList (const AUserID: string);
7173 public
7274
7375 end ;
@@ -81,6 +83,8 @@ implementation
8183
8284procedure TMainForm.FormCreate (Sender: TObject);
8385begin
86+ SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
87+
8488 // AO NAO E OBRIGATORIO, MAS O FIREFOX E O SAFARI NAO ACEITARAO SE NAO ESTIVEREM PRESENTES
8589 TMSFNCWebPushSender1.Claims.Subject := ' mailto:admin@example.com' ;
8690
@@ -112,6 +116,11 @@ procedure TMainForm.ConfScreen;
112116 btnStop.Enabled := not btnStart.Enabled;
113117end ;
114118
119+ procedure TMainForm.lbClearLogClick (Sender: TObject);
120+ begin
121+ mmLog.Lines.Clear;
122+ end ;
123+
115124procedure TMainForm.TMSFNCWebPushSender1NotificationError (Sender: TObject; AResponseCode: Integer; AResponse, AEndpoint,
116125 APayload, AUserID, ABrowserID: string; var ADelete: Boolean);
117126begin
@@ -143,7 +152,12 @@ procedure TMainForm.TMSFNCWebPushServer1UnregisterSubscription(Sender: TObject;
143152begin
144153 var LUserID := AData.GetValue<string>(' userID' );
145154 mmLog.Lines.Add(' Unregister Subscription: ' + LUserID);
146- ListBox1.Items.Delete(ListBox1.Items.IndexOf(LUserID));
155+ Self.DeleteUserIdList(LUserID);
156+ end ;
157+
158+ procedure TMainForm.DeleteUserIdList (const AUserID: string);
159+ begin
160+ ListBox1.Items.Delete(ListBox1.Items.IndexOf(AUserID));
147161end ;
148162
149163function TMainForm.GetPortsText : string;
@@ -173,23 +187,16 @@ function TMainForm.GetUserIDSelected: string;
173187 Result := ListBox1.Items[ListBox1.ItemIndex];
174188end ;
175189
176- procedure TMainForm.BitBtn1Click (Sender: TObject);
190+ procedure TMainForm.btnDeleteUserIDSelectedClick (Sender: TObject);
191+ var
192+ LUserID: string;
193+ LSubscription: TTMSFNCWebPushSubscription;
177194begin
178- TMSFNCWebPushDB1.SetUserActiveState( Self.GetUserIDSelected, False) ;
179- end ;
195+ LUserID := Self.GetUserIDSelected;
196+ TMSFNCWebPushDB1.DeleteSubscription(LUserID) ;
180197
181- procedure TMainForm.BitBtn2Click (Sender: TObject);
182- begin
183- // if TMSFNCWebPushDB1.DataSource.DataSet.IsEmpty then
184- // Exit;
185- //
186- // ListBox1.Clear;
187- //
188- // TMSFNCWebPushDB1.DataSource.DataSet.First;
189- // while not TMSFNCWebPushDB1.DataSource.DataSet.Eof do
190- // begin
191- // ListBox1.Items.Add(TMSFNCWebPushDB1.DataSource.DataSet.FieldByName('UserID').AsString);
192- // end;
198+ if not TMSFNCWebPushDB1.TryFindSubscriptionByID(LUserID, LSubscription) then
199+ Self.DeleteUserIdList(LUserID);
193200end ;
194201
195202procedure TMainForm.btnSendToAllClick (Sender: TObject);
0 commit comments