Skip to content

Commit f349dc3

Browse files
authored
Merge pull request #217 from labmlai/front-error-handle
only send required data when editing runs
2 parents ceb0c66 + 62d15d1 commit f349dc3

File tree

5 files changed

+41
-6
lines changed

5 files changed

+41
-6
lines changed

app/server/labml_app/handlers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ async def edit_run(request: Request, run_uuid: str, token: Optional[str] = None)
285285
data = await request.json()
286286
r.edit_run(data)
287287
else:
288-
errors.append({'edit_run': 'invalid run uuid'})
288+
raise Exception("Invalid Run UUID")
289289

290290
return {'errors': errors}
291291

app/ui/src/analyses/experiments/configs/view.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,14 @@ class RunConfigsView extends ScreenView {
121121
this.save.disabled = true
122122
this.save.loading = true
123123
this.configsChanged = false
124-
await CACHE.getRun(this.uuid).setRun(this.run)
124+
125+
let data = {
126+
'favourite_configs': this.run.favourite_configs,
127+
'selected_configs': this.run.selected_configs
128+
}
129+
130+
await CACHE.getRun(this.uuid).updateRunData(data)
131+
await CACHE.getRunsList().localUpdateRun(this.run)
125132
} catch (e) {
126133
this.userMessage.networkError(e, "Failed to save configurations")
127134
this.save.disabled = false

app/ui/src/analyses/experiments/run_header/view.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,16 @@ class RunHeaderView extends ScreenView {
290290
if (this.noteField.getInput()) {
291291
this.run.note = this.noteField.getInput()
292292
}
293+
294+
let data = {
295+
'name': this.run.name,
296+
'comment': this.run.comment,
297+
'note': this.run.note
298+
}
299+
293300
try {
294-
await this.runCache.setRun(this.run)
301+
await this.runCache.updateRunData(data)
302+
await CACHE.getRunsList().localUpdateRun(this.run)
295303
await this._render()
296304
this.editStatus = EditStatus.NOCHANGE
297305
} catch (e) {

app/ui/src/cache/cache.ts

+22-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {AnalysisPreferenceModel, ComparisonPreferenceModel} from "../models/pref
77
import {SessionsList} from '../models/session_list'
88
import {Session} from '../models/session'
99
import {ProcessData} from "../analyses/sessions/process/types"
10+
import {Config} from "../models/config"
1011

1112
const RELOAD_TIMEOUT = 60 * 1000
1213
const FORCE_RELOAD_TIMEOUT = 5 * 1000
@@ -161,6 +162,25 @@ export class RunsListCache extends CacheObject<RunsList> {
161162
await NETWORK.claimRun(run.run_uuid)
162163
this.invalidate_cache()
163164
}
165+
166+
async localUpdateRun(run: Run) {
167+
if (this.data == null) {
168+
return
169+
}
170+
171+
for (let runItem of this.data.runs) {
172+
if (runItem.run_uuid == run.run_uuid) {
173+
runItem.name = run.name
174+
runItem.comment = run.comment
175+
runItem.favorite_configs = []
176+
for (let c of run.configs) {
177+
if (run.favourite_configs.includes(c.name)) {
178+
runItem.favorite_configs.push(new Config(c))
179+
}
180+
}
181+
}
182+
}
183+
}
164184
}
165185

166186
export class SessionsListCache extends CacheObject<SessionsList> {
@@ -230,8 +250,8 @@ export class RunCache extends CacheObject<Run> {
230250
return this.data
231251
}
232252

233-
async setRun(run: Run): Promise<void> {
234-
await NETWORK.setRun(this.uuid, run)
253+
async updateRunData(data: Record<string, any>): Promise<void> {
254+
await NETWORK.updateRunData(this.uuid, data)
235255
}
236256
}
237257

app/ui/src/network.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Network {
2121
return this.sendHttpRequest('GET', `/run/${runUUID}`)['promise']
2222
}
2323

24-
async setRun(runUUID: string, data: object): Promise<any> {
24+
async updateRunData(runUUID: string, data: object): Promise<any> {
2525
return this.sendHttpRequest('POST', `/run/${runUUID}`, data)['promise']
2626
}
2727

0 commit comments

Comments
 (0)