Commit 8a2f5e16 by Mac Stephens

Refactor emT3 reported/assigned dropdown flow and server-backed assigned-name management.

Simplify name manager and update date handling for nullable fields.
parent 9cdecee0
......@@ -20,7 +20,7 @@ type
FUnauthorizedAccessProc: TUnauthorizedAccessProc;
public
const clientVersion = '0.8.5';
const clientVersion = '0.8.6';
procedure InitApp(SuccessProc: TSuccessProc;
UnauthorizedAccessProc: TUnauthorizedAccessProc);
procedure SetClientConfig(Callback: TVersionCheckCallback);
......
......@@ -77,6 +77,14 @@ type
procedure EditorKeyDown(Event: TJSEvent);
procedure CaptureTableScroll;
procedure RestoreTableScroll;
[async] function AddAssignedName(const AName: string): TJSArray;
[async] function RenameAssignedName(const AOldName, ANewName: string): TJSArray;
[async] function DeleteAssignedName(const AName: string): TJSArray;
function ExtractAssignedOptionNames(const ResponseResult: TJSObject): TJSArray;
[async] procedure HandleAddAssignedName(const ARowIndex: Integer; const ANewName: string);
[async] procedure HandleRenameAssignedName(const AOldName, ANewName: string);
[async] procedure HandleDeleteAssignedName(const AName: string);
function FindAssignedOptionIgnoreCase(const AItems: TJSArray; const AName: string): string;
public
end;
......@@ -106,13 +114,21 @@ begin
begin
Result := GetOptionsForField(AFieldName);
end,
procedure
begin
RenderTable;
end,
procedure(const ATriggerId: string)
begin
FocusTrigger(ATriggerId);
end,
procedure(const ARowIndex: Integer; const ANewName: string)
begin
HandleAddAssignedName(ARowIndex, ANewName);
end,
procedure(const AOldName, ANewName: string)
begin
HandleRenameAssignedName(AOldName, ANewName);
end,
procedure(const AName: string)
begin
HandleDeleteAssignedName(AName);
end
);
......@@ -653,7 +669,7 @@ var
'value="' + HtmlEncode(Value) + '"' + w + '>';
end;
function SelectList(const FieldName, Current: string; const AIdx: Integer; const Items: TJSArray): string;
function SelectList(const FieldName, Current: string; const AIdx: Integer; const Items: TJSArray; const AllowEdit: Boolean): string;
var
i: Integer;
itemText: string;
......@@ -688,6 +704,7 @@ var
'data-trigger-id="' + triggerId + '">' + HtmlEncode(itemText) + '</button>';
end;
if AllowEdit then
Result := Result +
'<div class="dropdown-divider my-1"></div>' +
'<div class="px-2 py-1 text-end">' +
......@@ -697,7 +714,9 @@ var
'data-trigger-id="' + triggerId + '">' +
'<i class="fas fa-pencil-alt"></i>' +
'</button>' +
'</div>' +
'</div>';
Result := Result +
'</div>' +
'</div>';
end;
......@@ -735,7 +754,7 @@ begin
html :=
'<div class="tasks-vscroll">' +
'<div class="tasks-hscroll">' +
'<table class="table table-sm table-bordered align-middle mb-0" style="min-width: 2000px;">' +
'<table class="table table-sm table-bordered align-middle mb-0" style="min-width: 1700px;">' +
'<colgroup>' +
'<col style="width:40px">' + // Item Num
'<col style="width:200px">' + // App
......@@ -773,8 +792,8 @@ begin
TdNowrap(TextInput('application', xdwdsTasksapplication.AsString, rowIdx, 180)) +
TdNowrap(TextInput('version', xdwdsTasksversion.AsString, rowIdx, 80)) +
TdNowrap(DateInput('taskDate', xdwdsTaskstaskDate.AsString, rowIdx, 110)) +
TdNowrap(SelectList('reportedBy', xdwdsTasksreportedBy.AsString, rowIdx, FReportedByOptions)) +
TdNowrap(SelectList('assignedTo', xdwdsTasksassignedTo.AsString, rowIdx, FAssignedToOptions)) +
TdNowrap(SelectList('reportedBy', xdwdsTasksreportedBy.AsString, rowIdx, FReportedByOptions, False)) +
TdNowrap(SelectList('assignedTo', xdwdsTasksassignedTo.AsString, rowIdx, FAssignedToOptions, True)) +
TdNowrap(StatusSelect(xdwdsTasksstatus.AsString, rowIdx)) +
TdNowrap(DateInput('statusDate', xdwdsTasksstatusDate.AsString, rowIdx, 110)) +
TdNowrap(TextInput('formSection', xdwdsTasksformSection.AsString, rowIdx, 160)) +
......@@ -1119,6 +1138,9 @@ begin
if (idx < 0) or (fieldName = '') then
Exit;
if not SameText(fieldName, 'assignedTo') then
Exit;
FNameManager.OpenManager(fieldName, idx, triggerId);
end;
......@@ -1213,6 +1235,167 @@ begin
end;
function TFTaskItems.ExtractAssignedOptionNames(const ResponseResult: TJSObject): TJSArray;
begin
if not Assigned(ResponseResult) then
Exit(TJSArray.new);
Result := ExtractOptionNames(TJSArray(ResponseResult['assignedToOptions']));
end;
[async] function TFTaskItems.AddAssignedName(const AName: string): TJSArray;
var
response: TXDataClientResponse;
resultObj: TJSObject;
begin
Result := nil;
try
response := await(xdwcTasks.RawInvokeAsync(
'IApiService.AddAssignedName',
[FTaskId, Trim(AName)]
));
resultObj := TJSObject(response.Result);
Result := ExtractAssignedOptionNames(resultObj);
FAssignedToOptions := Result;
except
on E: EXDataClientRequestException do
begin
console.log('AddAssignedName ERROR: ' + E.ErrorResult.ErrorMessage);
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
Exit;
end;
end;
end;
[async] function TFTaskItems.RenameAssignedName(const AOldName, ANewName: string): TJSArray;
var
response: TXDataClientResponse;
resultObj: TJSObject;
begin
Result := nil;
try
response := await(xdwcTasks.RawInvokeAsync(
'IApiService.RenameAssignedName',
[FTaskId, Trim(AOldName), Trim(ANewName)]
));
resultObj := TJSObject(response.Result);
Result := ExtractAssignedOptionNames(resultObj);
FAssignedToOptions := Result;
except
on E: EXDataClientRequestException do
begin
console.log('RenameAssignedName ERROR: ' + E.ErrorResult.ErrorMessage);
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
Exit;
end;
end;
end;
[async] function TFTaskItems.DeleteAssignedName(const AName: string): TJSArray;
var
response: TXDataClientResponse;
resultObj: TJSObject;
begin
Result := nil;
try
response := await(xdwcTasks.RawInvokeAsync(
'IApiService.DeleteAssignedName',
[FTaskId, Trim(AName)]
));
resultObj := TJSObject(response.Result);
Result := ExtractAssignedOptionNames(resultObj);
FAssignedToOptions := Result;
except
on E: EXDataClientRequestException do
begin
console.log('DeleteAssignedName ERROR: ' + E.ErrorResult.ErrorMessage);
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
Exit;
end;
end;
end;
function TFTaskItems.FindAssignedOptionIgnoreCase(const AItems: TJSArray; const AName: string): string;
var
i: Integer;
itemText: string;
begin
Result := '';
if not Assigned(AItems) then
Exit;
for i := 0 to AItems.length - 1 do
begin
itemText := string(AItems[i]);
if SameText(itemText, Trim(AName)) then
Exit(itemText);
end;
end;
[async] procedure TFTaskItems.HandleAddAssignedName(const ARowIndex: Integer; const ANewName: string);
var
newOptions: TJSArray;
resolvedName: string;
begin
newOptions := await(AddAssignedName(ANewName));
if not Assigned(newOptions) then
Exit;
FAssignedToOptions := newOptions;
resolvedName := FindAssignedOptionIgnoreCase(FAssignedToOptions, ANewName);
if resolvedName = '' then
resolvedName := Trim(ANewName);
if not xdwdsTasks.Active then
Exit;
GotoRowIndex(ARowIndex);
if xdwdsTasks.Eof then
Exit;
xdwdsTasks.Edit;
xdwdsTasksassignedTo.AsString := resolvedName;
xdwdsTasks.Post;
RenderTable;
await(SaveRow(ARowIndex));
end;
[async] procedure TFTaskItems.HandleRenameAssignedName(const AOldName, ANewName: string);
var
newOptions: TJSArray;
begin
newOptions := await(RenameAssignedName(AOldName, ANewName));
if not Assigned(newOptions) then
Exit;
FAssignedToOptions := newOptions;
CaptureTableScroll;
LoadTasks(FTaskId);
end;
[async] procedure TFTaskItems.HandleDeleteAssignedName(const AName: string);
var
newOptions: TJSArray;
begin
newOptions := await(DeleteAssignedName(AName));
if not Assigned(newOptions) then
Exit;
FAssignedToOptions := newOptions;
CaptureTableScroll;
LoadTasks(FTaskId);
end;
end.
......
......@@ -72,5 +72,19 @@ span.card {
border: none;
}
.th-resize {
position: relative;
}
.th-resize-handle {
position: absolute;
top: 0;
right: 0;
width: 8px;
height: 100%;
cursor: col-resize;
user-select: none;
}
......@@ -94,13 +94,13 @@
<DCC_RemoteDebug>false</DCC_RemoteDebug>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.8.5.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.8.0;Comments=;LastCompiledTime=2018/08/27 15:18:29</VerInfo_Keys>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.8.6.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.8.0;Comments=;LastCompiledTime=2018/08/27 15:18:29</VerInfo_Keys>
<AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
<VerInfo_MajorVer>0</VerInfo_MajorVer>
<VerInfo_MinorVer>8</VerInfo_MinorVer>
<VerInfo_Release>5</VerInfo_Release>
<TMSWebBrowser>1</TMSWebBrowser>
<VerInfo_Release>6</VerInfo_Release>
<TMSUseJSDebugger>2</TMSUseJSDebugger>
<TMSWebBrowser>1</TMSWebBrowser>
<TMSWebSingleInstance>1</TMSWebSingleInstance>
<TMSWebOutputPath>..\emT3XDataServer\bin\static</TMSWebOutputPath>
</PropertyGroup>
......
object ApiDatabase: TApiDatabase
OnCreate = DataModuleCreate
Height = 358
Width = 519
Height = 453
Width = 641
object ucETaskApi: TUniConnection
AutoCommit = False
ProviderName = 'MySQL'
Database = 'eTask'
LoginPrompt = False
Left = 51
Top = 67
Left = 255
Top = 379
end
object MySQLUniProvider1: TMySQLUniProvider
Left = 56
Top = 14
Left = 354
Top = 378
end
object uqUsers: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'SELECT USER_ID, NAME, STATUS from users ORDER BY NAME')
OnCalcFields = uqUsersCalcFields
Left = 408
Top = 20
Left = 538
Top = 24
object uqUsersUSER_ID: TIntegerField
FieldName = 'USER_ID'
Required = True
......@@ -56,8 +56,8 @@ object ApiDatabase: TApiDatabase
' ISSUE = :ISSUE,'
' NOTES = :NOTES'
'WHERE TASK_ITEM_ID = :TASK_ITEM_ID')
Left = 408
Top = 242
Left = 538
Top = 232
ParamData = <
item
DataType = ftUnknown
......@@ -141,8 +141,8 @@ object ApiDatabase: TApiDatabase
'from task_items'
'where TASK_ID = :TASK_ID'
'order by ITEM_NUM')
Left = 62
Top = 138
Left = 56
Top = 26
ParamData = <
item
DataType = ftUnknown
......@@ -248,8 +248,8 @@ object ApiDatabase: TApiDatabase
' '#39#39','
' '#39#39
')')
Left = 412
Top = 300
Left = 536
Top = 282
ParamData = <
item
DataType = ftUnknown
......@@ -281,8 +281,8 @@ object ApiDatabase: TApiDatabase
'left join project p'
' on p.PROJECT_ID = t.PROJECT_ID'
'where t.TASK_ID = :TASK_ID')
Left = 60
Top = 242
Left = 54
Top = 82
ParamData = <
item
DataType = ftUnknown
......@@ -330,46 +330,6 @@ object ApiDatabase: TApiDatabase
Size = 30
end
end
object uqTaskItemUsers: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'select'
' TASK_ITEM_USER_ID,'
' TASK_ID,'
' USER_TYPE,'
' NAME'
'from task_item_user'
'where TASK_ID = :TASK_ID'
'order by USER_TYPE, NAME')
Left = 62
Top = 188
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end>
object uqTaskItemUsersTASK_ITEM_USER_ID: TStringField
FieldName = 'TASK_ITEM_USER_ID'
Required = True
Size = 50
end
object uqTaskItemUsersTASK_ID: TStringField
FieldName = 'TASK_ID'
Required = True
Size = 7
end
object uqTaskItemUsersUSER_TYPE: TStringField
FieldName = 'USER_TYPE'
Required = True
Size = 8
end
object uqTaskItemUsersNAME: TStringField
FieldName = 'NAME'
Required = True
Size = 50
end
end
object uqTaskItemCodes: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
......@@ -381,7 +341,7 @@ object ApiDatabase: TApiDatabase
'WHERE CODE_TYPE = '#39'STATUS'#39
'ORDER BY CODE')
Left = 60
Top = 296
Top = 140
object uqTaskItemCodesCODE: TStringField
FieldName = 'CODE'
Required = True
......@@ -521,7 +481,7 @@ object ApiDatabase: TApiDatabase
'where TASK_ITEM_ID = :TASK_ITEM_ID'
' and TASK_ID = :TASK_ID')
Left = 234
Top = 232
Top = 242
ParamData = <
item
DataType = ftUnknown
......@@ -546,8 +506,8 @@ object ApiDatabase: TApiDatabase
' coalesce(max(ITEM_NUM), 0) as MAX_ITEM_NUM'
'from task_items'
'where TASK_ID = :TASK_ID')
Left = 236
Top = 290
Left = 234
Top = 296
ParamData = <
item
DataType = ftUnknown
......@@ -561,8 +521,8 @@ object ApiDatabase: TApiDatabase
'delete from task_items'
'where TASK_ITEM_ID = :TASK_ITEM_ID'
' and TASK_ID = :TASK_ID')
Left = 408
Top = 182
Left = 536
Top = 180
ParamData = <
item
DataType = ftUnknown
......@@ -582,8 +542,8 @@ object ApiDatabase: TApiDatabase
'set ITEM_NUM = ITEM_NUM - 1'
'where TASK_ID = :TASK_ID'
' and ITEM_NUM > :OLD_ITEM_NUM')
Left = 408
Top = 130
Left = 536
Top = 126
ParamData = <
item
DataType = ftUnknown
......@@ -603,8 +563,8 @@ object ApiDatabase: TApiDatabase
'set ITEM_NUM = ITEM_NUM + 1'
'where TASK_ID = :TASK_ID'
' and ITEM_NUM > :INSERT_AFTER_ITEM_NUM')
Left = 408
Top = 80
Left = 538
Top = 76
ParamData = <
item
DataType = ftUnknown
......@@ -617,4 +577,202 @@ object ApiDatabase: TApiDatabase
Value = nil
end>
end
object uqProjectReportedUsers: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'select distinct'
' tiu.NAME'
'from task_item_user tiu'
'join tasks project_tasks'
' on project_tasks.TASK_ID = tiu.TASK_ID'
'join tasks target_task'
' on target_task.PROJECT_ID = project_tasks.PROJECT_ID'
'where target_task.TASK_ID = :TASK_ID'
' and tiu.USER_TYPE = '#39'Reported'#39
'order by tiu.NAME')
Left = 58
Top = 256
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end>
object uqProjectReportedUsersNAME: TStringField
FieldName = 'NAME'
Required = True
Size = 50
end
end
object uqTaskAssignedUsers: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'select distinct'
' TASK_ITEM_USER_ID,'
' TASK_ID,'
' USER_TYPE,'
' NAME'
'from task_item_user'
'where TASK_ID = :TASK_ID'
' and USER_TYPE = '#39'Assigned'#39
'order by NAME')
Left = 60
Top = 200
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end>
object uqTaskAssignedUsersTASK_ITEM_USER_ID: TStringField
FieldName = 'TASK_ITEM_USER_ID'
Required = True
Size = 50
end
object uqTaskAssignedUsersTASK_ID: TStringField
FieldName = 'TASK_ID'
Required = True
Size = 7
end
object uqTaskAssignedUsersUSER_TYPE: TStringField
FieldName = 'USER_TYPE'
Required = True
Size = 8
end
object uqTaskAssignedUsersNAME: TStringField
FieldName = 'NAME'
Required = True
Size = 50
end
end
object uqAssignedInsert: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'insert into task_item_user ('
' TASK_ITEM_USER_ID,'
' TASK_ID,'
' USER_TYPE,'
' NAME'
')'
'values ('
' :TASK_ITEM_USER_ID,'
' :TASK_ID,'
' '#39'Assigned'#39','
' :NAME'
')')
Left = 382
Top = 24
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ITEM_USER_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'NAME'
Value = nil
end>
end
object uqAssignedRename: TUniQuery
LocalUpdate = True
Connection = ucETaskApi
SQL.Strings = (
'update task_item_user'
'set NAME = :NEW_NAME'
'where TASK_ITEM_USER_ID = :TASK_ITEM_USER_ID'
' and TASK_ID = :TASK_ID'
' and USER_TYPE = '#39'Assigned'#39)
Left = 382
Top = 84
ParamData = <
item
DataType = ftUnknown
Name = 'NEW_NAME'
Value = nil
end
item
DataType = ftUnknown
Name = 'TASK_ITEM_USER_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end>
end
object uqAssignedDelete: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'delete from task_item_user'
'where TASK_ITEM_USER_ID = :TASK_ITEM_USER_ID'
' and TASK_ID = :TASK_ID'
' and USER_TYPE = '#39'Assigned'#39)
Left = 384
Top = 140
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ITEM_USER_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end>
end
object uqRenameAssignedTo: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'update task_items'
'set ASSIGNED_TO = :NEW_NAME'
'where TASK_ID = :TASK_ID'
' and lower(ASSIGNED_TO) = lower(:OLD_NAME)')
Left = 386
Top = 196
ParamData = <
item
DataType = ftUnknown
Name = 'NEW_NAME'
Value = nil
end
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'OLD_NAME'
Value = nil
end>
end
object uqBlankAssignedTo: TUniQuery
Connection = ucETaskApi
SQL.Strings = (
'update task_items'
'set ASSIGNED_TO = '#39#39
'where TASK_ID = :TASK_ID'
' and lower(ASSIGNED_TO) = lower(:NAME)')
Left = 388
Top = 254
ParamData = <
item
DataType = ftUnknown
Name = 'TASK_ID'
Value = nil
end
item
DataType = ftUnknown
Name = 'NAME'
Value = nil
end>
end
end
......@@ -44,11 +44,6 @@ type
uqTaskHeaderPROJECT_ID: TStringField;
uqTaskHeaderSUBJECT: TStringField;
uqTaskHeaderPROJECT_NAME: TStringField;
uqTaskItemUsers: TUniQuery;
uqTaskItemUsersTASK_ITEM_USER_ID: TStringField;
uqTaskItemUsersTASK_ID: TStringField;
uqTaskItemUsersUSER_TYPE: TStringField;
uqTaskItemUsersNAME: TStringField;
uqTaskItemCodes: TUniQuery;
uqTaskItemCodesCODE: TStringField;
uqTaskItemCodesCODE_DESC: TStringField;
......@@ -66,6 +61,18 @@ type
uqDeleteTaskRow: TUniQuery;
uqShiftTaskRowsAfterDelete: TUniQuery;
uqShiftTaskRowsForInsert: TUniQuery;
uqProjectReportedUsers: TUniQuery;
uqTaskAssignedUsers: TUniQuery;
uqAssignedInsert: TUniQuery;
uqAssignedRename: TUniQuery;
uqAssignedDelete: TUniQuery;
uqRenameAssignedTo: TUniQuery;
uqBlankAssignedTo: TUniQuery;
uqProjectReportedUsersNAME: TStringField;
uqTaskAssignedUsersTASK_ITEM_USER_ID: TStringField;
uqTaskAssignedUsersTASK_ID: TStringField;
uqTaskAssignedUsersUSER_TYPE: TStringField;
uqTaskAssignedUsersNAME: TStringField;
procedure DataModuleCreate(Sender: TObject);
procedure uqUsersCalcFields(DataSet: TDataSet);
private
......
......@@ -26,7 +26,7 @@ type
reportedBy: string;
assignedTo: string;
status: string;
statusDate: Variant;
statusDate: TDateTime;
fixedVersion: string;
formSection: string;
issue: string;
......@@ -68,6 +68,13 @@ type
destructor Destroy; override;
end;
TTaskUserOptionsResponse = class
public
assignedToOptions: TList<TTaskUserOption>;
constructor Create;
destructor Destroy; override;
end;
TTaskRowSave = class
public
taskItemId: integer;
......@@ -87,6 +94,8 @@ type
end;
type
[ServiceContract, Model(API_MODEL)]
IApiService = interface(IInvokable)
......@@ -94,7 +103,9 @@ type
function GetTaskItems(taskId: string): TTaskItemsResponse;
[HttpPost] function AddTaskRow(taskId: string; insertAfterItemNum: Integer): Boolean;
[HttpPost] function SaveTaskRow(Item: TTaskRowSave): Boolean;
function TestApi(messageText: string): TJSONObject;
[HttpPost] function AddAssignedName(taskId: string; name: string): TTaskUserOptionsResponse;
[HttpPost] function RenameAssignedName(taskId: string; oldName: string; newName: string): TTaskUserOptionsResponse;
[HttpPost] function DeleteAssignedName(taskId: string; name: string): TTaskUserOptionsResponse;
procedure MoveTaskRow(const taskId: Integer; const taskItemId: Integer; const newItemNum: Integer);
function DeleteTaskRow(const taskId: Integer; const taskItemId: Integer): Boolean;
end;
......@@ -119,6 +130,18 @@ begin
inherited;
end;
constructor TTaskUserOptionsResponse.Create;
begin
inherited;
assignedToOptions := TList<TTaskUserOption>.Create;
end;
destructor TTaskUserOptionsResponse.Destroy;
begin
assignedToOptions.Free;
inherited;
end;
initialization
RegisterServiceType(TypeInfo(IApiService));
......
[Settings]
MemoLogLevel=4
FileLogLevel=4
webClientVersion=0.8.5
LogFileNum=146
webClientVersion=0.8.6
LogFileNum=152
[Database]
--Server=192.168.116.131
......
......@@ -114,10 +114,10 @@
<VerInfo_Locale>1033</VerInfo_Locale>
<DCC_ExeOutput>.\bin</DCC_ExeOutput>
<DCC_UnitSearchPath>C:\RADTOOLS\FastMM4;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<VerInfo_Keys>CompanyName=EM Systems;FileDescription=$(MSBuildProjectName);FileVersion=0.8.5.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.11;Comments=</VerInfo_Keys>
<VerInfo_Keys>CompanyName=EM Systems;FileDescription=$(MSBuildProjectName);FileVersion=0.8.6.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.11;Comments=</VerInfo_Keys>
<VerInfo_MajorVer>0</VerInfo_MajorVer>
<VerInfo_MinorVer>8</VerInfo_MinorVer>
<VerInfo_Release>5</VerInfo_Release>
<VerInfo_Release>6</VerInfo_Release>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment