Skip to content

Commit 6df2000

Browse files
committed
Add Population Javascript
1 parent 8c2e5a9 commit 6df2000

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

PropertyInspector/PluginActionPI.html

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,67 @@
8686
</div>
8787
</div>
8888

89+
<script>
90+
'use strict';
91+
92+
function populateSelect(selectId, names, savedValue, emptyLabel) {
93+
const select = document.getElementById(selectId);
94+
const current = savedValue !== undefined ? savedValue : select.value;
95+
select.innerHTML = `<option value="">${emptyLabel}</option>`;
96+
(names || []).forEach(name => {
97+
const opt = document.createElement('option');
98+
opt.value = name;
99+
opt.textContent = name;
100+
select.appendChild(opt);
101+
});
102+
if (current) select.value = current;
103+
}
104+
105+
function handlePluginMessage(payload) {
106+
if (!payload) return;
107+
populateSelect('workspaceSelect', payload.WorkspaceNames,
108+
document.getElementById('workspaceName').value, '-- Select Workspace --');
109+
populateSelect('projectSelect', payload.ProjectNames,
110+
document.getElementById('projectName').value, '-- No Project --');
111+
populateSelect('taskSelect', payload.TaskNames,
112+
document.getElementById('taskName').value, '-- No Task --');
113+
}
114+
115+
function syncHidden() {
116+
document.getElementById('workspaceName').value = document.getElementById('workspaceSelect').value;
117+
document.getElementById('projectName').value = document.getElementById('projectSelect').value;
118+
document.getElementById('taskName').value = document.getElementById('taskSelect').value;
119+
}
120+
121+
function onWorkspaceChange() {
122+
document.getElementById('projectName').value = '';
123+
document.getElementById('taskName').value = '';
124+
syncHidden();
125+
setSettings();
126+
}
127+
128+
function onProjectChange() {
129+
document.getElementById('taskName').value = '';
130+
syncHidden();
131+
setSettings();
132+
}
133+
134+
function onTaskChange() {
135+
syncHidden();
136+
setSettings();
137+
}
138+
139+
document.addEventListener('websocketCreate', function () {
140+
const orig = websocket.onmessage;
141+
websocket.onmessage = function (evt) {
142+
const json = JSON.parse(evt.data);
143+
if (json.event === 'sendToPropertyInspector') {
144+
handlePluginMessage(json.payload);
145+
} else {
146+
orig.call(this, evt);
147+
}
148+
};
149+
});
150+
</script>
89151
</body>
90152
</html>

0 commit comments

Comments
 (0)