mirror of
https://github.com/ok2cqr/cqrlog.git
synced 2024-09-21 02:17:19 +00:00
Merge pull request #498 from OH1KH/squash_db_select
Change to Cqrlog first start
This commit is contained in:
commit
59ca0455f2
84
help/firsttime.html
Normal file
84
help/firsttime.html
Normal file
@ -0,0 +1,84 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>CQRLOG - SUBJECT HERE</title></head>
|
||||
<body>
|
||||
<table border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top"><img src="img/exc.png"></td>
|
||||
<td align="justify" bgcolor="ffffcc" valign="top"><strong>
|
||||
<font color="red">WARNING!</font></strong>
|
||||
Backup your data often! BACKUP your log directory at the end of EVERY session!
|
||||
All that you need to backup and store in a safe place is the log database directory
|
||||
located in the ~/.config/cqrlog/database folder, or you can enable the autobackup function
|
||||
in Preferences. This autobackup function creates an ADIF file with a backup of your log.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK2CQR & OK1RR</strong></div>
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<H2>Starting Cqrlog first time</H2>
|
||||
<p>First start of Cqrlog is important.
|
||||
<br>Thanks for opening the help to your web browser during this first run. Help has many answers to your future questions and you can open it again from many menus of Cqrlog.
|
||||
We hope that you at least check now the left frame to see what topics you may find from help if needed.
|
||||
</p><p> Then you have to decide where you put your logs. You have three ways to save logs and each of them has it's good and bad sides.
|
||||
<br><br><img src="img/firsts1.png" >
|
||||
|
||||
|
||||
<H4>your Linux user folder</H4>
|
||||
This is the default way. If you close <b>Select SQL for logs</b> window, without pressing <b>OK</b>, this selection is used.
|
||||
<br>Log data is saved to ~/.config/cqrlog/database folder. Access to that data is done by starting a new SQL server thread for that.
|
||||
<br>This makes full backup very easy. Just copy the ~/.config/cqrlog folder with all files and subfolders. You can also move your cqrlog to another PC that uses same version SQL engine, and has Cqrlog installed, by
|
||||
just copying ~/.config/cqrlog to another PC's user folder. How ever if username (actually user ID) there is different you have to run chown command to set the ownership of all files and folders for current username.
|
||||
|
||||
<br><br>Unfortunately using this way to save logs causes most of database connection problems with Cqrlog mostly because of modern Linux security settings.
|
||||
|
||||
</p><p>
|
||||
<h4>local machine's SQL server</h4>
|
||||
This option uses SQL server already installed to your machine during Cqrlog installation.
|
||||
<br>When using this option cqrlog tries first to create SQL user with proper privileges to use the SQL server and then set proper values to "Database connection" window.
|
||||
<br>Cqrlog will create two scripts to your home folder: <b>create_cqr_user.sh</b> and <b>backup_all_cqr.sh</b>
|
||||
<br>The first one creates database user and is normally used only once. It needs your Linux user password to run this script with sudo.
|
||||
<br>The second one allows you to make full backup of all cqrlog logs currently in database by starting this scipt in command-line terminal.
|
||||
This script needs program mysqldump and cqrlog database users username and password to access database same way as Cqrlog itself does.
|
||||
Backup creates <b>allcqrlogs.sql</b> in <b>/tmp</b> folder. You have to move this file to safe place because most Linuxes do clean up /tmp folder during startup.
|
||||
<br>It is also recommended to save <b>~/.config/cqrlog folder with allcqrlogs.sql </b>file. Script tells you how you can restore all logs back.
|
||||
<br><br>Cqrlog tries to open most common terminals <b>xterm, gnome-terminal </b>or<b> lxterminal</b> to execute <b>create_cqr_user.sh</b>. If that fails you have to run script manually from your command-line terminal.
|
||||
</p>
|
||||
<h4>external networked SQL server</h4>
|
||||
With this option you have to define values to connect SQL server by yourself. Address, port, user and passord are required to connect to external SQL server.
|
||||
<br>SQL user and it's privileges have to be created by SQL server administrator.
|
||||
<br>It can exist in your home network or in Internet. When using internet SQL servers it is most recommended to use VPN or SSH tunnel connection for security reasons.
|
||||
</p>
|
||||
<p><br>
|
||||
After any of these options is selected, <b>OK</b> button pressed, and connection to SQL database established, Cqrlog tries to create first empty Log. This can take some time, so plese be patient.
|
||||
<br>When log is ready you can open it and go to <b>NewQSO/File/Preferences</b> to set all station details and other settings affecting to Cqrlog.
|
||||
In case of local and external SQL servers there might already be a log, or logs. Then no new log is created.<br><br><b>NOTE:</b> All settings are log based. You can have other logs with different settings and station information.
|
||||
<br>Once you have got all settings ready you can export them to file. It happens at Cqrlog start in <b>Database connection</b> window with <b>Utils/Export/configuration</b>.
|
||||
<br>When a new log is created you can use <b>Utils/Import/configuration</b> from your file to get all log settings similar with this new log.
|
||||
</p><p>
|
||||
<b>NOTE:</b> If you can not get one of these options work then remove <b>~/.config/cqrlog</b> folder to get new fresh start. There is no need to reinstall Cqrlog.
|
||||
After done that start Cqrlog again to try with another of these options.<b> Removing this folder removes all local logs and settings !</b>
|
||||
|
||||
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
BIN
help/img/firsts1.png
Normal file
BIN
help/img/firsts1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
help/img/h0.png
BIN
help/img/h0.png
Binary file not shown.
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 61 KiB |
@ -13,6 +13,7 @@
|
||||
<h3><strong>Quick start</strong></h3>
|
||||
<ul>
|
||||
<li><a target="right" href="h1.html">Starting cqrlog</a></li>
|
||||
<li><a target="right" href="firsttime.html">Running first time</a></li>
|
||||
<li><a target="right" href="h1.html#ah1">Preferences</a></li>
|
||||
<li><a target="right" href="h1.html#ah2">Program</a></li>
|
||||
<li><a target="right" href="h1.html#ah3">Station</a></li>
|
||||
|
@ -18,6 +18,11 @@ and
|
||||
<i>Martin Kratoska, OK1RR
|
||||
[<a href="http://www.ok1rr.com">http://www.ok1rr.com</a>]</i>
|
||||
<br><br>
|
||||
<strong><h3>If you are impatient:</h3></strong>
|
||||
<div align="justify">
|
||||
<div>Please check at least left frame <strong>'Starting cqrlog'</strong>,<strong>'Running first time'</strong> and <strong>'Preferences'</strong>.
|
||||
<br> Thank you !
|
||||
</div>
|
||||
<strong><h3>Description:</h3></strong>
|
||||
<div align="justify">
|
||||
<div>CQRLOG is an advanced ham radio logging application based
|
||||
|
@ -105,7 +105,7 @@
|
||||
<MinVersion Major="1" Minor="2" Release="1" Valid="True"/>
|
||||
</Item10>
|
||||
</RequiredPackages>
|
||||
<Units Count="120">
|
||||
<Units Count="121">
|
||||
<Unit0>
|
||||
<Filename Value="cqrlog.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -888,6 +888,13 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit119>
|
||||
<Unit120>
|
||||
<Filename Value="fDbSqlSel.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="frmDbSqlSel"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit120>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -25,7 +25,8 @@ uses
|
||||
fNewCommentToCall, fFindCommentToCall, frExportPref, fExportPref,
|
||||
fWorkedGrids, fPropDK0WCY, fRemind, fContest, fMonWsjtx, fXfldigi,
|
||||
dMembership, dSatellite, uRigControl, uRotControl, azidis3, aziloc, fDOKStat,
|
||||
fCabrilloExport, uDbUtils, dQTHProfile, uConnectionInfo, znacmech, gline2;
|
||||
fCabrilloExport, uDbUtils, dQTHProfile, uConnectionInfo, znacmech, gline2,
|
||||
fDbSqlSel;
|
||||
var
|
||||
Splash : TfrmSplash;
|
||||
|
||||
@ -99,7 +100,6 @@ begin
|
||||
Application.CreateForm(TdmMembership, dmMembership);
|
||||
Application.CreateForm(TdmSatellite, dmSatellite);
|
||||
|
||||
|
||||
Splash.Update;
|
||||
application.ProcessMessages;
|
||||
sleep(800);
|
||||
|
@ -73,7 +73,6 @@ type
|
||||
private
|
||||
RemoteMySQL : Boolean;
|
||||
AskForDB : Boolean;
|
||||
|
||||
procedure SaveLogin;
|
||||
procedure LoadLogin;
|
||||
procedure UpdateGridFields;
|
||||
@ -91,7 +90,7 @@ var
|
||||
implementation
|
||||
{$R *.lfm}
|
||||
|
||||
uses dData, dUtils, fNewLog;
|
||||
uses dData, dUtils, fNewLog, fDbSqlSel;
|
||||
|
||||
{ TfrmDBConnect }
|
||||
|
||||
@ -523,28 +522,47 @@ var
|
||||
Connect : Boolean = True;
|
||||
begin
|
||||
tmrAutoConnect.Enabled := False;
|
||||
|
||||
if AskForDB then
|
||||
begin
|
||||
if Application.MessageBox('It seems you are trying to run this program for the first time, '+
|
||||
'are you going to save data to local machine?'#10#13'If you say Yes, '+
|
||||
'new databases will be created. This may take a while, please be patient.' ,'Question ...',
|
||||
mb_YesNo+mb_IconQuestion) = idYes then
|
||||
begin
|
||||
dmData.StartMysqldProcess;
|
||||
Sleep(3000)
|
||||
end
|
||||
else begin
|
||||
Connect := False;
|
||||
RemoteMySQL := True;
|
||||
chkSaveToLocal.Checked := False;
|
||||
chkSaveToLocalClick(nil);
|
||||
edtServer.SetFocus
|
||||
end
|
||||
if (frmDbSqlSel = nil) then Application.CreateForm(TfrmDbSqlSel, frmDbSqlSel);
|
||||
frmDbSqlSel.Show;
|
||||
|
||||
repeat //wait for user to make selection on other window
|
||||
Begin
|
||||
sleep(100);
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
until frmDbSqlSel.rdy;
|
||||
|
||||
if frmDbSqlSel.loc then
|
||||
begin
|
||||
dmData.StartMysqldProcess;
|
||||
Sleep(3000)
|
||||
end
|
||||
else
|
||||
begin
|
||||
Connect := True;
|
||||
RemoteMySQL := True;
|
||||
|
||||
edtUser.Text:=frmDbSqlSel.user;
|
||||
edtPass.Text:=frmDbSqlSel.pass;
|
||||
edtPort.Text:=frmDbSqlSel.port;
|
||||
edtServer.Text:=frmDbSqlSel.ip;
|
||||
chkAutoConn.Checked:= frmDbSqlSel.Acon;
|
||||
chkSavePass.Checked:= frmDbSqlSel.Rmbr;
|
||||
|
||||
chkSaveToLocal.Checked := False;
|
||||
chkSaveToLocalClick(nil);
|
||||
end;
|
||||
|
||||
FreeAndNil(frmDbSqlSel);
|
||||
|
||||
end;
|
||||
if (not OpenFromMenu) and Connect then
|
||||
btnConnect.Click;
|
||||
btnConnect.Click;
|
||||
if btnOpenLog.Enabled then
|
||||
btnOpenLog.SetFocus
|
||||
btnOpenLog.SetFocus
|
||||
end;
|
||||
|
||||
procedure TfrmDBConnect.OpenDefaultLog;
|
||||
|
650
src/fDbSqlSel.lfm
Normal file
650
src/fDbSqlSel.lfm
Normal file
@ -0,0 +1,650 @@
|
||||
object frmDbSqlSel: TfrmDbSqlSel
|
||||
Left = 393
|
||||
Height = 306
|
||||
Top = 141
|
||||
Width = 441
|
||||
Caption = 'Select SQL for logs'
|
||||
ClientHeight = 306
|
||||
ClientWidth = 441
|
||||
Color = clWhite
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
LCLVersion = '2.0.12.0'
|
||||
object gbLocalUser: TGroupBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = rbExternal
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 89
|
||||
Top = 176
|
||||
Width = 429
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 12
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Define Local SQL user'
|
||||
ClientHeight = 71
|
||||
ClientWidth = 427
|
||||
TabOrder = 6
|
||||
TabStop = True
|
||||
Visible = False
|
||||
object edtUserName: TEdit
|
||||
AnchorSideTop.Control = gbLocalUser
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = edtPassword
|
||||
Left = 229
|
||||
Height = 34
|
||||
Top = 18
|
||||
Width = 90
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 12
|
||||
OnExit = edtUserNameExit
|
||||
TabOrder = 2
|
||||
Text = 'cqrlog'
|
||||
end
|
||||
object edtPassword: TEdit
|
||||
AnchorSideTop.Control = gbLocalUser
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = gbLocalUser
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 331
|
||||
Height = 34
|
||||
Top = 18
|
||||
Width = 90
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
OnExit = edtPasswordExit
|
||||
TabOrder = 3
|
||||
Text = 'cqrlog'
|
||||
end
|
||||
object lblPass: TLabel
|
||||
AnchorSideLeft.Control = edtPassword
|
||||
AnchorSideBottom.Control = edtPassword
|
||||
Left = 331
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 62
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Password'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblUsername: TLabel
|
||||
AnchorSideLeft.Control = edtUserName
|
||||
AnchorSideBottom.Control = edtUserName
|
||||
Left = 229
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 67
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Username'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblIp: TLabel
|
||||
AnchorSideLeft.Control = edtIP
|
||||
AnchorSideBottom.Control = edtIP
|
||||
Left = 6
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 60
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'IP addres'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblPort: TLabel
|
||||
AnchorSideLeft.Control = edtPort
|
||||
AnchorSideBottom.Control = edtPort
|
||||
Left = 108
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 26
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Port'
|
||||
ParentColor = False
|
||||
end
|
||||
object edtPort: TEdit
|
||||
AnchorSideLeft.Control = edtIP
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbLocalUser
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 108
|
||||
Height = 34
|
||||
Top = 18
|
||||
Width = 90
|
||||
BorderSpacing.Left = 12
|
||||
MaxLength = 5
|
||||
NumbersOnly = True
|
||||
OnExit = edtPortExit
|
||||
TabOrder = 1
|
||||
Text = '3306'
|
||||
end
|
||||
object edtIP: TEdit
|
||||
AnchorSideLeft.Control = gbLocalUser
|
||||
AnchorSideTop.Control = gbLocalUser
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 18
|
||||
Width = 90
|
||||
BorderSpacing.Left = 6
|
||||
OnExit = edtIPExit
|
||||
TabOrder = 0
|
||||
Text = 'localhost'
|
||||
end
|
||||
end
|
||||
object lblQuestion: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = pnlWelcome
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 21
|
||||
Height = 34
|
||||
Top = 43
|
||||
Width = 398
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'It seems you are trying to run this program for '#10'the first time. Do you want to save your Log data to:'
|
||||
Font.Style = [fsBold]
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
end
|
||||
object rbFolder: TRadioButton
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = lblQuestion
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 24
|
||||
Height = 23
|
||||
Top = 89
|
||||
Width = 271
|
||||
BorderSpacing.Left = 24
|
||||
BorderSpacing.Top = 12
|
||||
Caption = 'your linux user folder (Cqrlog default)'
|
||||
Checked = True
|
||||
OnClick = rbFolderClick
|
||||
ParentShowHint = False
|
||||
TabOrder = 1
|
||||
TabStop = True
|
||||
end
|
||||
object rbLocal: TRadioButton
|
||||
AnchorSideLeft.Control = rbFolder
|
||||
AnchorSideTop.Control = rbFolder
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 24
|
||||
Height = 23
|
||||
Top = 115
|
||||
Width = 202
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'local machine''s SQL server'
|
||||
OnChange = rbLocalChange
|
||||
ParentShowHint = False
|
||||
TabOrder = 2
|
||||
TabStop = True
|
||||
end
|
||||
object rbExternal: TRadioButton
|
||||
AnchorSideLeft.Control = rbFolder
|
||||
AnchorSideTop.Control = rbLocal
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 24
|
||||
Height = 23
|
||||
Top = 141
|
||||
Width = 226
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'external networked SQL server'
|
||||
OnChange = rbExternalChange
|
||||
ParentShowHint = False
|
||||
TabOrder = 3
|
||||
TabStop = True
|
||||
end
|
||||
object btnOK: TButton
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 354
|
||||
Height = 25
|
||||
Hint = 'Confirm your selection'
|
||||
Top = 269
|
||||
Width = 75
|
||||
Anchors = [akRight, akBottom]
|
||||
BorderSpacing.Right = 12
|
||||
BorderSpacing.Bottom = 12
|
||||
Caption = 'OK'
|
||||
OnClick = btnOKClick
|
||||
TabOrder = 5
|
||||
end
|
||||
object pnlWelcome: TPanel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 30
|
||||
Height = 31
|
||||
Top = 6
|
||||
Width = 381
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 30
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Right = 30
|
||||
ClientHeight = 31
|
||||
ClientWidth = 381
|
||||
Color = clWhite
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
object lblWelcome: TLabel
|
||||
AnchorSideLeft.Control = pnlWelcome
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = pnlWelcome
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 52
|
||||
Height = 30
|
||||
Top = 0
|
||||
Width = 277
|
||||
Caption = 'Welcome to Cqrlog!'
|
||||
Font.Color = clOlive
|
||||
Font.Height = 25
|
||||
Font.Style = [fsBold, fsItalic]
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
end
|
||||
end
|
||||
object imLogo: TImage
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = rbFolder
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 354
|
||||
Height = 64
|
||||
Top = 89
|
||||
Width = 64
|
||||
Picture.Data = {
|
||||
1754506F727461626C654E6574776F726B47726170686963E423000089504E47
|
||||
0D0A1A0A0000000D4948445200000040000000400806000000AA6971DE00000A
|
||||
4D6943435050686F746F73686F70204943432070726F66696C65000078DA9D53
|
||||
775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A21092006184
|
||||
101240C585880A561415119C4855C482D50A489D88E2A028B867418A885A8B55
|
||||
5C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A
|
||||
003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F003
|
||||
79787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA50265700209100E022
|
||||
12E70B01905200C82E54C81400C81800B053B3640A009400006C797C422200AA
|
||||
0D00ECF4493E0500D8A993DC1700D8A21CA908008D0100992847240240BB0060
|
||||
5581522C02C0C200A0AC40222E04C0AE018059B632470280BD0500768E58900F
|
||||
4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F7085B848
|
||||
0100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB142611729106609
|
||||
E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEF
|
||||
F4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B0
|
||||
75BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C8
|
||||
3C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF00071
|
||||
9A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1
|
||||
E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32F11F96FD
|
||||
0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A
|
||||
0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE8185CA89417
|
||||
4CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644400C24C0
|
||||
3C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4C131380D
|
||||
E7E0125C81EB70170660189EC218BC86090441C8081361213A8811628ED822CE
|
||||
0817998E04226148349280A420E988145122C5C872A402A9426A915D4823F22D
|
||||
7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8A
|
||||
C6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380
|
||||
D1310E668CD9615C8C87456089581A26C71663E55835568F35631D583776151B
|
||||
C09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC23B412BA
|
||||
085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE211E219E
|
||||
255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA453A43ED2
|
||||
10699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC5
|
||||
88E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A
|
||||
9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F768
|
||||
2FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C748622819
|
||||
6B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F55582AF6
|
||||
2A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567D
|
||||
A64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD
|
||||
82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D6725603EB2C
|
||||
6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010E
|
||||
C6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABE
|
||||
DA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB
|
||||
75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F3730
|
||||
34083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D1
|
||||
49A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4
|
||||
A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61
|
||||
BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E5679
|
||||
56F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B
|
||||
6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF
|
||||
1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67
|
||||
A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3
|
||||
F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E2
|
||||
71CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45B
|
||||
E0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E
|
||||
997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD811A81B303
|
||||
6B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC017F21BF9
|
||||
6333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F9
|
||||
4CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453747174F7
|
||||
2CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8
|
||||
AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A
|
||||
54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B23FE58320
|
||||
42502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695
|
||||
F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644D6DEACCF
|
||||
D971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA
|
||||
1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78
|
||||
B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF
|
||||
45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A
|
||||
79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A
|
||||
97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4A
|
||||
B7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4A
|
||||
DE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB
|
||||
56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD45
|
||||
7DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A
|
||||
746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC2
|
||||
41E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC
|
||||
2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D
|
||||
283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF
|
||||
9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E
|
||||
70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D7
|
||||
2E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78
|
||||
AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE
|
||||
94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CF
|
||||
CA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9
|
||||
AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3
|
||||
D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F3300000006624B474400FF
|
||||
00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C18000000
|
||||
0774494D4507E00B180D0E1F23BE4C6B000019184944415478DAE59A69D02557
|
||||
79DF9FE52CBDDCED5D675F352369461AB4039230428A1196B12C8535E02AC29A
|
||||
18873521840AC4C4B84C3081220E8905C1612B3621B064CB0A06814162119201
|
||||
210909493323349A7DE69D77B9EFBDB76FF739E779F261820B2863B619598E7E
|
||||
9FBA4F777555FFEBFF2CFD9C46F805B8EBDD6BE02FBEB2D23E54395CE5872625
|
||||
106F52EA624C6FB8F101F9C9FBFFE4B9E7C36BAFFB163C96C1BF6FF13D579F0B
|
||||
AFBFE13BF0B6CB4F839A8D1781CD407CAEB566E3D10A278F0C70360A4A699302
|
||||
48451A964075C9B31E6E395D42E403A9893BDF7BEB037313300D0B30072FB8F0
|
||||
3CF8E46DDF7E6C0BF047579F016FBEE15E000078FD65A74F1BA6B6B7FC9446F0
|
||||
85FD06679683E901A2393460B334D6AC9BA9384AF5380293D4CA08A396E7501A
|
||||
89E3A4FB1DA4AFDD3769DF7EDE08D6FED92DF7EC050078C525DBE003B77CFFB1
|
||||
27C01BAF3C13DE79E3F7E08D976F77E3A45789C01506F5DCB19A3B7A85C1B911
|
||||
3FBB5FE3F0D0885A4989162A6055858E13A9A3808228431211AA9C0547A0E029
|
||||
CD753C7C84881F2690952B5BE9BA6BBE7CDF3E0080773CFF1C78D3B5773E7604
|
||||
F8C08B77E0AEC33023A22F1D047CCA91216D89A21C129402B4B0BA673E75A06F
|
||||
DE324E3AAA2265E3A832A8D17A03D1629471548EB1498C088A5C1B544602F014
|
||||
B193FBDF6C62FCC8A48B7BD6B79B6B8AD2FCD516D38C5F79E3AE7F74011800E0
|
||||
AD57ED3007E7E56C49E9950A78C920D029C72AEA1CABA88D888E088B2AC025AB
|
||||
3BF0E6A8E63714400CA3515569842DA38A3784519992260534AC80181570D4A0
|
||||
7A0E8351B4AB176BDDDA727ABE51DDBA7719765F7ECE9AA5AF3F7858FE3105A0
|
||||
575FF4248CC9AE70DE9CEBAC5949A8BE6342CA299163297A99BA75ED54AE6DA5
|
||||
D4E6F05FB7CF84F75EB026E1BA9EA48D53AC6DA72A681CA2D1CC1964726C5859
|
||||
C99261466399E72B7A2D117D569465D7BC59DD083DFD70635EB7B4503DEFE517
|
||||
6FDEA4BA170000C2B16BA1DAF35F1E5D015A538A75ACAD2459A1A05B54604A25
|
||||
D9CD9D303E63B28E3399D8AE17EAD950943645A7CD1B3C866F6E9B123963BA49
|
||||
DB574AEC790520E0DC32786B4881D031309131CE3000710DC43E014F354A78B4
|
||||
A2F6389AAB86C24F64E4D7BFF2924B77BCE2A95B377DF47F7CD664EBDF04697C
|
||||
3D1DBEEF3D000010173F737243E02567AFD631F124213E97904E614245420440
|
||||
973BA6CC215B6642B6C0C65845524971738872C4B1146D9BC05BC05103149392
|
||||
B3087544420044364A00680D271141639C719CF2A8C8B923BB30C6EE7481DCCE
|
||||
EDFA26EAFAC5B9E5DE87DEFD8E23575EF504E99DF29A948637A1E95C7DF293E0
|
||||
DB9E75814F29FE2B44FC3712250B31A1A8A088DA98C425019300398A5A2632ED
|
||||
D21113031055921A072A727048B873DE6212824641C78D289217C38804126352
|
||||
9395C54DD08C9E3E9905291DD6470612D775E5A12D5D6847D4DB5C9685237383
|
||||
AFCDAE9D1813E7DF7CC5BFBFE2D8C4CAD9F4D56F5A7DC6339F070000F5C267C1
|
||||
4F3CFB8409603EF1CAA7C20BAFB9B5FE83679DF72911ED1843971AC6892892D7
|
||||
41B351A3746808BE4929B41C7ED332E6735573B60078CFEA8B2CC3DC3B9A2922
|
||||
1C581CCBD10A09D9251125D40613666A2D710251033AC5D69A22D338D1E25449
|
||||
5221ECD82C7532363DB4A63739D9398CC26765A53BFF63D77CE31B573EEB095F
|
||||
BAFC37DF125496A1E9DF0E507F574FB803DEF1FC73E14DD77E07FEF09F9FB32E
|
||||
89BE3825FD17F323983F3AD45B6BC13D8661FBD1DA6D1E35F01B8E911921882A
|
||||
D541B08E114310F24E71752F837E15607ED008A09104844039786B94415251E6
|
||||
777B4A67777D4CA7AC300B833A85DCD9232BB2B0DA5AB3D36459A789F26D63F3
|
||||
6D93B3ED7E7F44C77C69AFDD71D6A95F6C6DDC213BCE988BA18A90EA9EF8C933
|
||||
80CCA927AE0F78C7D5E7C19B6EF836FCFE6F9FD58284BE013C7FD8C0EBE72ABE
|
||||
F8D8D8C42A112725C36C8EA708156A628410023521601DC738AE03784374CACA
|
||||
0E3C3237D07183EAB21C009D7AA3C9B96CCF644E9BBBA5C453579BA5C271DFDA
|
||||
72DE6AB59E89F7DB2C77C0F8882F3AB36C69518D07326E3909BEA735B5A239ED
|
||||
EC6DDFDDBA662F71D68DDC7B61AC8F7E10B2D997FD6A21F0C38337DD70BC4FBF
|
||||
7CE3E6C1CD3FD81538511112A9AACE21480791909092825214445116414621D6
|
||||
44040A0A0082C326C89D3F98A3D3D6743125C5438B4329DB16538C24A9318D38
|
||||
6A65A80681A63BB9A2CD58222742C8B3B2A360A0C8CB0E02A977792E64CBF5C3
|
||||
AABEDAFB4C0EED3DD0EE9870C7EC8A21C5831FD07EFF8174523E8600007EE7D2
|
||||
F3AD04BD7AB9A1578D226D5C6EB0AC127B11263686990918110514420898520D
|
||||
A119430C35C558434A09677B396D9E6DEBDD7B9660DDAA691DF4470B65ABEC9E
|
||||
B69AE3A6293B5AB56AA60F900DACA749540845776234AE47F3336BD6B4FA0BC3
|
||||
C1ECBA4E1EA543D5A89A2F27665159EE6F65FAA9BCA30FAC99AE96B3C9756341
|
||||
A36979A0E5EAE7FD727DC04FBBF0F12F7F2BCC1478C36C11FE67D7350F9726D6
|
||||
169A6831A885463D36E8305041097B39413777D82D4B2C8BB6E67947B22CD77E
|
||||
D5E8EE434BF894EDB3D8F48FC2DA559D0994AA6E1A2006A558477445DECB8A52
|
||||
7DDE322EF3A93D315974263A59D1E96579DE2E26A6275CA7D79EC98BB29D65D9
|
||||
465FB69F5987F613F71CCA564173982D052E666AD4E183303AF2BE5FAE15FE69
|
||||
DCBEFB809CBB6AEDF7C9A4FB09751D2AAEAA53324110A21004410D6021815340
|
||||
0FC84ED91845624432CA6C409460FFD165BCF0CC7518160FC2CCAA358ACD9027
|
||||
5A1964DE86B23B915B63C07ACF45271FFA56D7F7A60A9B24A376AFC88CCBD1E5
|
||||
B6E3B38E902593E5D603BA4E1D801616E89115D34D1CCDF573631792CB4FD337
|
||||
BEE6A9F0F677DD7062040000B873DF01BDFB91C3FB2E3973DD57188013F06C93
|
||||
B08C820688C830A225446B58ADB16099C19041224622D2940498490F1E5B8633
|
||||
B7ACA3BC9EE3F59B3651A80658B6BAA9D56B65653B2397B798D9F68B4E9175A7
|
||||
273262D3CA5B5DF01E8DB145E67397801D9685B3A2A4C430356E6869A19F8EF4
|
||||
8ADA834405EAC76AB9037FFC27D7FEEA21F0A3BCF4B7CE87F77FFE6F8F74BDFC
|
||||
F18ABCFEF06C363ED8E2F190A46E343521A690620C12639024008246C9E6EAF3
|
||||
16F6BA13DA2A5B1212CB37771D13E9ADC56AFE08AEDCB0C5A65417D52871DEEE
|
||||
DAA2B464F396EB4C946D766DDFEA6485712DF4197A9715602CDB562B6F596B5B
|
||||
4591CF3AE737B0CD9EB6B8943D757EB9C89B3A1919D5DC9AAE49465FC013E600
|
||||
00803B1F3C006FF9AD27C27B3EFFADF0E475B377012569926E1F36D01947B588
|
||||
48806408C913A1C9BCE356E6C859370F64763A671E593D93D9CCAA5F585A864D
|
||||
A76CC2345CC2755BB731CA08BBB31BB06C0B5ADF4EB6287CABE34AA042AD3762
|
||||
3892F5DEA06D25366CAD0141B62109B8246C15F4A2AA265CE84BC84D33EFBD82
|
||||
E93E275587AE833F7AD775BF7C15F849C67BAF85A69C80CEE4E5704E7106AE3C
|
||||
55AF1846F38648D901247B9B2B5B4B459E77DAADBC638D2D24C14A82746A9EC3
|
||||
A6588F6749EBD8CB417A2D6BE2A8321B366EB6C610AE3F75ABA20E65E5A6D59A
|
||||
C40D4DD1E16EBB72C033406406C4A26C4A154904DC16C67E2DE01786A3F1783C
|
||||
8EA36A3498A99B786F532F2E1F3A3C7EFB39DBD2FE0D9BA6C6D87A8E56F33742
|
||||
3E79E58911E087D47337619D6A78E7D7FA70F7FBDE6765A97A6904F7AAB1B833
|
||||
943261EB52BBC853ABB0A9CC314C9626AC992D9A6EDB69BD5C8BA626CB5B5981
|
||||
4499E1927B933D5C7BEA060568A437DBD6043D2D4A01326D22841AC8D4C69409
|
||||
30664A1D35540D63D26108218CAA548D86FD6ED3344746A3BE3936577DD299FA
|
||||
5BDBB684DBA6278A2494007085E6D357EACF6C847E5EFCF43375D5D44A3878EC
|
||||
10BCEEB26D9E7AAC95A6A3D6C90FAC4B2E90307A34B3D3659AEDE5CDD4441E2D
|
||||
5B20622AD73967BC3383A55A626862D969837105CF1D3A0AEB4FDF40603275D6
|
||||
8292576244E48C140C11B351CC10891029F784122CA2E30831CB1B8784655367
|
||||
9C17E99C710DDBEEBA6FBCEFB28BEA035967A2A997D38975C08FA2AA70CD8B9E
|
||||
4EFB1617AE12E4FF38487EE3A1B1750D643033D50E176C5F355C3DD3AB26263B
|
||||
9CB5B25CD2F1F25076BC57341634B1B186159996E6FBB061FB665030607DA986
|
||||
5981B384C8B5B596158D1212224394047D498D86504B351A9926D4FDC5C51155
|
||||
C3C587C675E3FB4B4B9F5E3B5D7DE9B44D7CA8B5E1D5CBC3BDFF0DDCC4D9E0DA
|
||||
97FEEA0EF831F5104175499E73D9E5FF471B59C326BDB8DBCA266726B3B4714D
|
||||
27AC9C28A06C65E0CBCC32E7A933D97636CF6D8AA04492F276CE31812009B2CB
|
||||
70EFAE7DB076EB661005143000026C9C310A16008115095411908800843CA57C
|
||||
34CEFBDE269FE505A88C5B88C44D5D5F72F058A87B5DBDD9BA8F0D7D7B126DFB
|
||||
D2541FFD28F899179D38018E8BD00555ADFFFCADCFFFB3DD7B1777F9BC7C6ED9
|
||||
EE6CE94D77D8E7A57179AF85A64CBE5DB2290AB559165B99B3404E43931A9FB1
|
||||
4506623F066083071FDE0FAB4FD908020E55150C1816554030A00A88A080441E
|
||||
8111D0AB7360347AE894E252EC7A823E84E0D72E85E6B29D7B9A875CEBE881A9
|
||||
947B1D7FB5C2ECD7F497EA037E16C383D7C1B3DFF6E9F1E4CAE9AF64EDCE874C
|
||||
56DC0E9CF5B3B255FA326FE765ABEDB3B2642A0C8227850CC964266F778DC95A
|
||||
246A955D07CAC929287B6D38F0D05E9058034840D5444D53B38AA0A400AA8031
|
||||
248B800E90D91A6BD97AF659E6B23C2F7D9E1BE2DC4C74DD36C1FCD7F7EDB5EB
|
||||
8A896C5CF71FC4139204FF3E5AAB9F07CDE046B4E596FA2FFEF4530F22BBB9BC
|
||||
6CE5B6EC4493954334AE41E7ADC9AD63E3198C4B80B661E319980C196FC7D5B2
|
||||
0174D89E98244484437BF6C1CCBA55000D132882AAC7D834681CA9A818224250
|
||||
6C8C610BE0122250E69B366191DAAD818B751E07E3B423C4E689DFB863E9E859
|
||||
679F59FDD29DE0CF83CDDA0070BA5EF57B67CD8524D7F7FB83AF2F2F2D2E55C3
|
||||
01C410383649257122B2C9590FD679464683A0CCCCD06A4F269F950AE4B4D59B
|
||||
049B59983F7814C2B88F31D4A8123149C4941A044D9C522251604422636D8626
|
||||
136B30F7CE3A624F79E178B2431B464D7E6A7F09BBE5C404DCFCB95B0100607E
|
||||
E77FFFC53AC19F590D9A4F82861A8707FFC6A4C1D09EBE3D1F3DB2A75942F693
|
||||
C665CEE5A5F832579739B5D68A8269102912504236919025C6864368D818A729
|
||||
25B4D660538F613C1A83CB18880C3231C4D0A0B51E4405090015108818401515
|
||||
92326AAAEBDA205223AA14A3A4A38BE98EBD7BEE597CC633AF9457BFF4029CDA
|
||||
FC9213EB00742F002A9EA3C3B943315FF3BB63B7EAF706975CDAF96ED636DF21
|
||||
8B03E4044CC24C84CC06B2CC1A9F59B4D6281121A01AEB7C6AB52682B15E8DF1
|
||||
C0C6437BA20B0808D5F23284F112C450638A0DA4D490A440498251150244A3AA
|
||||
8C600488BCB18EDB593DA1E805C973A79D9D2FB1DBD9BFF373D45BFF2C7DE8FB
|
||||
5F39F1210000D05BBF0642FF468C47DEC7BEC874CDDAECCB68CDEEA8149B8492
|
||||
347282C625686C9268130A226144B243501C27899190229B2CB0CD13DB4CDB13
|
||||
254802A8AB01C43004808092028A08484A28124955304934485614D0650E2CD8
|
||||
36108223B6CE5BB3CDBB62E39AADCB601061CF5E3CB149F0EFE2C9F4202C3CA4
|
||||
3CF104B1B9D6A7CE2E1FDCF599E50F57CD5882984D51DDAA52A19B2B9499D78C
|
||||
317A057180C4880886AD468544AC209288381755A5BC15B1A9049C1B03400E92
|
||||
1A54604074201208C480A4A4CC6C18926343758C59C8B3A66C9A66534AE660CE
|
||||
CDCA9DF7084755E1853F3C3902D88917020040357F8B021CA3F1E181B9E03CD9
|
||||
73D7F7EB5D21B9278538ECC5809978E0268218B40DA6844C0A8060450223221C
|
||||
1FBA820210025A655B8287118646212F2348AC01D9A3A4A4284A894855051193
|
||||
414436949C1228336BE6750D08AC1E0DA5DABFDF4F16F4A7736BCFFCFD745242
|
||||
E08738DE059AD6AA161BC2ECE6978C96FACD5FD7E3EAFAA6AE1F8CA15E884D5D
|
||||
835400690C4C5A019963487CCC302DA514EAA61E89481091A00800C6668A2657
|
||||
6280F128029100A1804A449584004292122280052044328E896CE69A56488532
|
||||
4185ECCFCD7C3A7FC0E70200C091FD0F9E7807FC5D28745F068383FF5B893B18
|
||||
FB9F6168EAE53BEEA96E018153EB1A56B1C10468463E434E1A2D6172486855C4
|
||||
000259EF150013A842686A88A122E73D080368125041204AA0AAC06C21860644
|
||||
0144C40022006680D8CF927662EE964DBFC9D63A1BDB29658FCC1F7CA0ABAAF3
|
||||
88080FDC77E7C9710000406BD5CB00C82A165B848B7278D6A9F86035ACAFAD46
|
||||
D591500F41E2424BC27C1BD2C881D6C640ED332736CF7CB4C60404C1181310B1
|
||||
90F11A2302B25397659092800A00A102112202A2AA804822002240A3C42E0350
|
||||
62EBC7B90F3D05DF4284A9A4983FB0FB363C7CE0113C6DFB3927C7013FA498BE
|
||||
1A0040012081F970BAECFC8F7EFD2DFFF9A5C9BAECE964CC99ECDC6A4BA6638C
|
||||
7564FCB22A66922057490E14C05A42554424924612A4A82498D479874D2D6033
|
||||
03220A88C7F72400091135A980477448942C53CC158A5936CDFDE351759AB3FC
|
||||
A5D3B75CA4272509FE83DF0B0F23DE76D795D4D40BFBEA51DAE54C3C2D9871C6
|
||||
E21D789FA9B116C95A22624056000A2981A69828A548CCAC402CAA099208B105
|
||||
6C6A00EB048808D8182044101112516B08A231069A8612198732AE5BC670AF69
|
||||
AA0A00E0AE7BBE0267ED78DAA323C0FCAEF7819B3A432F79CA2E3DB26FFEF0DE
|
||||
23E1DED8341754E37C8328F782FA606CDE186B959888101C917A2235CA6414C0
|
||||
8A4416397E999821C6A8488A2110382FC0E830A5A48880CC8422A844CAD65872
|
||||
66345733AEA91AB9ADD5993EA6F512017A05007D540498DCF2BBFF6F80F27559
|
||||
B9661047E3D1CEB9C5F8374D33B64DBE3C9BE5ED6E59966D83AE6D29CB883300
|
||||
B451002581082828A065643121345604D5398F755D41D38C41C440515A002454
|
||||
11456440F2ACD8242235929093CAC0FBECF0B05A30E8BBD5492D833F7D767031
|
||||
08CF6AB7C31124ED26943E114DB231280A4E555D8C439FE250635C164943AF52
|
||||
172154793D5ECE9A7175DC1F883A1E574ACC8A84508DC620E978694F2902A101
|
||||
4981D86408C489ACCD8A3CDB9D52B8BBEB3BB27FFFDDFCBD073E0FFDD1CE472F
|
||||
07FC5DB3D4FE6D9DD3AF35ABAB7B1EE90F9B9B535C827A142F945428483EF479
|
||||
59297206C425A21B596B466C14AAE1721153F4A1694441C93ACB8488CEA08A05
|
||||
5C5A5A86A2CC61341A61A7434A6C3086618A510135EE2382DBBCB338DF5FC4C9
|
||||
04B461C519DA2ED60A3FDA0254735F826274BF751C69614197E707669502AD54
|
||||
E458476BC635FB26444A292968040591109A165B720A101121309101158E31A8
|
||||
F30E091597874348512049046B2C02AA12214A6C8E89C8EDAAA9DF2AFD3D9393
|
||||
B352CC6C1C4C7457CB68B4F0E83B209FFE6700000100C2C2DE8F5647EF1E5DB7
|
||||
B008BBED48AECAB26695F7E319487ECA702E680D21107BE70621240B020911BD
|
||||
88F489A070967282084CA4ADC2C170149008A0694650981255D2988D038AB015
|
||||
0516EA201BBBCEDE323E3A540080A298787473C04F32B1EE457A6C797E213483
|
||||
43A11E7EB1AE4641D3B0E7CCB0D138ACAB61BDB038BF385C5898AFEA66FC5096
|
||||
FB5DADB2757796676311A8EB0697EA00B5AA883108DE1128200C07CB52554389
|
||||
210E42080F11A49B2D854F38676E4F64A5D54EB47BD7C3BFFA58FC840C53F401
|
||||
D87FFFCDF6DE07D2E9C6954FF6DEADB2D69DC7860A6B4C27CB73B0367FB82CDB
|
||||
07C9640791F93200CA538A456C469B4043C10C6858ED68142044C0A64950B68B
|
||||
DA5BB793887757E3C16D4D35BAD3E2C22D939D2AB4D7FE4B3D21FB022782E6D8
|
||||
F538AC024CAC7D9E7EE1C6F7AF71969E45A4EBADB181ADDD9E67D9C39DCEC46E
|
||||
76E5619B153329E9246AAA8D91CB9A68D7A14A8F74C08834610C6A88C80B8B95
|
||||
218243ED4E5B9B7175538A4BEF767977E07C313F33D31E933D4D1E1302A4C52F
|
||||
00F72E87F77EFA2668DC00CE7547332469A56835CBE8CC76BB2C9DCF45A97B3F
|
||||
A2854EAF5520F091A2E0678CC7D213D173484756807688C8B4B3101532B7DC5F
|
||||
E27DFBE6DCD6AD6BFE03B2D1BA0EF396E63FD776BBEBDBDFF33ABDF06D7BA055
|
||||
6E786C38E047B9E5B61BE1920B8F6F661E3B70933F74309170C9EDF6CC78C3E6
|
||||
1D0960644275645B5D8FDB21360BB15A3CAB3F92686C7BDADBFA3283548DA355
|
||||
C3C97DFF7BBB9F3CBB6AF20F564EDBBF44DBE54670E0F34E3339B1359DB0ADB1
|
||||
93C95F7DE98BB86126A71D4FB838A9F6A13FDF87B215A710A049314068FA082A
|
||||
BA7BCF21DBEBAD9AF43C7C86A1746C7ED90F732FAD7D3FD8DD7FF007FD67FEFA
|
||||
1517FD27A76E916DAE132BB68AAA00229D9C99E089E48A4B9FAA3B9E70713ADE
|
||||
4176A0D50166E79786836A908406D675968BB2359A9ADE80DFBE77B05B217D8D
|
||||
A1FFD713ADE57BCA5CBEF0A4CB2EFAAA23B362F59AF38F8D23406F768B1C7F16
|
||||
C13F0907FC24A3FE6E704E41C2006218631396B4B7E219F0C0CEEFF0695BCF4D
|
||||
3AFE18253D1D511791B229397228645FFDE2779E361C87B52F7AC5ABFE17E23F
|
||||
9957FD39FF5358BAEDC7CEF7DCFFB9E365353D024B073E09F5E04E0400F8E487
|
||||
AEB9E357FE47E8B188EF5EF863E71B4EBFE2B8A5793D7457BF000E1C8E7A7C52
|
||||
6D6E7DE79BFFED96B7BEF625F0B8E45D6F7ECDDAEB3FF5E18FC1E3993FFFC407
|
||||
FFF6A70E701F0F02FCEB97BFD8FFDA93CE9BBEE8FCB3767EF1D66F3C0EC3E075
|
||||
BFD3FECBEB3E76FDE33A0CAEFDC8FBEFFAFFAA0AFCC273C99999EFFDBB97BF60
|
||||
EBE35680E5A5FEB7B69DF3C48B1FB7027CEFDE7BEF5FEAF78BC7AD002D4AF785
|
||||
A5231FFCF8C73FF063EBFF173FD6EBA9961184F10000000049454E44AE426082
|
||||
}
|
||||
end
|
||||
object pnlInfo: TPanel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = rbExternal
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 30
|
||||
Height = 89
|
||||
Top = 176
|
||||
Width = 381
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 30
|
||||
BorderSpacing.Top = 12
|
||||
BorderSpacing.Right = 30
|
||||
ClientHeight = 89
|
||||
ClientWidth = 381
|
||||
Color = clWhite
|
||||
ParentColor = False
|
||||
TabOrder = 4
|
||||
Visible = False
|
||||
object lblInfo: TLabel
|
||||
AnchorSideLeft.Control = pnlInfo
|
||||
AnchorSideTop.Control = pnlInfo
|
||||
AnchorSideRight.Control = pnlInfo
|
||||
Left = 1
|
||||
Height = 34
|
||||
Top = 1
|
||||
Width = 366
|
||||
Caption = 'Cqrlog is creatng your first log, it might take some time.'#10'Please be patient!'
|
||||
Font.Color = clMaroon
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
ShowAccelChar = False
|
||||
WordWrap = True
|
||||
end
|
||||
end
|
||||
object lblError: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideBottom.Control = btnOK
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 1
|
||||
Top = 293
|
||||
Width = 1
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 6
|
||||
Font.Color = clRed
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
end
|
||||
object btnHelp: TSpeedButton
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideRight.Control = btnOK
|
||||
Left = 232
|
||||
Height = 25
|
||||
Top = 269
|
||||
Width = 116
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
Caption = '(Please read)'
|
||||
Glyph.Data = {
|
||||
F6030000424DF6030000000000003600000028000000100000000F0000000100
|
||||
200000000000C003000064000000640000000000000000000000FFFFFF00FFFF
|
||||
FF0095564AFB89463BFF8A4437FF8B4437FF8C4538FF8D4639FF8E4739FF8F48
|
||||
3AFF90493BFF914A3CFF924B3DFF985346F8FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00784641F5DBDCDCFFD4DCDCFFD4DCDCFFD4DCDCFFD3DCDCFFD3DCDCFFD3DC
|
||||
DCFFD3DCDCFFD3DCDCFFD6DCDCFFB0928B8BFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF0096574BF589463BFF8A4437FF8B4437FF8C4538FF8D4639FF8E4739FF8F48
|
||||
3AFF90493BFF914A3CFF924B3DFF9A5547F0FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00AF7467F5AD7568FFB0705EFFB27160FFB47462FFB36E5CFFB56F5DFFBB78
|
||||
66FFBD7B68FFBF7D6BFFC17F6BFFB87563F7FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B4776AF5AE7568FFB37362FFB57462FFB4705DFFDDBEB4FFE7D1CCFFBB79
|
||||
66FFBF7D69FFC17F6CFFC3816DFFBA7664F7FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00DAB2AAFAAF7668FFB97865FFBB7967FFB76F5AFFFDFAFAFFFFFFFFFFC485
|
||||
73FFC3826EFFC68470FFC88672FFBD7966E1FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00AD7062F5B87D70FFBE7D69FFC07E6BFFBF7A66FFDFBCB1FFD9B5ACFFC67F
|
||||
68FFCA8873FFCC8A75FFCE8C76FFBF7D69E2FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B17668F5BC8373FFC3826FFFC5836FFFC27A64FFFDFBFAFFFFFFFFFFC07B
|
||||
68FFCF8B73FFD18F79FFD3917BFFC37F6CE2FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B27769F5C08676FFCA8773FFC88470FFCA846EFFE7C7BCFFFFFFFFFFFBF8
|
||||
F7FFCF9888FFD69178FFD8967FFFC6846FE2FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B2796AF5C58A7BFFCC866FFFE0B8ABFFC8856FFFCF876FFFE3B7A8FFFEFB
|
||||
FAFFFFFFFFFFD19A89FFDE9A81FFCB8772E2FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B07465F5C88C7AFFDFAC9CFFFFFFFFFFF8F2F0FFD28970FFD6896DFFEBC2
|
||||
B6FFFFFFFFFFEED8D1FFE19B82FFCE8B76E2FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00DDB6AFFACB8E7BFFD58B73FFFBF4F1FFFFFFFFFFF9F5F3FFF9EAE5FFFFFF
|
||||
FFFFFFFFFFFFE8B8A4FFEAA48AFFCE8A74E7FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B27667F5D29784FFDE9B82FFDD9981FFEFCABBFFFBF1EEFFFBEFEBFFF9E9
|
||||
E3FFEDB6A2FFEAA589FFEFAC91FFCE8B75E7FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00B67A6CF5D79B88FFE5A088FFE5A288FFE6A086FFE79F84FFE8A185FFEAA4
|
||||
88FFEEAA8EFFF0AE93FFF4B297FFCE8C76E7FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00E2A289A4D0927FD7D49078DAD39079DAD5927BDAD7947CDAD8947DDADB96
|
||||
7FDADB9880DADC9A81DAE19F86DBD4937CAEFFFFFF00FFFFFF00
|
||||
}
|
||||
OnClick = btnHelpClick
|
||||
ShowHint = True
|
||||
ParentShowHint = False
|
||||
end
|
||||
end
|
383
src/fDbSqlSel.pas
Normal file
383
src/fDbSqlSel.pas
Normal file
@ -0,0 +1,383 @@
|
||||
unit fDbSqlSel;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
||||
ExtCtrls, Buttons;
|
||||
|
||||
type
|
||||
|
||||
{ TfrmDbSqlSel }
|
||||
|
||||
TfrmDbSqlSel = class(TForm)
|
||||
btnHelp: TSpeedButton;
|
||||
btnOK: TButton;
|
||||
edtPort: TEdit;
|
||||
edtIP: TEdit;
|
||||
edtUserName: TEdit;
|
||||
edtPassword: TEdit;
|
||||
gbLocalUser: TGroupBox;
|
||||
imLogo: TImage;
|
||||
lblError: TLabel;
|
||||
lblIp: TLabel;
|
||||
lblPort: TLabel;
|
||||
lblInfo: TLabel;
|
||||
lblUsername: TLabel;
|
||||
lblPass: TLabel;
|
||||
lblQuestion: TLabel;
|
||||
lblWelcome: TLabel;
|
||||
pnlWelcome: TPanel;
|
||||
pnlInfo: TPanel;
|
||||
rbFolder: TRadioButton;
|
||||
rbLocal: TRadioButton;
|
||||
rbExternal: TRadioButton;
|
||||
procedure btnHelpClick(Sender: TObject);
|
||||
procedure btnOKClick(Sender: TObject);
|
||||
procedure edtIPExit(Sender: TObject);
|
||||
procedure edtPasswordExit(Sender: TObject);
|
||||
procedure edtPortExit(Sender: TObject);
|
||||
procedure edtUserNameExit(Sender: TObject);
|
||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure rbExternalChange(Sender: TObject);
|
||||
procedure rbFolderClick(Sender: TObject);
|
||||
procedure rbLocalChange(Sender: TObject);
|
||||
private
|
||||
procedure ChkValues;
|
||||
procedure MakeScript1;
|
||||
procedure MakeScript2;
|
||||
procedure ExecuteScript;
|
||||
|
||||
public
|
||||
ip,port,
|
||||
user,pass :String;
|
||||
loc,rdy,
|
||||
Acon,Rmbr :Boolean;
|
||||
end;
|
||||
|
||||
const
|
||||
C_PATH ='/bin:/usr/bin/:/usr/local/bin/:~/.local/bin:/sbin:/usr/sbin:/usr/local/sbin';
|
||||
C_HEIGHT = 230;
|
||||
var
|
||||
frmDbSqlSel: TfrmDbSqlSel;
|
||||
|
||||
implementation
|
||||
|
||||
{ TfrmDbSqlSel }
|
||||
|
||||
uses fDBConnect, dUtils;
|
||||
|
||||
procedure TfrmDbSqlSel.rbLocalChange(Sender: TObject);
|
||||
begin
|
||||
if rbLocal.Checked then
|
||||
Begin
|
||||
btnOK.Enabled:=True;
|
||||
lblError.Caption:='';
|
||||
lblError.Visible:=False;
|
||||
gbLocalUser.Visible:=True;
|
||||
frmDbSqlSel.Height:=C_HEIGHT+ gbLocalUser.Height+btnOK.Height;
|
||||
edtIp.ReadOnly:=True;
|
||||
edtIp.Font.Color:=clGray;
|
||||
edtport.ReadOnly:= True;
|
||||
edtport.Font.Color:=clGray;
|
||||
edtIP.Text:='localhost';
|
||||
edtPort.Text:='3306';
|
||||
repaint;
|
||||
edtUsername.SetFocus;
|
||||
edtUsername.SelectAll;
|
||||
end
|
||||
else
|
||||
frmDbSqlSel.Height:=C_HEIGHT;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.rbExternalChange(Sender: TObject);
|
||||
begin
|
||||
if rbExternal.Checked then
|
||||
Begin
|
||||
btnOK.Enabled:=True;
|
||||
lblError.Caption:='';
|
||||
lblError.Visible:=False;
|
||||
gbLocalUser.Visible:=True;
|
||||
frmDbSqlSel.Height:=C_HEIGHT+ gbLocalUser.Height+btnOK.Height;
|
||||
edtIp.ReadOnly:=False;
|
||||
edtIp.Font.Color:=clDefault;
|
||||
edtport.ReadOnly:= False;
|
||||
edtport.Font.Color:=clDefault;
|
||||
edtIP.Text:='';
|
||||
edtPort.Text:='3306';
|
||||
repaint;
|
||||
edtIP.SetFocus;
|
||||
edtIP.SelectAll;
|
||||
end
|
||||
else
|
||||
frmDbSqlSel.Height:=C_HEIGHT;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.rbFolderClick(Sender: TObject);
|
||||
begin
|
||||
rbFolder.SetFocus;
|
||||
lblError.Caption:='';
|
||||
lblError.Visible:=False;
|
||||
gbLocalUser.Visible:=False;
|
||||
btnOK.Enabled:=True;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.MakeScript1; //"create_cqr_user.sh"
|
||||
var
|
||||
UsrHome:string;
|
||||
f :TextFile;
|
||||
Begin
|
||||
UsrHome:=dmUtils.GetHomeDirectory;
|
||||
|
||||
AssignFile(f,UsrHome+'create_cqr_user.sh');
|
||||
rewrite(f);
|
||||
Writeln(f,'#!/bin/bash');
|
||||
Writeln(f);
|
||||
Writeln(f,'echo -e "\nCreating user '+user+'@localhost for Cqrlog use\n"');
|
||||
Writeln(f,'sudo -p "Give user %u password for sudo: " mysql<<EOFSQL');
|
||||
Writeln(f);
|
||||
Writeln(f,'CREATE USER IF NOT EXISTS '+#$27+user+#$27+'@'+#$27+'localhost'+#$27+' IDENTIFIED BY '+#$27+pass+#$27+';');
|
||||
Writeln(f,'GRANT ALL PRIVILEGES ON *.* TO '+#$27+user+#$27+'@'+#$27+'localhost'+#$27+';');
|
||||
Writeln(f,'FLUSH PRIVILEGES;');
|
||||
Writeln(f,'EOFSQL');
|
||||
Writeln(f);
|
||||
Writeln(f,'status=$?');
|
||||
Writeln(f,'[ $status -eq 0 ] && echo -e "\nUser creation SUCCESS !"');
|
||||
Writeln(f,'[ $status -eq 0 ] && echo $status > /tmp/cqrSQLUsrCreate');
|
||||
Writeln(f,'[ $status -ne 0 ] && echo -e "\nUser creation FAILED !\n\nCheck error !"');
|
||||
Writeln(f,'read -p "Press enter to continue"');
|
||||
Writeln(f,'echo Done! > /tmp/cqrBashDone');
|
||||
Writeln(f,'exit $status');
|
||||
closeFile(f);
|
||||
dmUtils.ExecuteCommand('chmod a+rwx '+UsrHome+'create_cqr_user.sh');
|
||||
|
||||
end;
|
||||
procedure TfrmDbSqlSel.MakeScript2; //"backup_all_cqr.sh"
|
||||
var
|
||||
UsrHome:string;
|
||||
f :TextFile;
|
||||
Begin
|
||||
UsrHome:=dmUtils.GetHomeDirectory;
|
||||
|
||||
AssignFile(f,UsrHome+'backup_all_cqr.sh');
|
||||
rewrite(f);
|
||||
Writeln(f,'#!/bin/bash');
|
||||
Writeln(f);
|
||||
Writeln(f,'echo -e "\nCreating backup of all Cqrlog logs in database to /tmp/allcqrlogs.sql\n"');
|
||||
Writeln(f,'$(mysql -u'+user+' -p'+pass+' -B -N -h'+ip+' -P'+port+' -e " show databases like '+#$27+'cqr%'+#$27+'" |\');
|
||||
Writeln(f,'xargs echo -n mysqldump -q -h'+ip+' -P'+port+' -u'+user+' -p'+pass+' --databases) > /tmp/allcqrlogs.sql');
|
||||
Writeln(f,'echo -e "Done!\nCopy backup file to your safe place.\nIt will be erased from /tmp at next Linux start\n\nTo restore all Cqrlog logs use command:\n"');
|
||||
Writeln(f,'echo "mysql -h'+ip+' -P'+port+' -u'+user+' -p'+pass+' < /tmp/allcqrlogs.sql"');
|
||||
closeFile(f);
|
||||
dmUtils.ExecuteCommand('chmod a+rwx '+UsrHome+'backup_all_cqr.sh');
|
||||
|
||||
end;
|
||||
|
||||
Procedure TfrmDbSqlSel.ExecuteScript;
|
||||
var
|
||||
UsrHome,
|
||||
msg :string;
|
||||
c :integer;
|
||||
Begin
|
||||
UsrHome:=dmUtils.GetHomeDirectory;
|
||||
//try to find three well-known terminals
|
||||
msg:=FileSearch('xterm',C_PATH,true);
|
||||
if msg='' then
|
||||
msg:=FileSearch('gnome-terminal',C_PATH,true);
|
||||
if msg='' then
|
||||
msg:=FileSearch('lxterminal',C_PATH,true);
|
||||
if msg='' then
|
||||
ShowMessage('Cqrlog did not find command-line terminal from your system!')
|
||||
else
|
||||
dmUtils.ExecuteCommand(msg+' -e '+UsrHome+'create_cqr_user.sh');
|
||||
|
||||
c:=60; //max timeout in seconds
|
||||
repeat //we need this stupid wait because [poWaitOnExit] did not work with Mint 20 !
|
||||
Begin
|
||||
sleep(1000);
|
||||
Application.ProcessMessages;
|
||||
dec(c);
|
||||
end;
|
||||
until ((msg='') or (c<1) or (FileExists('/tmp/cqrBashDone')));
|
||||
|
||||
if FileExists('/tmp/cqrSQLUsrCreate') then
|
||||
Begin
|
||||
msg:= 'It looks like SQL user addition went ok.'
|
||||
+LineEnding+'You can press OK now.'
|
||||
+LineEnding+LineEnding;
|
||||
end
|
||||
else
|
||||
Begin
|
||||
msg:= 'If you did not see terminal and enter your password there'
|
||||
+LineEnding+ 'then do this:'
|
||||
+LineEnding+'Open linux command-line terminal and type:'+LineEnding+UsrHome+'create_cqr_user.sh (and press enter)'
|
||||
+LineEnding+LineEnding+'After that is done without errors close terminal and press OK here'
|
||||
+LineEnding+LineEnding;
|
||||
end;
|
||||
|
||||
|
||||
msg:=msg+'Backup of all Cqrlog SQL databases can be done at any '
|
||||
+LineEnding+'time from command-line terminal by typing:'
|
||||
+LineEnding+UsrHome+'backup_all_cqr.sh (and pressing enter)';
|
||||
|
||||
ShowMessage(msg);
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.btnOKClick(Sender: TObject);
|
||||
|
||||
begin
|
||||
btnOK.SetFocus;
|
||||
gbLocalUser.Visible:=True; //these lines are needed for RPi graphics
|
||||
frmDbSqlSel.Height:=C_HEIGHT+ gbLocalUser.Height+btnOK.Height; //to show lblInfo ok in default selection !?!?!
|
||||
gbLocalUser.SendToBack;
|
||||
gbLocalUser.Visible:=False;
|
||||
frmDbSqlSel.Height:=C_HEIGHT+pnlInfo.Height;
|
||||
|
||||
if rbExternal.Checked then
|
||||
begin
|
||||
//set info text and return value
|
||||
lblInfo.Caption:='Cqrlog is connecting to SQL server and '+LineEnding
|
||||
+'creating a new log if needed. Please be patient!';
|
||||
pnlInfo.Visible:=true;
|
||||
pnlInfo.BringToFront;
|
||||
pnlInfo.Repaint;
|
||||
ip :=edtIp.Text;
|
||||
port:=edtPort.Text;
|
||||
user:=edtUsername.Text;
|
||||
pass:=edtPassword.Text;
|
||||
loc:=False;
|
||||
Acon:=True;
|
||||
Rmbr:=True;
|
||||
MakeScript2;
|
||||
end;
|
||||
if rbLocal.Checked then
|
||||
Begin
|
||||
lblInfo.Caption:='Cqrlog is connecting to SQL server and '+LineEnding
|
||||
+'creating a new log if needed. Please be patient!';
|
||||
pnlInfo.Visible:=true;
|
||||
pnlInfo.BringToFront;
|
||||
pnlInfo.Repaint;
|
||||
ip :=edtIp.Text;
|
||||
port:=edtPort.Text;
|
||||
user:=edtUsername.Text;
|
||||
pass:=edtPassword.Text;
|
||||
loc:=False;
|
||||
Acon:=True;
|
||||
Rmbr:=True;
|
||||
//create script for making sql user, save it and then exceute it
|
||||
//set values to database connect and exit
|
||||
MakeScript1;
|
||||
MakeScript2;
|
||||
ExecuteScript;
|
||||
end;
|
||||
|
||||
btnOK.Visible:=False;
|
||||
btnHelp.Visible:=False;
|
||||
pnlInfo.Visible:=True;
|
||||
pnlInfo.BringToFront;
|
||||
pnlInfo.Repaint;
|
||||
rdy:=true;
|
||||
Application.ProcessMessages;
|
||||
sleep(4000);
|
||||
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.btnHelpClick(Sender: TObject);
|
||||
var
|
||||
wb :string;
|
||||
begin
|
||||
wb:=FileSearch('xdg-open',C_PATH,true);
|
||||
if wb<>'' then dmUtils.RunOnBackground(wb+' /usr/share/cqrlog/help/firsttime.html');
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.ChkValues;
|
||||
Begin
|
||||
btnOK.Enabled:=True;
|
||||
lblError.Caption:='';
|
||||
lblError.Visible:=False;
|
||||
if edtIP.Text='' then
|
||||
Begin
|
||||
btnOK.Enabled:=False;
|
||||
lblError.Caption:='IP address can not be empty !';
|
||||
lblError.Visible:=True;
|
||||
exit;
|
||||
end;
|
||||
if edtPort.Text='' then
|
||||
Begin
|
||||
btnOK.Enabled:=False;
|
||||
lblError.Caption:='Port can not be empty !';
|
||||
lblError.Visible:=True;
|
||||
exit;
|
||||
end;
|
||||
if length(edtUsername.Text)<4 then
|
||||
Begin
|
||||
btnOK.Enabled:=False;
|
||||
lblError.Caption:='Username must be at least 4 characters long !';
|
||||
lblError.Visible:=True;
|
||||
exit;
|
||||
end;
|
||||
if edtPassword.Text='' then
|
||||
Begin
|
||||
btnOK.Enabled:=False;
|
||||
lblError.Caption:='Password can not be empty !';
|
||||
lblError.Visible:=True;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
procedure TfrmDbSqlSel.edtIPExit(Sender: TObject);
|
||||
begin
|
||||
ChkValues;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.edtPasswordExit(Sender: TObject);
|
||||
begin
|
||||
ChkValues;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.edtPortExit(Sender: TObject);
|
||||
begin
|
||||
ChkValues;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.edtUserNameExit(Sender: TObject);
|
||||
begin
|
||||
ChkValues;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.FormClose(Sender: TObject; var CloseAction: TCloseAction
|
||||
);
|
||||
begin
|
||||
rdy := True;
|
||||
end;
|
||||
|
||||
procedure TfrmDbSqlSel.FormCreate(Sender: TObject);
|
||||
|
||||
begin
|
||||
ip :='localhost';
|
||||
port:='64000';
|
||||
user:='cqrlog';
|
||||
pass:='cqrlog';
|
||||
loc :=True;
|
||||
rdy := False;
|
||||
Acon:=False;
|
||||
Rmbr:=False;
|
||||
frmDbSqlSel.Height:=C_HEIGHT;
|
||||
lblError.Caption:='';
|
||||
lblError.Visible:=False;
|
||||
DeleteFile('/tmp/cqrSQLUsrCreate');
|
||||
DeleteFile('/tmp/cqrBashDone');
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
initialization
|
||||
{$I fDbSqlSel.lrs}
|
||||
|
||||
end.
|
||||
|
@ -18,10 +18,7 @@ const
|
||||
cRELEAS = 2;
|
||||
cBUILD = 1;
|
||||
|
||||
|
||||
|
||||
cBUILD_DATE = '2022-04-06';
|
||||
|
||||
cBUILD_DATE = '2022-04-09';
|
||||
|
||||
implementation
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user