Skip to content

Commit 06ed862

Browse files
committed
deploy and track
1 parent dabde1c commit 06ed862

6 files changed

Lines changed: 47 additions & 4 deletions

File tree

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,3 @@ Code: Apache License 2.0 — see [LICENSE](./LICENSE)
8484
Content (documentation, images, transcriptions, and other non-code assets): Creative Commons Attribution 4.0 International — see [LICENSE-CONTENT.md](./LICENSE-CONTENT.md)
8585

8686
If you redistribute or modify this project, please include these license files and preserve copyright notices.
87-

api/Project.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ export default class Project {
8989

9090
async fetch() {
9191
const AUTH_TOKEN = TPEN.getAuthorization() ?? TPEN.login()
92+
// [tpen-race B0] Project.fetch() invoked. Issue #541 diagnostic.
93+
console.log(`%c[tpen-race B0]%c Project.fetch() invoked for ${this._id} @${performance.now().toFixed(1)}ms`, 'color:#0066cc;font-weight:bold', 'color:inherit')
9294
try {
9395
return await fetch(`${TPEN.servicesURL}/project/${this._id}`, {
9496
method: 'GET',
@@ -106,6 +108,8 @@ export default class Project {
106108
Object.assign(this, data)
107109
this.interfaces = this.interfaces?.[this.#getInterfacesNamespace()] ?? this.interfaces?.["*"]
108110
this.#isLoaded = true
111+
// [tpen-race B] About to dispatch tpen-project-loaded. Issue #541 diagnostic.
112+
console.log(`%c[tpen-race B]%c dispatching tpen-project-loaded for ${this._id} @${performance.now().toFixed(1)}ms`, 'color:#0066cc;font-weight:bold', 'color:inherit')
109113
eventDispatcher.dispatch("tpen-project-loaded", this)
110114
return this
111115
})

api/TPEN.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,11 @@ class Tpen {
7070
})
7171

7272
if (this.screen.projectInQuery) {
73+
// [tpen-race A] TPEN constructor schedules the project fetch. Issue #541 diagnostic.
74+
console.log(`%c[tpen-race A]%c fetch-scheduled in TPEN ctor; projectInQuery=${this.screen.projectInQuery} @${performance.now().toFixed(1)}ms`, 'color:#e07b00;font-weight:bold', 'color:inherit')
7375
try {
7476
import('./Project.js').then(module => {
77+
console.log(`%c[tpen-race A2]%c Project.js dynamic import resolved; calling fetch() @${performance.now().toFixed(1)}ms`, 'color:#e07b00;font-weight:bold', 'color:inherit')
7578
new module.default(this.screen.projectInQuery).fetch()
7679
})
7780
} catch (error) {

interfaces/manage-project/index.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,19 @@ <h2 slot="header">Export & Links</h2>
8383
import CheckPermissions from '../../components/check-permissions/checkPermissions.js'
8484
import TPEN from '../../api/TPEN.js'
8585

86+
// [tpen-race C] /project/manage inline-script about to register listener. Issue #541 diagnostic.
87+
const _alreadyLoaded = !!TPEN.activeProject?._createdAt
88+
console.log(`%c[tpen-race C]%c /project/manage inline-script registering tpen-project-loaded listener; activeProject._createdAt=${_alreadyLoaded ? TPEN.activeProject._createdAt : 'UNSET'} @${performance.now().toFixed(1)}ms`, _alreadyLoaded ? 'color:#cc0000;font-weight:bold' : 'color:#008800;font-weight:bold', 'color:inherit')
89+
let _listenerFired = false
90+
setTimeout(() => {
91+
if (!_listenerFired) {
92+
console.log(`%c[tpen-race !]%c /project/manage inline LISTENER NEVER FIRED — race lost @${performance.now().toFixed(1)}ms`, 'color:#fff;background:#cc0000;font-weight:bold;padding:2px 4px', 'color:inherit')
93+
}
94+
}, 4000)
95+
8696
TPEN.eventDispatcher.on('tpen-project-loaded', ev => {
97+
_listenerFired = true
98+
console.log(`%c[tpen-race D]%c /project/manage inline listener fired @${performance.now().toFixed(1)}ms`, 'color:#008800;font-weight:bold', 'color:inherit')
8799
const goParse = document.getElementById("goParse")
88100
const goTranscribe = document.getElementById("goTranscribe")
89101
if (goParse

interfaces/manage-project/index.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,20 @@ import { confirmAction } from "../../utilities/confirmAction.js"
1313
const container = document.body
1414
TPEN.attachAuthentication(container)
1515

16+
// [tpen-race C] manage-project/index.js about to register listener. Issue #541 diagnostic.
17+
const _alreadyLoaded = !!TPEN.activeProject?._createdAt
18+
console.log(`%c[tpen-race C]%c manage-project/index.js registering tpen-project-loaded listener; activeProject._createdAt=${_alreadyLoaded ? TPEN.activeProject._createdAt : 'UNSET'} @${performance.now().toFixed(1)}ms`, _alreadyLoaded ? 'color:#cc0000;font-weight:bold' : 'color:#008800;font-weight:bold', 'color:inherit')
19+
let _mpListenerFired = false
20+
setTimeout(() => {
21+
if (!_mpListenerFired) {
22+
console.log(`%c[tpen-race !]%c manage-project/index.js LISTENER NEVER FIRED — race lost @${performance.now().toFixed(1)}ms`, 'color:#fff;background:#cc0000;font-weight:bold;padding:2px 4px', 'color:inherit')
23+
}
24+
}, 4000)
25+
1626
// Single consolidated listener for project loaded event
1727
TPEN.eventDispatcher.on('tpen-project-loaded', () => {
28+
_mpListenerFired = true
29+
console.log(`%c[tpen-race D]%c manage-project/index.js listener fired @${performance.now().toFixed(1)}ms`, 'color:#008800;font-weight:bold', 'color:inherit')
1830
const projectID = TPEN.screen.projectInQuery
1931

2032
// Set href for navigation links

interfaces/project/index.html

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,22 @@ <h2 slot="header">Project Details <a id="projectManagementBtn" title="Manage Pro
9393
import TPEN from '../../api/TPEN.js'
9494
import CheckPermissions from '../../components/check-permissions/checkPermissions.js'
9595

96+
// [tpen-race C] /project inline-script about to register listener. Issue #541 diagnostic.
97+
const _alreadyLoaded = !!TPEN.activeProject?._createdAt
98+
console.log(`%c[tpen-race C]%c /project inline-script registering tpen-project-loaded listener; activeProject._createdAt=${_alreadyLoaded ? TPEN.activeProject._createdAt : 'UNSET'} @${performance.now().toFixed(1)}ms`, _alreadyLoaded ? 'color:#cc0000;font-weight:bold' : 'color:#008800;font-weight:bold', 'color:inherit')
99+
let _listenerFired = false
100+
96101
TPEN.eventDispatcher.on('tpen-project-loaded', (ev) => {
102+
_listenerFired = true
103+
console.log(`%c[tpen-race D]%c /project listener fired @${performance.now().toFixed(1)}ms`, 'color:#008800;font-weight:bold', 'color:inherit')
97104
const goParse = document.getElementById("goParse")
98105
const goTranscribe = document.getElementById("goTranscribe")
99106
const leaveProject = document.getElementById("leaveProject")
100107
if (leaveProject) {
101108
leaveProject.href = `/project/leave?projectID=${ev.detail._id}`
102109
}
103-
if (goParse &&
104-
CheckPermissions.checkEditAccess("LINE", "SELECTOR") &&
110+
if (goParse &&
111+
CheckPermissions.checkEditAccess("LINE", "SELECTOR") &&
105112
CheckPermissions.checkCreateAccess("LINE", "SELECTOR")) {
106113
goParse.setAttribute("href", `/annotator?projectID=${ev.detail._id}`)
107114
goParse.hidden = false
@@ -119,6 +126,12 @@ <h2 slot="header">Project Details <a id="projectManagementBtn" title="Manage Pro
119126
}
120127
}
121128
})
122-
129+
130+
// [tpen-race !] Detect listener-never-fired (i.e. race lost). Issue #541 diagnostic.
131+
setTimeout(() => {
132+
if (!_listenerFired) {
133+
console.log(`%c[tpen-race !]%c /project LISTENER NEVER FIRED — race lost (event dispatched before listener registered) @${performance.now().toFixed(1)}ms`, 'color:#fff;background:#cc0000;font-weight:bold;padding:2px 4px', 'color:inherit')
134+
}
135+
}, 4000)
123136
</script>
124137
</html>

0 commit comments

Comments
 (0)