83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
/**
|
|
* This control renders echomail
|
|
*
|
|
* The system echomail prefix is *1, with echomail pages built from the following page number:
|
|
* zzzzEEpppp, where:
|
|
* + zzzz is the zone, zero padded, the zone identifies the message groups
|
|
* + EE is the echomail area, ie: the message areas
|
|
* + pppp is the message number, identified by the tag attached to the message header
|
|
*
|
|
* (Tags are added to the messages via an external process.)
|
|
*/
|
|
|
|
// All controls need a unique variable so that require() can know if the control has already been loaded
|
|
var CONTROL_ECHOMAIL = '1';
|
|
|
|
// Optional debug message so we can see that it is loaded
|
|
log(LOG_DEBUG,'+ Control ECHOMAIL loaded');
|
|
|
|
// A unique method name (same as the control name that is called as new method() on initialisation
|
|
function echomail(session,pagenum) {
|
|
log(LOG_DEBUG,' - Loading echomail page:'+pagenum);
|
|
|
|
// has this control completed
|
|
var complete = false;
|
|
var ready = false;
|
|
|
|
function init(session,pagenum) {
|
|
log(LOG_DEBUG,' - Echomail init('+pagenum+')');
|
|
|
|
ready = session.loadMessage(pagenum);
|
|
}
|
|
|
|
Object.defineProperty(this, 'getName', {
|
|
get: function () {
|
|
return 'ECHOMAIL';
|
|
}
|
|
});
|
|
|
|
Object.defineProperty(this, 'isComplete', {
|
|
get: function () {
|
|
return complete;
|
|
}
|
|
});
|
|
|
|
// Handle the keyboard responses as we receive them.
|
|
this.handle = function(read) {
|
|
log(LOG_DEBUG,'Control ECHOMAIL handle() start. ('+read+')');
|
|
|
|
switch(read) {
|
|
case KEY_DOWN:
|
|
session.page.scroll(0,1);
|
|
read = '';
|
|
break;
|
|
|
|
case KEY_UP:
|
|
session.page.scroll(0,-1);
|
|
read = '';
|
|
break;
|
|
}
|
|
|
|
session.render();
|
|
|
|
return read;
|
|
}
|
|
|
|
/**
|
|
* ready() is called after a control has been initialised, to determine if the control will take the input
|
|
* or if it is unable to do so
|
|
*
|
|
* If ready() returns:
|
|
* + false, the main programming will return ERR_ROUTE to the user,
|
|
* + true, the main programming will continue to load the frame, and then pass input to on the next loop handle()
|
|
*
|
|
* @returns {boolean}
|
|
*/
|
|
this.ready = function() {
|
|
log(LOG_DEBUG,'echomail:ready = '+JSON.stringify(ready));
|
|
return ready;
|
|
}
|
|
|
|
init.apply(this,arguments);
|
|
}
|