Skip to content

Commit 5f4e032

Browse files
committed
Merge branch 'develop'
2 parents a0f24b5 + 064c8a4 commit 5f4e032

23 files changed

+406
-405
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,6 @@ modules/
8282
Server/Win32/Debug/dataset.xml
8383
Server/Win32/Debug/push.ini
8484
/WebClient/TMSWeb
85+
/WebClient/Win32
86+
/WebClient/Win32
87+
Server/Bin/dataset.xml

PushNotificationsGroup.groupproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<ProjectGuid>{741820B1-2792-4089-9001-82F9EED6A43D}</ProjectGuid>
44
</PropertyGroup>
55
<ItemGroup>
6-
<Projects Include="WebClient\WebClient.dproj">
6+
<Projects Include="Server\Server.dproj">
77
<Dependencies/>
88
</Projects>
9-
<Projects Include="Server\Server.dproj">
9+
<Projects Include="WebClient\WebPushClient.dproj">
1010
<Dependencies/>
1111
</Projects>
1212
</ItemGroup>
@@ -17,15 +17,6 @@
1717
<Default.Personality/>
1818
</BorlandProject>
1919
</ProjectExtensions>
20-
<Target Name="WebClient">
21-
<MSBuild Projects="WebClient\WebClient.dproj"/>
22-
</Target>
23-
<Target Name="WebClient:Clean">
24-
<MSBuild Projects="WebClient\WebClient.dproj" Targets="Clean"/>
25-
</Target>
26-
<Target Name="WebClient:Make">
27-
<MSBuild Projects="WebClient\WebClient.dproj" Targets="Make"/>
28-
</Target>
2920
<Target Name="Server">
3021
<MSBuild Projects="Server\Server.dproj"/>
3122
</Target>
@@ -35,14 +26,23 @@
3526
<Target Name="Server:Make">
3627
<MSBuild Projects="Server\Server.dproj" Targets="Make"/>
3728
</Target>
29+
<Target Name="WebPushClient">
30+
<MSBuild Projects="WebClient\WebPushClient.dproj"/>
31+
</Target>
32+
<Target Name="WebPushClient:Clean">
33+
<MSBuild Projects="WebClient\WebPushClient.dproj" Targets="Clean"/>
34+
</Target>
35+
<Target Name="WebPushClient:Make">
36+
<MSBuild Projects="WebClient\WebPushClient.dproj" Targets="Make"/>
37+
</Target>
3838
<Target Name="Build">
39-
<CallTarget Targets="WebClient;Server"/>
39+
<CallTarget Targets="Server;WebPushClient"/>
4040
</Target>
4141
<Target Name="Clean">
42-
<CallTarget Targets="WebClient:Clean;Server:Clean"/>
42+
<CallTarget Targets="Server:Clean;WebPushClient:Clean"/>
4343
</Target>
4444
<Target Name="Make">
45-
<CallTarget Targets="WebClient:Make;Server:Make"/>
45+
<CallTarget Targets="Server:Make;WebPushClient:Make"/>
4646
</Target>
4747
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
4848
</Project>
File renamed without changes.
File renamed without changes.

Server/Bin/push.ini

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[vapid]
2+
PublicKey=BDxsa4gZnS8WiuUzazfE27TCi4YLPdgiI_aPN3zRy85xYXfVruEJ2Q9v9UGVrDzVChR8M9hduu6BiTchKP8iP4k=
3+
PrivateKey=k_qGHoBJVZ8BaQ9yitmClT4dCevWMHIVo4Bj8dXM_iU=
4+
File renamed without changes.

