* Various cleanup + utility methods
This commit is contained in:
parent
d242546458
commit
f2388ceed1
24
core/art.js
24
core/art.js
|
@ -368,26 +368,22 @@ function defaultEofFromExtension(ext) {
|
||||||
// cb(err, mci)
|
// cb(err, mci)
|
||||||
|
|
||||||
// :TODO: display({ art : art, client : client, ...}, cb)
|
// :TODO: display({ art : art, client : client, ...}, cb)
|
||||||
function display(art, options, cb) {
|
function display(options, cb) {
|
||||||
if(!art || 0 === art.length) {
|
assert(
|
||||||
cb(new Error('Missing or empty art'));
|
'undefined' !== typeof options &&
|
||||||
return;
|
'undefined' !== typeof options.client &&
|
||||||
}
|
'undefined' !== typeof options.art,
|
||||||
|
'Missing required options');
|
||||||
|
|
||||||
if('undefined' === typeof options) {
|
if(0 === options.art.length) {
|
||||||
cb(new Error('Missing options'));
|
cb(new Error('Empty art'));
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if('undefined' === typeof options.client) {
|
|
||||||
cb(new Error('Missing client in options'));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var cancelKeys = miscUtil.valueWithDefault(options.cancelKeys, []);
|
var cancelKeys = miscUtil.valueWithDefault(options.cancelKeys, []);
|
||||||
var pauseKeys = miscUtil.valueWithDefault(options.pauseKeys, []);
|
var pauseKeys = miscUtil.valueWithDefault(options.pauseKeys, []);
|
||||||
var pauseAtTermHeight = miscUtil.valueWithDefault(options.pauseAtTermHeight, false);
|
var pauseAtTermHeight = miscUtil.valueWithDefault(options.pauseAtTermHeight, false);
|
||||||
var mciReplaceChar = miscUtil.valueWithDefault(options.mciReplaceChar, '');
|
var mciReplaceChar = miscUtil.valueWithDefault(options.mciReplaceChar, ' ');
|
||||||
|
|
||||||
// :TODO: support pause/cancel & pause @ termHeight
|
// :TODO: support pause/cancel & pause @ termHeight
|
||||||
var canceled = false;
|
var canceled = false;
|
||||||
|
@ -464,5 +460,5 @@ function display(art, options, cb) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
parser.parse(art);
|
parser.parse(options.art);
|
||||||
}
|
}
|
|
@ -12,6 +12,7 @@ exports.getThemeInfo = getThemeInfo;
|
||||||
exports.getThemeArt = getThemeArt;
|
exports.getThemeArt = getThemeArt;
|
||||||
exports.getRandomTheme = getRandomTheme;
|
exports.getRandomTheme = getRandomTheme;
|
||||||
exports.initAvailableThemes = initAvailableThemes;
|
exports.initAvailableThemes = initAvailableThemes;
|
||||||
|
exports.displayThemeArt = displayThemeArt;
|
||||||
|
|
||||||
function getThemeInfo(themeID, cb) {
|
function getThemeInfo(themeID, cb) {
|
||||||
var path = paths.join(Config.paths.themes, themeID, 'theme_info.json');
|
var path = paths.join(Config.paths.themes, themeID, 'theme_info.json');
|
||||||
|
@ -108,4 +109,16 @@ function getThemeArt(name, themeID, options, cb) {
|
||||||
cb(null, theArt.data);
|
cb(null, theArt.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function displayThemeArt(name, client, cb) {
|
||||||
|
getThemeArt(name, client.user.properties.art_theme_id, function onArt(err, theArt) {
|
||||||
|
if(err) {
|
||||||
|
cb(err);
|
||||||
|
} else {
|
||||||
|
art.display( { art : theArt, client : client }, function onDisplayed(err, mci) {
|
||||||
|
cb(err, mci);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
|
@ -10,14 +10,14 @@ var assert = require('assert');
|
||||||
|
|
||||||
exports.TickerTextView = TickerTextView;
|
exports.TickerTextView = TickerTextView;
|
||||||
|
|
||||||
TickerTextView = function(client, options) {
|
function TickerTextView(client, options) {
|
||||||
View.call(this, client, options);
|
View.call(this, client, options);
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.text = this.options.text || '';
|
this.text = this.options.text || '';
|
||||||
this.tickerStyle = this.options.tickerStyle || 'rightToLeft';
|
this.tickerStyle = this.options.tickerStyle || 'rightToLeft';
|
||||||
asssert(this.tickerStyle in TickerTextView.TickerStyles);
|
assert(this.tickerStyle in TickerTextView.TickerStyles);
|
||||||
|
|
||||||
// :TODO: Ticker |text| should have ANSI stripped before calculating any lengths/etc.
|
// :TODO: Ticker |text| should have ANSI stripped before calculating any lengths/etc.
|
||||||
// strUtil.ansiTextLength(s)
|
// strUtil.ansiTextLength(s)
|
||||||
|
|
Binary file not shown.
|
@ -10,7 +10,9 @@ var modules = require('../core/modules.js');
|
||||||
//var view = require('../core/view.js');
|
//var view = require('../core/view.js');
|
||||||
var textView = require('../core/text_view.js');
|
var textView = require('../core/text_view.js');
|
||||||
var editTextView = require('../core/edit_text_view.js');
|
var editTextView = require('../core/edit_text_view.js');
|
||||||
var viewController = require('../core/view_controller.js');
|
var ViewController = require('../core/view_controller.js').ViewController;
|
||||||
|
|
||||||
|
var async = require('async');
|
||||||
|
|
||||||
exports.moduleInfo = {
|
exports.moduleInfo = {
|
||||||
name : 'Matrix',
|
name : 'Matrix',
|
||||||
|
@ -20,6 +22,43 @@ exports.moduleInfo = {
|
||||||
|
|
||||||
exports.entryPoint = entryPoint;
|
exports.entryPoint = entryPoint;
|
||||||
|
|
||||||
|
function entryPoint(client) {
|
||||||
|
|
||||||
|
theme.displayThemeArt('MATRIX', client, function onMatrix(err, mciMap) {
|
||||||
|
if(mciMap.ET1 && mciMap.ET2 && mciMap.BN1 && mciMap.BN2 && mciMap.BN3) {
|
||||||
|
//
|
||||||
|
// Form via EditTextViews and ButtonViews
|
||||||
|
// * ET1 - userName
|
||||||
|
// * ET2 - password
|
||||||
|
// * BN1 - Login
|
||||||
|
// * BN2 - New
|
||||||
|
// * BN3 - Bye!
|
||||||
|
//
|
||||||
|
} else if(mciMap.VM1) {
|
||||||
|
//
|
||||||
|
// Menu via VerticalMenuView
|
||||||
|
//
|
||||||
|
// * VM1 - menu with the following items:
|
||||||
|
// 0 - Login
|
||||||
|
// 1 - New
|
||||||
|
// 2 - Bye!
|
||||||
|
//
|
||||||
|
var vc = new ViewController(client);
|
||||||
|
|
||||||
|
vc.on('submit', function onSubmit(form) {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
vc.loadFromMCIMap(mciMap);
|
||||||
|
vc.setViewOrder();
|
||||||
|
// :TODO: Localize
|
||||||
|
vc.getView(1).setItems(['Login', 'New User', 'Goodbye!']);
|
||||||
|
vc.switchFocus(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
function entryPoint(client) {
|
function entryPoint(client) {
|
||||||
var term = client.term;
|
var term = client.term;
|
||||||
|
|
||||||
|
@ -27,8 +66,6 @@ function entryPoint(client) {
|
||||||
|
|
||||||
// :TODO: types, random, and others? could come from conf.mods.matrix or such
|
// :TODO: types, random, and others? could come from conf.mods.matrix or such
|
||||||
|
|
||||||
//art.getArt('SO-CC1.ANS'/* 'MATRIX'*/, { types: ['.ans'], random: true}, function onArt(err, theArt) {
|
|
||||||
//client.user.properties.art_theme_id = '';
|
|
||||||
theme.getThemeArt('MCI_ET1.ANS', client.user.properties.art_theme_id, function onArt(err, theArt) {
|
theme.getThemeArt('MCI_ET1.ANS', client.user.properties.art_theme_id, function onArt(err, theArt) {
|
||||||
|
|
||||||
//art.getArt('MATRIX_1.ANS', {}, function onArt(err, theArt) {
|
//art.getArt('MATRIX_1.ANS', {}, function onArt(err, theArt) {
|
||||||
|
@ -63,4 +100,5 @@ function entryPoint(client) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
*/
|
|
@ -28,7 +28,7 @@ function entryPoint(client) {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
function displayArt(theArt, callback) {
|
function displayArt(theArt, callback) {
|
||||||
art.display(theArt, { client : client, mciReplaceChar : ' ' }, function onDisplayed(err, mci) {
|
art.display( { art : theArt, client : client }, function onDisplayed(err, mci) {
|
||||||
callback(err, mci);
|
callback(err, mci);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue