Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
emT3web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mac Stephens
emT3web
Commits
72262daa
Commit
72262daa
authored
Apr 14, 2026
by
Mac Stephens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update to fix insert row button and bug fixes WIP
parent
4a314fa8
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
18 deletions
+89
-18
View.TaskItems.dfm
emT3Web/View.TaskItems.dfm
+14
-0
View.TaskItems.html
emT3Web/View.TaskItems.html
+1
-0
View.TaskItems.pas
emT3Web/View.TaskItems.pas
+73
-17
emT3XDataServer.ini
emT3XDataServer/bin/emT3XDataServer.ini
+1
-1
No files found.
emT3Web/View.TaskItems.dfm
View file @
72262daa
...
...
@@ -44,6 +44,20 @@ object FTaskItems: TFTaskItems
WidthPercent = 100.000000000000000000
OnClick = btnDeleteRowClick
end
object btnInsertRow: TWebButton
Left = 78
Top = 178
Width = 96
Height = 25
Caption = 'Insert Row'
ChildOrder = 3
ElementID = 'btn_insert_row'
ElementFont = efCSS
HeightStyle = ssAuto
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnInsertRowClick
end
object xdwcTasks: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 506
...
...
emT3Web/View.TaskItems.html
View file @
72262daa
...
...
@@ -8,6 +8,7 @@
<div
class=
"d-flex gap-2"
>
<button
id=
"btn_add_row"
class=
"btn btn-sm btn-success"
>
Add Row
</button>
<button
id=
"btn_delete_row"
class=
"btn btn-sm btn-danger"
>
Delete Row
</button>
<button
id=
"btn_insert_row"
class=
"btn btn-sm btn-success"
>
Insert Row
</button>
<button
id=
"btn_reload"
class=
"btn btn-sm btn-primary"
>
Reload
</button>
</div>
</div>
...
...
emT3Web/View.TaskItems.pas
View file @
72262daa
...
...
@@ -30,10 +30,12 @@ type
xdwdsTasksitemNum
:
TIntegerField
;
xdwdsTaskstaskItemId
:
TIntegerField
;
btnDeleteRow
:
TWebButton
;
btnInsertRow
:
TWebButton
;
[
async
]
procedure
btnAddRowClick
(
Sender
:
TObject
);
procedure
btnReloadClick
(
Sender
:
TObject
);
procedure
WebFormCreate
(
Sender
:
TObject
);
[
async
]
procedure
btnDeleteRowClick
(
Sender
:
TObject
);
[
async
]
procedure
btnInsertRowClick
(
Sender
:
TObject
);
private
FTaskId
:
string
;
FApplicationOptions
:
TJSArray
;
...
...
@@ -62,7 +64,9 @@ type
procedure
SetTaskLabel
(
const
ATitle
:
string
);
[
async
]
procedure
SaveField
(
AIndex
:
Integer
;
const
AFieldName
:
string
);
procedure
EditorBlur
(
Event
:
TJSEvent
);
[
async
]
function
AddTaskRow
:
Boolean
;
[
async
]
function
AddTaskRowAtBottom
:
Boolean
;
[
async
]
function
InsertTaskRowBelowSelection
:
Boolean
;
[
async
]
function
AddTaskRowWithInsertAfter
(
const
insertAfterItemNum
,
newItemNum
:
Integer
):
Boolean
;
[
async
]
function
DeleteTaskRow
:
Boolean
;
procedure
DropdownItemClick
(
Event
:
TJSEvent
);
procedure
DropdownEditClick
(
Event
:
TJSEvent
);
...
...
@@ -142,6 +146,7 @@ begin
Exit
;
end
;
btnInsertRow
.
Enabled
:=
False
;
btnAddRow
.
Enabled
:=
False
;
btnDeleteRow
.
Enabled
:=
False
;
...
...
@@ -344,7 +349,7 @@ end;
begin
Utils
.
ShowSpinner
(
'spinner'
);
try
if
await
(
AddTaskRow
)
then
if
await
(
AddTaskRow
AtBottom
)
then
begin
CaptureTableScroll
;
LoadTasks
(
FTaskId
);
...
...
@@ -383,6 +388,7 @@ begin
begin
FSelectedTaskItemId
:=
0
;
FSelectedTaskId
:=
0
;
btnInsertRow
.
Enabled
:=
False
;
btnDeleteRow
.
Enabled
:=
False
;
FPendingFocusItemNum
:=
deletedItemNum
;
...
...
@@ -396,6 +402,20 @@ begin
end
;
end
;
[
async
]
procedure
TFTaskItems
.
btnInsertRowClick
(
Sender
:
TObject
);
begin
Utils
.
ShowSpinner
(
'spinner'
);
try
if
await
(
InsertTaskRowBelowSelection
)
then
begin
CaptureTableScroll
;
LoadTasks
(
FTaskId
);
end
;
finally
Utils
.
HideSpinner
(
'spinner'
);
end
;
end
;
procedure
TFTaskItems
.
RowClick
(
Event
:
TJSEvent
);
var
rowEl
:
TJSHTMLElement
;
...
...
@@ -412,6 +432,7 @@ begin
FSelectedTaskItemId
:=
StrToIntDef
(
taskItemIdStr
,
0
);
FSelectedTaskId
:=
StrToIntDef
(
taskIdStr
,
0
);
btnInsertRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
btnDeleteRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
ApplySelectedRowState
;
end
;
...
...
@@ -431,43 +452,76 @@ begin
end
;
[
async
]
function
TFTaskItems
.
AddTaskRow
:
Boolean
;
[
async
]
function
TFTaskItems
.
AddTaskRow
AtBottom
:
Boolean
;
var
response
:
TXDataClientResponse
;
insertAfterItemNum
:
Integer
;
newItemNum
:
Integer
;
maxItemNum
:
Integer
;
begin
maxItemNum
:=
0
;
if
xdwdsTasks
.
Active
then
begin
xdwdsTasks
.
First
;
while
not
xdwdsTasks
.
Eof
do
begin
if
xdwdsTasksitemNum
.
AsInteger
>
maxItemNum
then
maxItemNum
:=
xdwdsTasksitemNum
.
AsInteger
;
xdwdsTasks
.
Next
;
end
;
end
;
Result
:=
await
(
AddTaskRowWithInsertAfter
(
0
,
maxItemNum
+
1
));
end
;
[
async
]
function
TFTaskItems
.
InsertTaskRowBelowSelection
:
Boolean
;
var
insertAfterItemNum
:
Integer
;
begin
Result
:=
False
;
if
F
TaskId
=
''
then
if
F
SelectedTaskItemId
<=
0
then
begin
Utils
.
ShowErrorModal
(
'
Missing task_id. Please reopen from emt3
.'
);
Utils
.
ShowErrorModal
(
'
Select a row first
.'
);
Exit
;
end
;
insertAfterItemNum
:=
0
;
maxItemNum
:=
0
;
if
xdwdsTasks
.
Active
then
begin
xdwdsTasks
.
First
;
while
not
xdwdsTasks
.
Eof
do
begin
if
xdwdsTasksitemNum
.
AsInteger
>
maxItemNum
then
maxItemNum
:=
xdwdsTasksitemNum
.
AsInteger
;
if
xdwdsTaskstaskItemId
.
AsInteger
=
FSelectedTaskItemId
then
begin
insertAfterItemNum
:=
xdwdsTasksitemNum
.
AsInteger
;
Break
;
end
;
xdwdsTasks
.
Next
;
end
;
end
;
if
insertAfterItemNum
>
0
then
newItemNum
:=
insertAfterItemNum
+
1
else
newItemNum
:=
maxItemNum
+
1
;
if
insertAfterItemNum
<=
0
then
begin
Utils
.
ShowErrorModal
(
'Unable to find selected row.'
);
Exit
;
end
;
Result
:=
await
(
AddTaskRowWithInsertAfter
(
insertAfterItemNum
,
insertAfterItemNum
+
1
));
end
;
[
async
]
function
TFTaskItems
.
AddTaskRowWithInsertAfter
(
const
insertAfterItemNum
,
newItemNum
:
Integer
):
Boolean
;
var
response
:
TXDataClientResponse
;
begin
Result
:=
False
;
if
FTaskId
=
''
then
begin
Utils
.
ShowErrorModal
(
'Missing task_id. Please reopen from emt3.'
);
Exit
;
end
;
try
response
:=
await
(
xdwcTasks
.
RawInvokeAsync
(
...
...
@@ -591,6 +645,7 @@ begin
xdwdsTasks
.
Open
;
btnAddRow
.
Enabled
:=
True
;
btnInsertRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
btnDeleteRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
RenderTable
;
...
...
@@ -763,7 +818,7 @@ begin
Th
(
'Status'
)
+
Th
(
'Status Date'
)
+
Th
(
'Form'
)
+
Th
(
'Issue'
)
+
Th
(
'Issue
/To-Do
'
)
+
Th
(
'Notes'
)
+
'</tr></thead><tbody>'
;
...
...
@@ -1150,6 +1205,7 @@ begin
FSelectedTaskItemId
:=
StrToIntDef
(
taskItemIdStr
,
0
);
FSelectedTaskId
:=
StrToIntDef
(
taskIdStr
,
0
);
btnInsertRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
btnDeleteRow
.
Enabled
:=
FSelectedTaskItemId
>
0
;
ApplySelectedRowState
;
...
...
emT3XDataServer/bin/emT3XDataServer.ini
View file @
72262daa
...
...
@@ -2,7 +2,7 @@
MemoLogLevel
=
4
FileLogLevel
=
4
webClientVersion
=
0.8.8
LogFileNum
=
16
0
LogFileNum
=
16
1
[Database]
Server
=
192.168.102.131
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment