Skip to content

Commit d2097db

Browse files
committed
added onOptionsAvailable callback for javascript for
1 parent 99e65ec commit d2097db

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

javascript/ui.js

+1
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ onAfterUiUpdate(function() {
299299
var jsdata = textarea.value;
300300
opts = JSON.parse(jsdata);
301301

302+
executeCallbacks(optionsAvailableCallbacks); /*global optionsAvailableCallbacks*/
302303
executeCallbacks(optionsChangedCallbacks); /*global optionsChangedCallbacks*/
303304

304305
Object.defineProperty(textarea, 'value', {

script.js

+15
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ var uiAfterUpdateCallbacks = [];
2929
var uiLoadedCallbacks = [];
3030
var uiTabChangeCallbacks = [];
3131
var optionsChangedCallbacks = [];
32+
var optionsAvailableCallbacks = [];
3233
var uiAfterUpdateTimeout = null;
3334
var uiCurrentTab = null;
3435

@@ -77,6 +78,20 @@ function onOptionsChanged(callback) {
7778
optionsChangedCallbacks.push(callback);
7879
}
7980

81+
/**
82+
* Register callback to be called when the options (in opts global variable) are available.
83+
* The callback receives no arguments.
84+
* If you register the callback after the options are available, it's just immediately called.
85+
*/
86+
function onOptionsAvailable(callback) {
87+
if (Object.keys(opts).length != 0) {
88+
callback();
89+
return;
90+
}
91+
92+
optionsAvailableCallbacks.push(callback);
93+
}
94+
8095
function executeCallbacks(queue, arg) {
8196
for (const callback of queue) {
8297
try {

0 commit comments

Comments
 (0)