Added core.progress

// core.progress returns an object with the following properties
//   total_blocks: the number of total blocks in the experiment
//  total_trials: the number of total trials in the experiment
//  current_trial_global: the current trial number in global terms
//      i.e. if each block has 20 trials and the experiment is
//     currently in block 2 trial 10, this has a value of 30.
//  current_trial_local: the current trial number within the block.
//  current_block: the current block number.

Useful for showing user progress through the experiment. Planning to add
an option to show a progress bar in the future.
This commit is contained in:
Josh de Leeuw 2012-07-17 17:51:17 -04:00
parent b8a72862cf
commit b33ab88b22

View File

@ -37,25 +37,11 @@
DOM_target = $this; DOM_target = $this;
run(); run();
/*
* load scripts dynamically??
*
*
// load plugin script files
var scripts_loaded = 0;
// load all of the plugins that are defined in the opts["plugins"]
for(var j = 0; j < opts["plugins"].length; j++)
{
$.getScript(opts["plugins"][j]["src"], function(){
scripts_loaded++;
if(scripts_loaded==opts["plugins"].length) {
intialized = true;
run();
}
});
}*/
} }
// core.data returns all of the data objects for each block as an array
// where core.data[0] = data object from block 0, etc...
core.data = function(){ core.data = function(){
var all_data = []; var all_data = [];
for(var i=0;i<exp_blocks.length;i++) for(var i=0;i<exp_blocks.length;i++)
@ -65,6 +51,35 @@
return all_data; return all_data;
} }
// core.progress returns an object with the following properties
// total_blocks: the number of total blocks in the experiment
// total_trials: the number of total trials in the experiment
// current_trial_global: the current trial number in global terms
// i.e. if each block has 20 trials and the experiment is
// currently in block 2 trial 10, this has a value of 30.
// current_trial_local: the current trial number within the block.
// current_block: the current block number.
core.progress = function(){
var total_trials = 0;
for(var i=0; i<exp_blocks.length; i++) { total_trials += exp_blocks[i].num_trials; }
var current_trial_global = 0;
for(var i=0; i<curr_block; i++) { current_trial_global += exp_blocks[i].num_trials; }
current_trial_global += exp_blocks[curr_block].trial_idx;
var obj = {
"total_blocks": exp_blocks.length,
"total_trials": total_trials,
"current_trial_global": current_trial_global,
"current_trial_local": exp_blocks[curr_block].trial_idx,
"current_block": curr_block
};
return obj;
}
// //
// private functions // // private functions //
// //
@ -108,7 +123,7 @@
next: function() { next: function() {
this.trial_idx = this.trial_idx+1; this.trial_idx = this.trial_idx+1;
curr_trial = trial_list[this.trial_idx]; var curr_trial = trial_list[this.trial_idx];
if ( typeof curr_trial == "undefined"){ if ( typeof curr_trial == "undefined"){
return this.done(); return this.done();
@ -117,7 +132,9 @@
do_trial(this, curr_trial); do_trial(this, curr_trial);
}, },
done: nextBlock done: nextBlock,
num_trials: trials_list.length
} }
return block; return block;