Server/Server.dproj

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
<Base>true</Base>
6060
</PropertyGroup>
6161
<PropertyGroup Condition="'$(Base)'!=''">
62-
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
63-
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
62+
<DCC_DcuOutput>.\Dcus</DCC_DcuOutput>
63+
<DCC_ExeOutput>.\Bin</DCC_ExeOutput>
6464
<DCC_E>false</DCC_E>
6565
<DCC_N>false</DCC_N>
6666
<DCC_S>false</DCC_S>
@@ -71,6 +71,8 @@
7171
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
7272
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
7373
<SanitizedProjectName>Server</SanitizedProjectName>
74+
<VerInfo_Locale>1046</VerInfo_Locale>
75+
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
7476
</PropertyGroup>
7577
<PropertyGroup Condition="'$(Base_Win32)'!=''">
7678
<DCC_UsePackage>vclwinx;DataSnapServer;ACBr_BPeDabpeESCPOS;ACBr_TCP;ACBr_ONE;ACBr_NFCom;fs29;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;bsfd103Rio;ACBr_OpenSSL;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;aurelius;dbxcds;vcledge;FMX_FlexCel_Components;FmxTeeUI;VCLTMSFNCChartPkgDXE15;ACBr_BoletoRL;FlexCel_Pdf;DBXFirebirdDriver;ACBr_CTeDacteFR;FMXTMSFNCChartPkgDXE15;ACBr_NFCeECFVirtual;ACBr_DCeDACERL;FireDACSqliteDriver;DbxClientDriver;soapmidas;ACBr_NF3eDANF3eESCPOS;TeeUI;ACBr_PagFor;dbexpress;ACBr_Reinf;ACBr_NFSeXDanfseFPDF;inet;ACBr_BoletoFPDF;vcltouch;FMX_FlexCel_Core;FireDACDBXDriver;ACBr_NF3eDANF3eRL;fmxdae;tmsbcl;VCL_FlexCel_Core;CustomIPTransport;FireDACMSSQLDriver;C4DDateEdit;ZCore;ACBr_NFSeX;ZParseSql;C4DWizard;ACBr_NFe;frxPDF29;ACBr_CTeDacteRL;C4DMaskEdit;IndySystem;ACBr_Diversos;ACBr_GNREGuiaRL;BossExperts;frxe29;ZipMasterR;ACBr_NFSeXDanfseRL;ACBr_SAT;ACBr_CIOT;VirtualTreesR;ACBr_TEFD;fsDB29;VDOPrint;vclFireDAC;ACBr_SPED;ACBr_CTe;ACBr_SATWS;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;DelphiAIDeveloper;ACBr_SEF2;ACBr_LCDPR;ACBr_SATExtratoFPDF;FlexCel_Render;ZComponent;bindcompdbx;rtl;FireDACMySQLDriver;ACBr_NFeDanfeFR;ACBr_DCe;VCL_FlexCel_Components;TMSFNCPushNotificationsPkgDXE15;frce;ACBr_BPe;DBXSqliteDriver;ACBr_Sintegra;DBXSybaseASEDriver;TMSWEBCorePkgDXE15;ACBr_Serial;ACBr_Comum;ACBr_MDFe;ACBr_NFeDanfeESCPOS;vclimg;DataSnapFireDAC;inetdbxpress;FireDAC;xmlrtl;dsnap;xdata;FireDACDb2Driver;DBXOracleDriver;DBXInformixDriver;ACBr_SATECFVirtual;fmxobj;bindcompvclsmp;DataSnapNativeClient;frx29;ACBr_SATExtratoFR;DatasnapConnectorsFreePascal;FMXTMSFNCUIPackPkgDXE15;frxIntIOIndy29;ACBr_NF3e;ACBr_PAF;ACBr_OpenDelivery;ACBr_NFeDanfeFPDF;ACBr_MDFeDamdfeFR;TMSFNCCorePkgDXE15;ACBr_SPEDImportar;FMXTMSFNCCorePkgDXE15;emshosting;sparkle;MSNPopUp_D104;frxDB29;FireDACCommonDriver;ACBr_ADRCST;ACBr_MTER;IndyIPClient;frxHTML29;bindcompvclwinx;ACBr_Convenio115;emsedge;bindcompfmx;inetdb;FireDACASADriver;ACBr_LFD;Tee;vclactnband;fmxFireDAC;FireDACInfxDriver;DBXMySQLDriver;fsADO29;VclSmp;ACBr_Ponto;DataSnapCommon;fmxase;DBXOdbcDriver;dbrtl;FireDACOracleDriver;Skia.Package.FMX;ACBre_Social;TeeDB;FlexCel_XlsAdapter;FireDACMSAccDriver;frxcs29;DataSnapIndy10ServerTransport;DataSnapConnectors;ACBr_ANe;ACBr_SATExtratoRL;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;ACBR_DeSTDA;PngComponentsD;ACBr_GNRE;ACBr_EDI;FireDACTDataDriver;Skia.Package.VCL;VCLTMSFNCUIPackPkgDXE15;vcldb;ACBr_Integrador;ACBr_PIXCD;FlexCel_Core;ACBr_BoletoFR;bindcomp;inetstn;IndyCore;RESTBackendComponents;ZPlain;frxIntIO29;FireDACADSDriver;RESTComponents;ACBr_NFSeXDANFSeFR;IndyIPServer;vcl;dsnapxml;adortl;dsnapcon;DataSnapClient;DataSnapProviderClient;ACBr_MDFeDamdfeRL;frxADO29;DBXDb2Driver;ACBr_Boleto;emsclientfiredac;FireDACPgDriver;FireDACDSDriver;ACBr_BlocoX;ACBrBaaS;tethering;ACBr_SATExtratoESCPOS;ZDbc;bindcompvcl;ACBr_GTIN;CloudService;DBXSybaseASADriver;ACBr_OFX;ACBr_PAFNFCe;FMXTee;ACBr_DebitoAutomatico;ACBr_NFeDanfeRL;TMSWEBCorePkgLibDXE15;DSPack_DXE2;ACBr_GNREGuiaFR;VCLTMSFNCCorePkgDXE15;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage>
@@ -103,6 +105,8 @@
103105
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
104106
<DCC_RemoteDebug>false</DCC_RemoteDebug>
105107
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
108+
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
109+
<VerInfo_Locale>1033</VerInfo_Locale>
106110
</PropertyGroup>
107111
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
108112
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
@@ -147,6 +151,10 @@
147151
<Source>
148152
<Source Name="MainSource">Server.dpr</Source>
149153
</Source>
154+
<Excluded_Packages>
155+
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
156+
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
157+
</Excluded_Packages>
150158
</Delphi.Personality>
151159
<Deployment Version="5">
152160
<DeployFile LocalName="Win32\Debug\Server.exe" Configuration="Debug" Class="ProjectOutput">

