Browse Source

* Allow to specify alternate start page

git-svn-id: trunk@37187 -
michael 8 years ago
parent
commit
ae8c18164d
2 changed files with 34 additions and 15 deletions
  1. 32 9
      packages/fcl-report/demos/webdemo.pp
  2. 2 6
      packages/fcl-report/demos/wmreports.pp

+ 32 - 9
packages/fcl-report/demos/webdemo.pp

@@ -3,16 +3,39 @@ program webdemo;
 {$mode objfpc}{$H+}
 {$mode objfpc}{$H+}
 
 
 uses
 uses
-  fphttpapp, regreports, wmreports;
+  fpmimetypes,sysutils, httproute, fphttpapp, regreports, wmreports, fpwebfile;
+
+Procedure RegisterModules(Const StartFile : String);
+
+begin
+  TPageReportModule.RegisterModule('Page',True);
+  TGenerateReportModule.RegisterModule('Generate',True);
+  TViewReportModule.RegisterModule('View',True);
+  TReportListModule.RegisterModule('ReportList',True);
+  if (StartFile<>'') then
+    RegisterFileLocation('Start',ExtractFilePath(StartFile));
+  HTTPRouter.RegisterRoute('/*',@ShowPage,true);
+end;
 
 
 begin
 begin
-  Application.Port:=8080;
-  Application.AllowDefaultModule:=True;
-  Application.DefaultModuleName:='Page';
-  if IsConsole then
-    Writeln('Point your browser to http://localhost:',Application.Port,'/Page  or http://localhost:',Application.Port);
-  Application.PreferModuleName:=True;
-  Application.Initialize;
-  Application.Run;
+{$ifndef windows}
+  MimeTypesFile:='/etc/mime.types';
+{$endif}
+  With Application do
+    begin
+    Port:=8080;
+    AllowDefaultModule:=True;
+    RegisterModules(GetOptionValue('s','start'));
+    DefaultModuleName:='Page';
+    if IsConsole then
+      begin
+      Writeln('Point your browser to http://localhost:',Port,'/Page  or http://localhost:',Port);
+      if HasOption('s','start') then
+        Writeln('An alternate start location is available at http://localhost:',Port,'/Start/',ExtractFileName(GetOptionValue('s','start')));
+      end;
+    PreferModuleName:=True;
+   Initialize;
+   Run;
+   end;
 end.
 end.
 
 

+ 2 - 6
packages/fcl-report/demos/wmreports.pp

@@ -62,6 +62,8 @@ Type
     Procedure HandleRequest(ARequest: TRequest; AResponse: TResponse); override;
     Procedure HandleRequest(ARequest: TRequest; AResponse: TResponse); override;
   end;
   end;
 
 
+  procedure ShowPage(ARequest : TRequest; AResponse : TResponse);
+
 implementation
 implementation
 
 
 
 
@@ -752,11 +754,5 @@ begin
 end;
 end;
 
 
 
 
-initialization
-  TPageReportModule.RegisterModule('Page',True);
-  TGenerateReportModule.RegisterModule('Generate',True);
-  TViewReportModule.RegisterModule('View',True);
-  TReportListModule.RegisterModule('ReportList',True);
-  HTTPRouter.RegisterRoute('/*',@ShowPage,true);
 end.
 end.