|
12 | 12 | fetchUsers,
|
13 | 13 | updateSite,
|
14 | 14 | addSiteBuildTask,
|
| 15 | + updateSiteBuildTask, |
15 | 16 | removeBuildTask,
|
16 | 17 | } from '../lib/api';
|
17 | 18 | import {
|
|
33 | 34 | import { destroySite } from '../flows';
|
34 | 35 | import { selectSiteDomains, stateColor } from '../lib/utils';
|
35 | 36 | import SiteFormBuildTaskType from '../components/SiteFormBuildTaskType.svelte';
|
| 37 | + import SiteFormUpdateBuildTaskType from '../components/SiteFormUpdateBuildTaskType.svelte'; |
36 | 38 |
|
37 | 39 | const { id } = $router.params;
|
38 | 40 | $: sitePromise = fetchSite(id);
|
|
44 | 46 | $: usersPromise = fetchUsers({ site: id });
|
45 | 47 | $: uevsPromise = fetchUserEnvironmentVariables({ site: id });
|
46 | 48 |
|
| 49 | + const initEditedBuildTask = { |
| 50 | + isEditing: false, |
| 51 | + initialRunDay: null, |
| 52 | + data: null, |
| 53 | + }; |
| 54 | +
|
| 55 | + let editedBuildTask = initEditedBuildTask; |
| 56 | +
|
47 | 57 | async function handleOrganizationSubmit(organizationId) {
|
48 | 58 | return updateSite(id, { organizationId });
|
49 | 59 | }
|
|
78 | 88 | notification.setError(`Site webhook create error: ${error.message}`);
|
79 | 89 | }
|
80 | 90 |
|
81 |
| - async function handleSiteBuildTaskSubmit(buildTaskTypeId, branch) { |
82 |
| - return addSiteBuildTask(id, { buildTaskTypeId, branch }); |
| 91 | + async function handleSiteBuildTaskSubmit( |
| 92 | + buildTaskTypeId, |
| 93 | + branch, |
| 94 | + runDay = null, |
| 95 | + ) { |
| 96 | + return addSiteBuildTask(id, { buildTaskTypeId, branch, runDay }); |
83 | 97 | }
|
84 | 98 |
|
85 | 99 | async function handleSiteBuildTaskSuccess() {
|
|
91 | 105 | notification.setError('Build task update error');
|
92 | 106 | }
|
93 | 107 |
|
| 108 | + async function handleCloseEditSiteBuildTask() { |
| 109 | + editedBuildTask = initEditedBuildTask; |
| 110 | + } |
| 111 | +
|
| 112 | + async function handleOpenEditSiteBuildTask(data) { |
| 113 | + editedBuildTask = { |
| 114 | + isEditing: true, |
| 115 | + initialRunDay: data?.metadata?.runDay, |
| 116 | + data, |
| 117 | + }; |
| 118 | + } |
| 119 | +
|
| 120 | + async function handleEditSiteBuildTaskSubmit(sbtId, runDay = null) { |
| 121 | + return updateSiteBuildTask(sbtId, { runDay }); |
| 122 | + } |
| 123 | +
|
| 124 | + async function handleEditSiteBuildTaskSuccess() { |
| 125 | + sitePromise = fetchSite(id); |
| 126 | + notification.setSuccess('Build task edited successfully'); |
| 127 | + editedBuildTask = initEditedBuildTask; |
| 128 | + } |
| 129 | +
|
94 | 130 | async function handleRemoveBuildTask(sbt) {
|
95 | 131 | await removeBuildTask(sbt.id);
|
96 | 132 | sitePromise = fetchSite(id);
|
|
166 | 202 | </Await>
|
167 | 203 | </AccordionContent>
|
168 | 204 | <AccordionContent title="Domains">
|
169 |
| - <DataTable |
170 |
| - data={selectSiteDomains(site)} |
171 |
| - borderless={true} |
172 |
| - > |
| 205 | + <DataTable data={selectSiteDomains(site)} borderless={true}> |
173 | 206 | <tr slot="header">
|
174 | 207 | <th>Domain Names</th>
|
175 | 208 | <th>Context</th>
|
|
236 | 269 | <th>Build Task Type</th>
|
237 | 270 | <th>Type Id</th>
|
238 | 271 | <th>Branch</th>
|
239 |
| - <th>Metadata</th> |
| 272 | + <th>Run Day</th> |
| 273 | + <th>Rules</th> |
240 | 274 | <th>Created At</th>
|
| 275 | + <th>Edit</th> |
241 | 276 | <th>Remove</th>
|
242 | 277 | </tr>
|
243 | 278 | <tr slot="item" let:item={sbt}>
|
244 | 279 | <td>{sbt.id}</td>
|
245 | 280 | <td>{sbt.BuildTaskType.name}</td>
|
246 | 281 | <td>{sbt.buildTaskTypeId}</td>
|
247 | 282 | <td>{sbt.branch}</td>
|
248 |
| - <td>{JSON.stringify(sbt.metadata)}</td> |
| 283 | + <td> |
| 284 | + {sbt.metadata?.runDay} |
| 285 | + </td> |
| 286 | + <td>{JSON.stringify(sbt.metadata?.rules)}</td> |
249 | 287 | <td>{sbt.createdAt}</td>
|
| 288 | + <td> |
| 289 | + <input |
| 290 | + class="usa-button" |
| 291 | + type="button" |
| 292 | + value="Edit" |
| 293 | + on:click|preventDefault={() => handleOpenEditSiteBuildTask(sbt)} |
| 294 | + /> |
| 295 | + </td> |
250 | 296 | <td>
|
251 | 297 | <input
|
252 | 298 | class="usa-button usa-button--base"
|
253 | 299 | type="reset"
|
254 | 300 | value="Remove"
|
255 |
| - on:click|preventDefault={() => handleRemoveBuildTask(sbt)} /></td> |
| 301 | + on:click|preventDefault={() => handleRemoveBuildTask(sbt)} |
| 302 | + /> |
| 303 | + </td> |
256 | 304 | </tr>
|
257 | 305 | <p slot="empty">No build tasks registered</p>
|
258 | 306 | </DataTable>
|
|
271 | 319 | </Accordion>
|
272 | 320 | </Await>
|
273 | 321 | </GridContainer>
|
| 322 | +
|
| 323 | +{#if editedBuildTask.isEditing} |
| 324 | + <SiteFormUpdateBuildTaskType |
| 325 | + isEditing={editedBuildTask.site} |
| 326 | + branch={editedBuildTask.data?.branch} |
| 327 | + buildTaskName={editedBuildTask?.data?.BuildTaskType?.name} |
| 328 | + id={editedBuildTask?.data?.id} |
| 329 | + initialRunDay={editedBuildTask.initialRunDay} |
| 330 | + runDay={editedBuildTask.data?.metadata?.runDay} |
| 331 | + closeModal={handleCloseEditSiteBuildTask} |
| 332 | + onSubmit={handleEditSiteBuildTaskSubmit} |
| 333 | + onSuccess={handleEditSiteBuildTaskSuccess} |
| 334 | + onFailure={handleSiteBuildTaskFailure} |
| 335 | + /> |
| 336 | +{/if} |
0 commit comments