Move load(), parse() into the object. Edit frame now saves.
This commit is contained in:
parent
bfa0853d75
commit
2b5ecf6c75
104
load/defs.js
104
load/defs.js
@ -96,9 +96,9 @@ function TexFrame() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((this.type == FRAME_TYPE_LOGIN) || (this.type == FRAME_TYPE_RESPONSE)) {
|
if ((this.type == FRAME_TYPE_LOGIN) || (this.type == FRAME_TYPE_RESPONSE)) {
|
||||||
return header+this.parse(this.content);
|
return header+this.parse(base64_decode(this.content));
|
||||||
} else {
|
} else {
|
||||||
return header+this.content;
|
return header+base64_decode(this.content);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -113,44 +113,8 @@ function TexFrame() {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.defineProperty(this,'page', {
|
// Load a frame from disk (.tex file)
|
||||||
get: function() {
|
this.load = function(filename) {
|
||||||
if (this.frame == null || this.index == null) return null;
|
|
||||||
return this.frame+this.index;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(this,'fields', {
|
|
||||||
get: function() {
|
|
||||||
return this.frame_fields;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(this,'accessible',{
|
|
||||||
get: function() {
|
|
||||||
log(LOG_DEBUG,'- Checking if user can access frame: '+this.page);
|
|
||||||
log(LOG_DEBUG,' - User: '+JSON.stringify(user.number));
|
|
||||||
log(LOG_DEBUG,' - Frame Owner: '+JSON.stringify(this.owner)+', System Frame: '+(SYSTEM_FRAMES.indexOf(this.owner)>-1));
|
|
||||||
|
|
||||||
system_frame = (SYSTEM_FRAMES.indexOf(this.owner)>-1);
|
|
||||||
|
|
||||||
// user.number 0 is unidentified user.
|
|
||||||
if (user.number) {
|
|
||||||
return (
|
|
||||||
(this.isAccessible && this.isPublic) ||
|
|
||||||
(this.isAccessible && ! this.isPublic && user.isMember) ||
|
|
||||||
(user.isOwner)
|
|
||||||
);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return (system_frame && this.isPublic && this.isAccessible);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load a frame from disk (.tex file)
|
|
||||||
TexFrame.prototype.load = function(filename) {
|
|
||||||
log(LOG_DEBUG,'Loading frame from: '+filename);
|
log(LOG_DEBUG,'Loading frame from: '+filename);
|
||||||
|
|
||||||
f = new File(system.mods_dir+'ansitex/text/'+filename+'.tex');
|
f = new File(system.mods_dir+'ansitex/text/'+filename+'.tex');
|
||||||
@ -165,7 +129,7 @@ TexFrame.prototype.load = function(filename) {
|
|||||||
this[property] = load[property];
|
this[property] = load[property];
|
||||||
}
|
}
|
||||||
|
|
||||||
this.content = base64_decode(this.content);
|
//this.content = base64_decode(this.content);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log(LOG_ERROR,'Frame error: '+error);
|
log(LOG_ERROR,'Frame error: '+error);
|
||||||
@ -173,9 +137,9 @@ TexFrame.prototype.load = function(filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log(LOG_DEBUG,'Loaded frame: ['+this.frame+']['+this.index+'] ('+this.page+')');
|
log(LOG_DEBUG,'Loaded frame: ['+this.frame+']['+this.index+'] ('+this.page+')');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse the page text, and return the frame as 2 arrays:
|
* Parse the page text, and return the frame as 2 arrays:
|
||||||
* + First array is all the characters and the position on the frame
|
* + First array is all the characters and the position on the frame
|
||||||
* + Second array is the array of the control codes that changes the color of the character
|
* + Second array is the array of the control codes that changes the color of the character
|
||||||
@ -189,7 +153,7 @@ TexFrame.prototype.load = function(filename) {
|
|||||||
*
|
*
|
||||||
* @param text
|
* @param text
|
||||||
*/
|
*/
|
||||||
TexFrame.prototype.parse = function(text) {
|
this.parse = function(text) {
|
||||||
var c = 1; // column
|
var c = 1; // column
|
||||||
var r = 2; // row (row 1 is the header)
|
var r = 2; // row (row 1 is the header)
|
||||||
var output = '';
|
var output = '';
|
||||||
@ -411,6 +375,56 @@ TexFrame.prototype.parse = function(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.save=function() {
|
||||||
|
file = system.mods_dir+'ansitex/text/'+this.page+'.tex';
|
||||||
|
w = new File(file);
|
||||||
|
if (! w.open('w')) {
|
||||||
|
log(LOG_ERROR,'! ERROR: Unable to create TEX file for '+this.page);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
w.write(JSON.stringify(this));
|
||||||
|
w.close();
|
||||||
|
|
||||||
|
log(LOG_DEBUG,'Saved file: '+this.page+'.tex');
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(this,'page', {
|
||||||
|
get: function() {
|
||||||
|
if (this.frame == null || this.index == null) return null;
|
||||||
|
return this.frame+this.index;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(this,'fields', {
|
||||||
|
get: function() {
|
||||||
|
return this.frame_fields;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(this,'accessible',{
|
||||||
|
get: function() {
|
||||||
|
log(LOG_DEBUG,'- Checking if user can access frame: '+this.page);
|
||||||
|
log(LOG_DEBUG,' - User: '+JSON.stringify(user.number));
|
||||||
|
log(LOG_DEBUG,' - Frame Owner: '+JSON.stringify(this.owner)+', System Frame: '+(SYSTEM_FRAMES.indexOf(this.owner)>-1));
|
||||||
|
|
||||||
|
system_frame = (SYSTEM_FRAMES.indexOf(this.owner)>-1);
|
||||||
|
|
||||||
|
// user.number 0 is unidentified user.
|
||||||
|
if (user.number) {
|
||||||
|
return (
|
||||||
|
(this.isAccessible && this.isPublic) ||
|
||||||
|
(this.isAccessible && ! this.isPublic && user.isMember) ||
|
||||||
|
(user.isOwner)
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return (system_frame && this.isPublic && this.isAccessible);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this;
|
this;
|
@ -65,7 +65,7 @@ function edit(fo) {
|
|||||||
editor.menu.addItem('Save & Exit', save_and_exit);
|
editor.menu.addItem('Save & Exit', save_and_exit);
|
||||||
|
|
||||||
x = new Graphic;
|
x = new Graphic;
|
||||||
x.ANSI = fo.content;
|
x.ANSI = base64_decode(fo.content);
|
||||||
log(LOG_DEBUG,JSON.stringify(x));
|
log(LOG_DEBUG,JSON.stringify(x));
|
||||||
|
|
||||||
const bin = x.BIN;
|
const bin = x.BIN;
|
||||||
@ -99,7 +99,8 @@ function edit(fo) {
|
|||||||
frame.close();
|
frame.close();
|
||||||
complete = true;
|
complete = true;
|
||||||
console.clear(LIGHTGRAY);
|
console.clear(LIGHTGRAY);
|
||||||
fo.content = editor.exportAnsi().join('');
|
fo.content = base64_encode(editor.exportAnsi().join(''));
|
||||||
|
fo.save();
|
||||||
console.putmsg(fo.render());
|
console.putmsg(fo.render());
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user