Server/Src/Main.View.dfm

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
object MainForm: TMainForm
22
Left = 0
33
Top = 0
4-
Caption = 'Push Notifications Delphi - Server'
5-
ClientHeight = 661
4+
Caption = 'Push Notifications Delphi - TMS FNC'
5+
ClientHeight = 617
66
ClientWidth = 534
77
Color = clBtnFace
88
Font.Charset = DEFAULT_CHARSET
@@ -18,7 +18,7 @@ object MainForm: TMainForm
1818
Left = 0
1919
Top = 0
2020
Width = 534
21-
Height = 661
21+
Height = 617
2222
Cursor = crHandPoint
2323
Align = alClient
2424
BevelOuter = bvNone
@@ -27,6 +27,7 @@ object MainForm: TMainForm
2727
Padding.Right = 12
2828
Padding.Bottom = 12
2929
TabOrder = 0
30+
ExplicitHeight = 661
3031
object lbTitle: TLabel
3132
AlignWithMargins = True
3233
Left = 12
@@ -39,8 +40,6 @@ object MainForm: TMainForm
3940
Margins.Bottom = 2
4041
Align = alTop
4142
Caption = 'Notification title'
42-
ExplicitLeft = 5
43-
ExplicitTop = 61
4443
ExplicitWidth = 86
4544
end
4645
object lbBody: TLabel
@@ -55,8 +54,6 @@ object MainForm: TMainForm
5554
Margins.Bottom = 2
5655
Align = alTop
5756
Caption = 'Notification body'
58-
ExplicitLeft = 8
59-
ExplicitTop = 87
6057
ExplicitWidth = 93
6158
end
6259
object edtTitle: TEdit
@@ -148,12 +145,24 @@ object MainForm: TMainForm
148145
end
149146
object GroupBox1: TGroupBox
150147
Left = 12
151-
Top = 496
148+
Top = 452
152149
Width = 510
153150
Height = 153
154151
Align = alBottom
155152
Caption = ' Log '
156153
TabOrder = 5
154+
ExplicitTop = 496
155+
object lbClearLog: TLabel
156+
Left = 464
157+
Top = 0
158+
Width = 33
159+
Height = 15
160+
Cursor = crHandPoint
161+
Hint = 'Clear Log'
162+
Caption = ' Clear '
163+
Transparent = False
164+
OnClick = lbClearLogClick
165+
end
157166
object mmLog: TMemo
158167
Left = 2
159168
Top = 17
@@ -237,7 +246,7 @@ object MainForm: TMainForm
237246
Left = 12
238247
Top = 294
239248
Width = 510
240-
Height = 136
249+
Height = 119
241250
Margins.Left = 0
242251
Margins.Top = 7
243252
Margins.Right = 0
@@ -252,60 +261,52 @@ object MainForm: TMainForm
252261
Left = 4
253262
Top = 17
254263
Width = 502
255-
Height = 86
264+
Height = 69
256265
Align = alClient
257266
Columns = 3
258267
ItemHeight = 15
259268
TabOrder = 0
260-
ExplicitLeft = 5
261-
ExplicitTop = 13
269+
ExplicitHeight = 86
262270
end
263271
object Panel2: TPanel
264272
Left = 4
265-
Top = 103
273+
Top = 86
266274
Width = 502
267275
Height = 29
268276
Align = alBottom
269277
BevelOuter = bvNone
270278
Padding.Top = 2
271279
Padding.Bottom = 2
272280
TabOrder = 1
281+
ExplicitTop = 103
273282
object btnSendToSelectedUserId: TBitBtn
274283
Left = 0
275284
Top = 2
276-
Width = 105
285+
Width = 145
277286
Height = 25
278287
Align = alLeft
279-
Caption = 'Send to selected'
288+
Caption = 'Send to UserID selected'
280289
TabOrder = 0
281290
OnClick = btnSendToSelectedUserIdClick
282291
end
283-
object BitBtn1: TBitBtn
284-
Left = 105
292+
object btnDeleteUserIDSelected: TBitBtn
293+
Left = 145
285294
Top = 2
286-
Width = 144
295+
Width = 145
287296
Height = 25
288297
Align = alLeft
289-
Caption = 'Disable send to selected'
298+
Caption = 'Delete UserID selected'
290299
TabOrder = 1
291-
OnClick = BitBtn1Click
292-
end
293-
object BitBtn2: TBitBtn
294-
Left = 249
295-
Top = 2
296-
Width = 144
297-
Height = 25
298-
Align = alLeft
299-
Caption = 'Enable send to selected'
300-
TabOrder = 2
301-
OnClick = BitBtn2Click
300+
OnClick = btnDeleteUserIDSelectedClick
301+
ExplicitLeft = 151
302+
ExplicitTop = 5
302303
end
303304
end
304305
end
305306
object btnSendToAll: TBitBtn
306307
AlignWithMargins = True
307308
Left = 12
308-
Top = 440
309+
Top = 423
309310
Width = 510
310311
Height = 25
311312
Margins.Left = 0
@@ -316,6 +317,7 @@ object MainForm: TMainForm
316317
Caption = 'Send to all'
317318
TabOrder = 10
318319
OnClick = btnSendToAllClick
320+
ExplicitTop = 440
319321
end
320322
end
321323
object TMSFNCWebPushSender1: TTMSFNCWebPushSender

