|
@@ -19,7 +19,8 @@ uses
|
|
|
SynEditCodeFolding, dxCore, Data.DB, dxmdaset, cxStyles, cxCustomData,
|
|
|
cxFilter, cxData, cxDataStorage, cxNavigator, dxDateRanges,
|
|
|
dxScrollbarAnnotations, cxDBData, cxGridLevel, cxGridCustomView,
|
|
|
- cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;
|
|
|
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxMemo,
|
|
|
+ htmlcomp, htmledit;
|
|
|
|
|
|
type
|
|
|
TMethodType = (mtGET, mtPOST, mtPATCH, mtPUT, mtDELETE);
|
|
@@ -139,8 +140,10 @@ type
|
|
|
cxGridDBTableViewfldCategory: TcxGridDBColumn;
|
|
|
memDataPresetsfldGuid: TStringField;
|
|
|
cxStyleRepository1: TcxStyleRepository;
|
|
|
- memDataPresetsfldNotes: TStringField;
|
|
|
- cxGridDBTableViewfldNotes: TcxGridDBColumn;
|
|
|
+ tabNotes: TcxTabSheet;
|
|
|
+ Panel6: TPanel;
|
|
|
+ Label11: TLabel;
|
|
|
+ HtmlEditor: THtmlEditor;
|
|
|
procedure FormShow(Sender: TObject);
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
procedure FormDestroy(Sender: TObject);
|
|
@@ -222,7 +225,7 @@ type
|
|
|
procedure SaveProject;
|
|
|
procedure SaveProjectAs(const LoadAfterSave: Boolean);
|
|
|
procedure Run;
|
|
|
- procedure AddPreset(const APresetName: string; const APresetCategory: string; APresetNote: string);
|
|
|
+ procedure AddPreset(const AGuid: string; const APresetName: string; const APresetCategory: string);
|
|
|
procedure LoadPreset;
|
|
|
procedure SavePreset;
|
|
|
procedure ShowError(const AErrorText: string);
|
|
@@ -230,6 +233,8 @@ type
|
|
|
procedure DoPOSTRequest(const AMethodType: TMethodType);
|
|
|
procedure UpdateEditor(const AText: string);
|
|
|
procedure CheckForUpdate;
|
|
|
+ procedure DeactivatePresetEvents;
|
|
|
+ procedure ActivatePresetEvents;
|
|
|
function GenerateGuid: string;
|
|
|
function Encode(const AText: string): string;
|
|
|
function Decode(const AText: string): string;
|
|
@@ -356,19 +361,27 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
-procedure TfrmMain.AddPreset(const APresetName: string; const APresetCategory: string; APresetNote: string);
|
|
|
-var
|
|
|
- guid: string;
|
|
|
+procedure TfrmMain.ActivatePresetEvents;
|
|
|
begin
|
|
|
- guid := GenerateGuid;
|
|
|
+ memDataPresets.BeforeScroll := memDataPresetsBeforeScroll;
|
|
|
+ memDataPresets.AfterScroll := memDataPresetsAfterScroll;
|
|
|
+ memDataPresets.AfterEdit := memDataPresetsAfterEdit;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TfrmMain.AddPreset(const AGuid: string; const APresetName: string; const APresetCategory: string);
|
|
|
+begin
|
|
|
+ DeactivatePresetEvents;
|
|
|
|
|
|
memDataPresets.Append;
|
|
|
memDataPresetsfldName.Value := APresetName;
|
|
|
memDataPresetsfldCategory.Value := APresetCategory;
|
|
|
- memDataPresetsfldNotes.Value := APresetNote;
|
|
|
- memDataPresetsfldGuid.Value := guid;
|
|
|
+ memDataPresetsfldGuid.Value := AGuid;
|
|
|
memDataPresets.Post;
|
|
|
|
|
|
+ LoadPreset;
|
|
|
+
|
|
|
+ ActivatePresetEvents;
|
|
|
+
|
|
|
SavePreset;
|
|
|
end;
|
|
|
|
|
@@ -376,7 +389,8 @@ procedure TfrmMain.btnAddClick(Sender: TObject);
|
|
|
begin
|
|
|
if frmAddEditPreset.ShowModal = mrOk then
|
|
|
begin
|
|
|
- AddPreset(frmAddEditPreset.edtPresetName.Text, frmAddEditPreset.edtCategory.Text, frmAddEditPreset.memNotes.Text);
|
|
|
+ SavePreset;
|
|
|
+ AddPreset(GenerateGuid, frmAddEditPreset.edtPresetName.Text, frmAddEditPreset.edtCategory.Text);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -390,31 +404,28 @@ begin
|
|
|
begin
|
|
|
if MessageDlg('Really delete preset "' + memDataPresetsfldName.Value + '"?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
|
|
|
begin
|
|
|
- showmessage(memDataPresetsfldGuid.Value);
|
|
|
+ DeactivatePresetEvents;
|
|
|
FProjectConfig.DeleteSection('Preset_' + memDataPresetsfldGuid.Value);
|
|
|
memDataPresets.Delete;
|
|
|
FProjectConfig.Save;
|
|
|
+ LoadPreset;
|
|
|
+ ActivatePresetEvents;
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.btnEditClick(Sender: TObject);
|
|
|
-var
|
|
|
- dmy: string;
|
|
|
- idx: Integer;
|
|
|
-begin
|
|
|
- ShowMessage('not implemented yet');
|
|
|
-// SavePreset;
|
|
|
-// dmy := comboPresets.Text;
|
|
|
-// idx := comboPresets.ItemIndex;
|
|
|
-// if InputQuery('Edit Preset', 'Rename preset:', dmy) then
|
|
|
-// begin
|
|
|
-// comboPresets.Properties.Items[comboPresets.ItemIndex] := dmy;
|
|
|
-// FPresetsList.ValueFromIndex[idx] := Encode(dmy);
|
|
|
-// comboPresets.ItemIndex := idx;
|
|
|
-//
|
|
|
-// FProjectConfig.WriteString('Presets', 'Presets', FPresetsList.Text);
|
|
|
-// end;
|
|
|
+begin
|
|
|
+ frmAddEditPreset.edtPresetName.Text := memDataPresetsfldName.Value;
|
|
|
+ frmAddEditPreset.edtCategory.Text := memDataPresetsfldCategory.Value;
|
|
|
+ if frmAddEditPreset.ShowModal = mrOk then
|
|
|
+ begin
|
|
|
+ SavePreset;
|
|
|
+ memDataPresets.Edit;
|
|
|
+ memDataPresetsfldName.Value := frmAddEditPreset.edtPresetName.Text;
|
|
|
+ memDataPresetsfldCategory.Value := frmAddEditPreset.edtCategory.Text;
|
|
|
+ memDataPresets.Post;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.btnPasteFullURLClick(Sender: TObject);
|
|
@@ -432,13 +443,16 @@ end;
|
|
|
|
|
|
procedure TfrmMain.btnCopyPresetClick(Sender: TObject);
|
|
|
var
|
|
|
- idx: Integer;
|
|
|
+ guid: string;
|
|
|
+ name, category: string;
|
|
|
begin
|
|
|
- SavePreset;
|
|
|
-// idx := comboPresets.ItemIndex;
|
|
|
-// AddPreset('Copy of ' + comboPresets.Text);
|
|
|
-// FProjectConfig.CopySection('Preset_' + FPresetsList.Names[idx], 'Preset_' + FPresetsList.Names[comboPresets.ItemIndex]);
|
|
|
-// LoadPreset;
|
|
|
+ guid := GenerateGuid;
|
|
|
+ FProjectConfig.CopySection('Preset_' + memDataPresetsfldGuid.Value, 'Preset_' + guid);
|
|
|
+ FProjectConfig.WriteString('Preset_' + guid, 'Guid', guid);
|
|
|
+ SaveProject;
|
|
|
+ name := 'Copy of ' + memDataPresetsfldName.Value;
|
|
|
+ category := memDataPresetsfldCategory.Value;
|
|
|
+ AddPreset(guid, name, category);
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.btnRunClick(Sender: TObject);
|
|
@@ -668,9 +682,20 @@ begin
|
|
|
ActiveEditor.CutToClipboard;
|
|
|
end;
|
|
|
|
|
|
+procedure TfrmMain.DeactivatePresetEvents;
|
|
|
+begin
|
|
|
+ memDataPresets.BeforeScroll := nil;
|
|
|
+ memDataPresets.AfterScroll := nil;
|
|
|
+ memDataPresets.AfterEdit := nil;
|
|
|
+end;
|
|
|
+
|
|
|
function TfrmMain.Decode(const AText: string): string;
|
|
|
begin
|
|
|
- Result := TNetEncoding.Base64.Decode(AText);
|
|
|
+ try
|
|
|
+ Result := TNetEncoding.Base64.Decode(AText);
|
|
|
+ except
|
|
|
+ Result := '';
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.DoGETRequest(const AMethodType: TMethodType);
|
|
@@ -1197,6 +1222,8 @@ begin
|
|
|
comboPostContentType.Text := FProjectConfig.ReadString(preset, 'PostDataContentType', 'application/json');
|
|
|
chkResponseAutoformat.Checked := FProjectConfig.ReadBool(preset, 'ResponseAutoFormat', false);
|
|
|
|
|
|
+ HtmlEditor.HTML.Text := Decode(FProjectConfig.ReadString(preset, 'Notes', ''));
|
|
|
+
|
|
|
chkUseBasicAuth.Checked := FProjectConfig.ReadBool(preset, 'UseBasicAuth');
|
|
|
edtAuthUsername.Text := TEncryptStr.DecryptString(FProjectConfig.ReadString(preset, 'AuthUsername'));
|
|
|
edtAuthPassword.Text := TEncryptStr.DecryptString(FProjectConfig.ReadString(preset, 'AuthPassword'));
|
|
@@ -1211,11 +1238,7 @@ var
|
|
|
strstream: TStringStream;
|
|
|
strlist: TStringList;
|
|
|
begin
|
|
|
- memDataPresets.AfterEdit := nil;
|
|
|
- memDataPresets.AfterScroll := nil;
|
|
|
- memDataPresets.BeforeScroll := nil;
|
|
|
- memDataPresets.AfterEdit := nil;
|
|
|
-
|
|
|
+ DeactivatePresetEvents;
|
|
|
|
|
|
if FIsTempProjectLoaded then
|
|
|
begin
|
|
@@ -1272,7 +1295,7 @@ begin
|
|
|
memDataPresets.Append;
|
|
|
memDataPresetsfldGuid.Value := FProjectConfig.ReadString(strlist[i], 'Guid');
|
|
|
memDataPresetsfldName.Value := FProjectConfig.ReadString(strlist[i], 'PresetName');
|
|
|
- memDataPresetsfldNotes.Value := FProjectConfig.ReadString(strlist[i], 'Notes');
|
|
|
+ memDataPresetsfldCategory.Value := FProjectConfig.ReadString(strlist[i], 'Category');
|
|
|
memDataPresets.Post;
|
|
|
end;
|
|
|
end;
|
|
@@ -1288,7 +1311,7 @@ begin
|
|
|
if memDataPresets.RecordCount = 0 then
|
|
|
begin
|
|
|
// Add default
|
|
|
- AddPreset('Default', '', '');
|
|
|
+ AddPreset(GenerateGuid, 'Default', '');
|
|
|
FProjectConfig.Save;
|
|
|
end
|
|
|
else
|
|
@@ -1320,20 +1343,11 @@ begin
|
|
|
strstream.Free;
|
|
|
end;
|
|
|
|
|
|
- memDataPresets.BeforeScroll := memDataPresetsBeforeScroll;
|
|
|
- memDataPresets.AfterScroll := memDataPresetsAfterScroll;
|
|
|
- memDataPresets.AfterEdit := memDataPresetsAfterEdit;
|
|
|
-
|
|
|
+ ActivatePresetEvents;
|
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.memDataPresetsAfterEdit(DataSet: TDataSet);
|
|
|
-var
|
|
|
- idx: Integer;
|
|
|
begin
|
|
|
-// idx := FPresetsList.inde
|
|
|
-// FPresetsList.ValueFromIndex[idx] := memDataPresetsfldName.Value;
|
|
|
-// FProjectConfig.WriteString('Presets', 'Presets', FPresetsList.Text);
|
|
|
-//
|
|
|
SavePreset;
|
|
|
end;
|
|
|
|
|
@@ -1650,7 +1664,7 @@ begin
|
|
|
|
|
|
FProjectConfig.WriteString(preset, 'PresetName', memDataPresetsfldName.Value);
|
|
|
FProjectConfig.WriteString(preset, 'Guid', memDataPresetsfldGuid.Value);
|
|
|
- FProjectConfig.WriteString(preset, 'Notes', memDataPresetsfldNotes.Value);
|
|
|
+ FProjectConfig.WriteString(preset, 'Notes', Encode(HtmlEditor.Doc.OuterHTML));
|
|
|
FProjectConfig.WriteString(preset, 'Category', memDataPresetsfldCategory.Value);
|
|
|
|
|
|
FProjectConfig.WriteString('Presets', 'LastUsed', memDataPresetsfldGuid.Value);
|