Minor fixes with register, start on frame edit
This commit is contained in:
parent
141382c499
commit
0aab42f51b
@ -49,7 +49,7 @@ var NO_HISTORY_FRAMES =['980a','98b','981a'];
|
||||
var SYSTEM_FRAMES =['AWgBUkEBR04BQlMBWUkBbgE3AWt0ZXgBbg=='];
|
||||
|
||||
// Our frame object
|
||||
function Frame() {
|
||||
function TexFrame() {
|
||||
this.version=1; // The version of this frame - in case we update functionality and we need to be
|
||||
// backwards compatible
|
||||
this.frame=null; // Frame Number [0-9]+
|
||||
@ -148,7 +148,7 @@ function Frame() {
|
||||
}
|
||||
|
||||
// Load a frame from disk (.tex file)
|
||||
Frame.prototype.load = function(filename) {
|
||||
TexFrame.prototype.load = function(filename) {
|
||||
log(LOG_DEBUG,'Loading frame from: '+filename);
|
||||
|
||||
f = new File(system.mods_dir+'ansitex/text/'+filename+'.tex');
|
||||
@ -187,7 +187,7 @@ Frame.prototype.load = function(filename) {
|
||||
*
|
||||
* @param text
|
||||
*/
|
||||
Frame.prototype.parse = function(text) {
|
||||
TexFrame.prototype.parse = function(text) {
|
||||
var c = 1; // column
|
||||
var r = 2; // row (row 1 is the header)
|
||||
var output = '';
|
||||
|
122
load/edit.js
Normal file
122
load/edit.js
Normal file
@ -0,0 +1,122 @@
|
||||
load("ansiedit.js");
|
||||
load('frame.js');
|
||||
load('tree.js');
|
||||
load('scrollbar.js');
|
||||
load('event-timer.js');
|
||||
load('graphic.js');
|
||||
|
||||
const sauce_lib = load({}, 'sauce_lib.js');
|
||||
if (bbs.mods.avatar_lib) {
|
||||
avatar_lib = bbs.mods.avatar_lib;
|
||||
} else {
|
||||
avatar_lib = load({}, 'avatar_lib.js');
|
||||
}
|
||||
|
||||
var CONTROL_EDIT = '1';
|
||||
|
||||
function edit(fo) {
|
||||
log(LOG_DEBUG,'+ Control EDIT loaded');
|
||||
var complete = false;
|
||||
|
||||
Object.defineProperty(this,'getName', {
|
||||
get: function() {
|
||||
return 'Frame Edit';
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(this,'isComplete', {
|
||||
get: function() {
|
||||
return complete;
|
||||
}
|
||||
});
|
||||
|
||||
const frames = {
|
||||
parent : null,
|
||||
container : null,
|
||||
highlight : null,
|
||||
scrollbar : null
|
||||
};
|
||||
|
||||
owner = '\1h\1RA\1GN\1BS\1YI\1n\1'+'7\1ktex\1'+'0\1n';
|
||||
|
||||
const frame = new Frame(1,1,console.screen_columns,console.screen_rows,BG_BLACK|LIGHTGRAY);
|
||||
frame.gotoxy(1,1);
|
||||
header = '\1n'+owner+' '.repeat(FRAME_HEADER-console.strlen(owner))+'\1n '+
|
||||
'\1W\1H'+fo.page+' '.repeat(FRAME_PAGENUM-fo.page.length)+' '+
|
||||
'\1G\1H'+' Edit';
|
||||
frame.putmsg(header);
|
||||
frame.open();
|
||||
|
||||
var ansiEdit = new ANSIEdit({
|
||||
x: 1,
|
||||
y: 2,
|
||||
width: 80,
|
||||
height: 23,
|
||||
attr: WHITE,
|
||||
//showPosition: true,
|
||||
menuHeading: 'Frame Edit '+fo.page,
|
||||
parentFrame: frame,
|
||||
});
|
||||
|
||||
ansiEdit.open();
|
||||
ansiEdit.menu.addItem('Save', _save);
|
||||
ansiEdit.menu.addItem('Exit', on_exit);
|
||||
ansiEdit.menu.addItem('Save & Exit', save_and_exit);
|
||||
|
||||
x = new Graphic;
|
||||
x.ANSI = fo.content;
|
||||
log(LOG_DEBUG,JSON.stringify(x));
|
||||
|
||||
const bin = x.BIN;
|
||||
var o = 0; // offset into 'bin'
|
||||
for (var yy = 0; yy < 22; yy++) {
|
||||
for (var xx = 0; xx < 80; xx++) {
|
||||
ansiEdit.putChar({
|
||||
x : xx,
|
||||
y : yy,
|
||||
ch : bin.substr(o, 1),
|
||||
attr : bin.substr(o + 1, 1).charCodeAt(0) || BG_BLACK
|
||||
});
|
||||
o = o + 2;
|
||||
}
|
||||
}
|
||||
|
||||
ansiEdit.cycle();
|
||||
frame.cycle();
|
||||
|
||||
this.handle=function(read) {
|
||||
if (! js.terminated && ascii(read) != 27) {
|
||||
|
||||
ansiEdit.getcmd(read);
|
||||
ansiEdit.cycle();
|
||||
frame.cycle();
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
ansiEdit.close();
|
||||
frame.close();
|
||||
complete = true;
|
||||
console.clear(LIGHTGRAY);
|
||||
console.putmsg(fo.render());
|
||||
return '';
|
||||
}
|
||||
|
||||
function _save() {
|
||||
log(LOG_DEBUG, '+ FrameEdit save()');
|
||||
}
|
||||
|
||||
function on_exit() {
|
||||
log(LOG_DEBUG, '+ FrameEdit on_exit()');
|
||||
complete = true;
|
||||
console.clear(LIGHTGRAY);
|
||||
console.putmsg(fo.render());
|
||||
}
|
||||
|
||||
function save_and_exit() {
|
||||
_save();
|
||||
on_exit();
|
||||
}
|
||||
}
|
||||
|
||||
this;
|
@ -11,7 +11,7 @@
|
||||
* + PCODE THe user's postal code
|
||||
*/
|
||||
|
||||
var CONTROL_REGISTER ='1';
|
||||
var CONTROL_REGISTER = '1';
|
||||
var EMAIL_REGEX = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
var cValChars='ACDEFHJKLMNPQRTUVWXY23456789!@$%&';
|
||||
|
||||
@ -21,6 +21,19 @@ function register() {
|
||||
var code = '';
|
||||
var complete = false;
|
||||
|
||||
// Called before processing for a field
|
||||
Object.defineProperty(this, 'getName', {
|
||||
get: function () {
|
||||
return 'Control-Registration';
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(this, 'isComplete', {
|
||||
get: function () {
|
||||
return complete;
|
||||
}
|
||||
});
|
||||
|
||||
this.handle=function(read) {
|
||||
log(LOG_DEBUG,'Control REGISTER handle() start. ('+read+')');
|
||||
log(LOG_DEBUG,'- Field '+cf.fname+'('+JSON.stringify(cf)+')');
|
||||
@ -41,7 +54,7 @@ function register() {
|
||||
return read;
|
||||
}
|
||||
|
||||
// Called before processing for a field
|
||||
// Make sure we got an email
|
||||
this.prefield=function() {
|
||||
log(LOG_DEBUG,'- Field '+cf.fname+'('+JSON.stringify(cf)+')');
|
||||
|
||||
@ -55,14 +68,14 @@ function register() {
|
||||
var name = fo.fieldValue('FULLNAME');
|
||||
|
||||
log(LOG_DEBUG,'- VALIDATE EMAIL TO ('+system.matchuserdata(U_NETMAIL,email)+')');
|
||||
// Make sure we got an email
|
||||
|
||||
// Validate Email hasnt been used
|
||||
// Validate USER_ID hasnt been used
|
||||
if ((email.indexOf('@') === -1) || ! EMAIL_REGEX.test(email) || (system.matchuserdata(U_NETMAIL,email) !== 0)) {
|
||||
sendBaseline('\1n\1h\1RINVAID EMAIL, PLEASE TRY AGAIN *00',false);
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate USER_ID hasnt been used
|
||||
if (! system.check_name(user)) {
|
||||
log(LOG_DEBUG,'Cannot use user_id: ('+user+')');
|
||||
sendBaseline('\1n\1h\1RINVAID USER ID, PLEASE TRY AGAIN *00',false);
|
||||
@ -70,8 +83,9 @@ function register() {
|
||||
}
|
||||
|
||||
var msgbase = new MsgBase('mail');
|
||||
for (var i=0;i<6;i++)
|
||||
code+=cValChars.substr(parseInt(Math.random() * cValChars.length), 1);
|
||||
for (var i=0;i<6;i++) {
|
||||
code += cValChars.substr(parseInt(Math.random()*cValChars.length),1);
|
||||
}
|
||||
|
||||
var hdrs = new Object();
|
||||
hdrs.to=name;
|
||||
@ -92,6 +106,7 @@ function register() {
|
||||
console.pause();
|
||||
msgbase.close();
|
||||
bbs.hangup();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -105,6 +120,7 @@ function register() {
|
||||
bbs.hangup();
|
||||
return;
|
||||
}
|
||||
|
||||
msgbase.close();
|
||||
}
|
||||
|
||||
@ -143,6 +159,7 @@ function register() {
|
||||
user.netmail = fo.fieldValue('EMAIL');
|
||||
bbs.user_sync();
|
||||
bbs.logon();
|
||||
|
||||
log(LOG_INFO,"Created user record #"+user.number+": "+user.alias);
|
||||
|
||||
action = ACTION_EXIT;
|
||||
@ -154,23 +171,12 @@ function register() {
|
||||
user.comment = 'Initial login failed!';
|
||||
newuser.settings |= USER_DELETED;
|
||||
delete newuser;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return 'processed';
|
||||
}
|
||||
|
||||
Object.defineProperty(this,'getName', {
|
||||
get: function() {
|
||||
return 'Control-Registration';
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(this,'isComplete', {
|
||||
get: function() {
|
||||
return complete;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this;
|
10
main.js
10
main.js
@ -80,8 +80,9 @@ while(bbs.online) {
|
||||
log(LOG_DEBUG,'CONTROL RETURN: ['+read+'] ('+cc.isComplete+')');
|
||||
|
||||
if (cc.isComplete) {
|
||||
control = control.pop();
|
||||
control.pop();
|
||||
log(LOG_DEBUG,'CONTROL COMPLETE: ['+read+'] ('+control.length+')');
|
||||
cc = null;
|
||||
}
|
||||
|
||||
log(LOG_DEBUG,'CONTROL END: ['+read+']');
|
||||
@ -238,7 +239,10 @@ while(bbs.online) {
|
||||
|
||||
// Edit frame
|
||||
} else if (cmd == '04') {
|
||||
sendBaseline(ERR_NOT_IMPLEMENTED,false);
|
||||
mode = action = false;
|
||||
|
||||
require('ansitex/load/edit.js','CONTROL_EDIT');
|
||||
control.push(new edit(fo));
|
||||
|
||||
} else {
|
||||
next_page = { frame: cmd };
|
||||
@ -632,7 +636,7 @@ while(bbs.online) {
|
||||
|
||||
if (next_page !== null) {
|
||||
current = fo;
|
||||
fo = new Frame();
|
||||
fo = new TexFrame();
|
||||
fo.load(pageStr(next_page));
|
||||
|
||||
if (fo.page == null) {
|
||||
|
Loading…
Reference in New Issue
Block a user