Server/Src/Main.View.pas

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8284
procedure TMainForm.FormCreate(Sender: TObject);
8385
begin
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;
113117
end;
114118

119+
procedure TMainForm.lbClearLogClick(Sender: TObject);
120+
begin
121+
mmLog.Lines.Clear;
122+
end;
123+
115124
procedure TMainForm.TMSFNCWebPushSender1NotificationError(Sender: TObject; AResponseCode: Integer; AResponse, AEndpoint,
116125
APayload, AUserID, ABrowserID: string; var ADelete: Boolean);
117126
begin
@@ -143,7 +152,12 @@ procedure TMainForm.TMSFNCWebPushServer1UnregisterSubscription(Sender: TObject;
143152
begin
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));
147161
end;
148162

149163
function TMainForm.GetPortsText: string;
@@ -173,23 +187,16 @@ function TMainForm.GetUserIDSelected: string;
173187
Result := ListBox1.Items[ListBox1.ItemIndex];
174188
end;
175189

176-
procedure TMainForm.BitBtn1Click(Sender: TObject);
190+
procedure TMainForm.btnDeleteUserIDSelectedClick(Sender: TObject);
191+
var
192+
LUserID: string;
193+
LSubscription: TTMSFNCWebPushSubscription;
177194
begin
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);
193200
end;
194201

195202
procedure TMainForm.btnSendToAllClick(Sender: TObject);

WebClient/IconResHigh.png

5.37 KB
Loading

0 commit comments

Comments
 (0)