Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs

This commit is contained in:
Bryan Ashby
2016-03-25 22:06:05 -06:00
107 changed files with 4800 additions and 1242 deletions

View File

@@ -177,12 +177,6 @@ function AbracadabraModule(options) {
require('util').inherits(AbracadabraModule, MenuModule);
/*
AbracadabraModule.prototype.enter = function(client) {
AbracadabraModule.super_.prototype.enter.call(this, client);
};
*/
AbracadabraModule.prototype.leave = function() {
AbracadabraModule.super_.prototype.leave.call(this);

Binary file not shown.

Binary file not shown.

View File

@@ -1,19 +1,19 @@
 <31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<6D><DCB2>  <33>  <31><6D> 
 <31><6D><EFBFBD><31><31><6D> <31><6D><EFBFBD><EFBFBD><EFBFBD>۲<37><31><6D><30><6D><EFBFBD>  <20><>  <33><6D><EFBFBD> <33><6D><EFBFBD><EFBFBD> <20> <31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<31><31><6D><EFBFBD><EFBFBD><EFBFBD><31><6D><37><6D><EFBFBD><31><6D><30><6D> <30><6D>  <20><><EFBFBD> <31><6D> <33><37><6D><EFBFBD><EFBFBD><EFBFBD><31><31><6D><30><6D><EFBFBD>
<31><6D><EFBFBD><EFBFBD><EFBFBD><37><6D><30><6D>  <20><31><37>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><6D><30>۲<37><6D><EFBFBD><EFBFBD><30><6D>ܲ<37><6D><EFBFBD><30><6D> <31><6D><31><6D><EFBFBD><EFBFBD><EFBFBD>۲
 <20><37><31><6D><37><6D><EFBFBD><30><31><6D><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30> <37><6D><30><6D><37><6D><30> <31><37><6D><EFBFBD><EFBFBD><EFBFBD><30> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><37><6D><30><31><30><6D>
<37><6D><EFBFBD>۲<EFBFBD><DBB2>     <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D><37> <20><><EFBFBD><30><30>  <37><6D><EFBFBD><EFBFBD><EFBFBD> <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30>  
<31><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><EFBFBD><30><6D> <20>  <20><><EFBFBD><37><6D><30><6D><EFBFBD><EFBFBD><37><6D><30><6D><EFBFBD><EFBFBD><30><6D> <31><6D> <31><37> <37><6D><EFBFBD><EFBFBD> <30> <20><><EFBFBD><30><6D><EFBFBD><30> <20><><30><6D><EFBFBD><30><6D> <31><6D> <20> <20><><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D>   <31><6D><37><6D><EFBFBD><EFBFBD><EFBFBD> <30><6D>    <37><6D><EFBFBD><EFBFBD><EFBFBD><30>  <20><37><6D><EFBFBD><EFBFBD><37>  <20><37><30><6D><EFBFBD> <30><37><30><6D><EFBFBD><EFBFBD><30> <20> <20><> <20><><EFBFBD><EFBFBD> 
<34> <30><37><6D><EFBFBD> <20><><30>  <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><37><6D><EFBFBD><30><6D><EFBFBD><34>ܲ<EFBFBD> <20><><37><6D><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <34> <37><6D><EFBFBD><EFBFBD><EFBFBD><30> <34><6D><EFBFBD><EFBFBD>۲<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><37>  <34><6D> 
<34><34> <37> <30><6D><EFBFBD><EFBFBD><30> <34><6D><34><6D> <30><6D><37><6D><30><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><37><30>۲<EFBFBD> <34><6D> <30><6D><EFBFBD><EFBFBD><EFBFBD><37><6D><EFBFBD><30><6D><37><6D><EFBFBD><EFBFBD> <34><34><34> <30><37><6D><EFBFBD><30><6D> <34><34><6D><34><6D><EFBFBD> <37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD> <20><><34>
<34>  <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <34>߲<EFBFBD> <30><6D><EFBFBD><37><6D><30>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD>۲ <34><6D>߲ <20><30> <37><6D><30><6D> ߲<6D> <30>۲۲<DBB2> <20><><EFBFBD> <34> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><30> ߲<6D>
<30><37><6D><EFBFBD><EFBFBD><EFBFBD><30><6D>  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30>۲<30><6D><EFBFBD> <20><><EFBFBD><30><6D> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<30><37><6D><EFBFBD><EFBFBD><EFBFBD><30> <20><><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD> <20><><EFBFBD> ޲<30><30><6D><37><6D><EFBFBD><30><6D>
 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۲<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D>۲<30><6D> 
 <30><6D> <20><><EFBFBD><EFBFBD><EFBFBD><31><6D><EFBFBD> <31><6D> enigma<6D>bbs soft<30><6D><EFBFBD><37><6D><30><6D><31> <20><><EFBFBD><EFBFBD>۲ <31><6D>
dangermouse <20><>۲<6D><DBB2><EFBFBD><EFBFBD><30><37><6D><30><6D> <31>
  <20><>  ۲<><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><EFBFBD><31><31><31><6D><EFBFBD>
 <20> <30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 <31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<6D><DCB2>  <33>  <31><6D> 
 <31><6D><EFBFBD><31><31><6D> <31><6D><EFBFBD><EFBFBD><EFBFBD>۲<37><31><6D><30><6D><EFBFBD>  <20><>  <33><6D><EFBFBD> <33><6D><EFBFBD><EFBFBD> <20> <31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<31><31><6D><EFBFBD><EFBFBD><EFBFBD><31><6D><37><6D><EFBFBD><31><6D><30><6D> <30><6D>  <20><><EFBFBD> <31><6D> <33><37><6D><EFBFBD><EFBFBD><EFBFBD><31><31><6D><30><6D><EFBFBD>
<31><6D><EFBFBD><EFBFBD><EFBFBD><37><6D><30><6D>  <20><31><37>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><6D><30>۲<37><6D><EFBFBD><EFBFBD><30><6D>ܲ<37><6D><EFBFBD><30><6D> <31><6D><31><6D><EFBFBD><EFBFBD><EFBFBD>۲
 <20><37><31><6D><37><6D><EFBFBD><30><31><6D><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30> <37><6D><30><6D><37><6D><30> <31><37><6D><EFBFBD><EFBFBD><EFBFBD><30> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><37><6D><30><31><30><6D>
<37><6D><EFBFBD>۲<EFBFBD><DBB2>     <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D><37> <20><><EFBFBD><30><30>  <37><6D><EFBFBD><EFBFBD><EFBFBD> <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30>  
<31><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><EFBFBD><30><6D> <20>  <20><><EFBFBD><37><6D><30><6D><EFBFBD><EFBFBD><37><6D><30><6D><EFBFBD><EFBFBD><30><6D> <31><6D> <31><37> <37><6D><EFBFBD><EFBFBD> <30> <20><><EFBFBD><30><6D><EFBFBD><30> <20><><30><6D><EFBFBD><30><6D> <31><6D> <20> <20><><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D>   <31><6D><37><6D><EFBFBD><EFBFBD><EFBFBD> <30><6D>    <37><6D><EFBFBD><EFBFBD><EFBFBD><30>  <20><37><6D><EFBFBD><EFBFBD><37>  <20><37><30><6D><EFBFBD> <30><37><30><6D><EFBFBD><EFBFBD><30> <20> <20><> <20><><EFBFBD><EFBFBD> 
<34> <30><37><6D><EFBFBD> <20><><30>  <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><37><6D><EFBFBD><30><6D><EFBFBD><34>ܲ<EFBFBD> <20><><37><6D><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <34> <37><6D><EFBFBD><EFBFBD><EFBFBD><30> <34><6D><EFBFBD><EFBFBD>۲<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><37>  <34><6D> 
<34><34> <37> <30><6D><EFBFBD><EFBFBD><30> <34><6D><34><6D> <30><6D><37><6D><30><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><37><30>۲<EFBFBD> <34><6D> <30><6D><EFBFBD><EFBFBD><EFBFBD><37><6D><EFBFBD><30><6D><37><6D><EFBFBD><EFBFBD> <34><34><34> <30><37><6D><EFBFBD><30><6D> <34><34><6D><34><6D><EFBFBD> <37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD> <20><><34>
<34>  <37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <34>߲<EFBFBD> <30><6D><EFBFBD><37><6D><30>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD>۲ <34><6D>߲ <20><30> <37><6D><30><6D> ߲<6D> <30>۲۲<DBB2> <20><><EFBFBD> <34> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><30> ߲<6D>
<30><37><6D><EFBFBD><EFBFBD><EFBFBD><30><6D>  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30>۲<30><6D><EFBFBD> <20><><EFBFBD><30><6D> <20><37><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<30><37><6D><EFBFBD><EFBFBD><EFBFBD><30> <20><><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD> <20><><EFBFBD> ޲<30><30><6D><37><6D><EFBFBD><30><6D>
 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۲<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><6D>۲<30><6D> 
 <30><6D> <20><><EFBFBD><EFBFBD><EFBFBD><31><6D><EFBFBD> <31><6D> enigma<6D>bbs soft<30><6D><EFBFBD><37><6D><30><6D><31> <20><><EFBFBD><EFBFBD>۲ <31><6D>
dangermouse <20><>۲<6D><DBB2><EFBFBD><EFBFBD><30><37><6D><30><6D> <31>
  <20><>  ۲<><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><EFBFBD><31><31><31><6D><EFBFBD>
 <20> <30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>


Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,52 +1,52 @@
You should never see this!
... nor this
[?33h
 fONT tEST
 ~~~~~~~~~
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
0 |NUL|  |  |  |  |  |  |  |BS |HT |LF | | |CR |  |  
1 |  |  |  |  |  |  |  |  |  |  |EOF|ESC|  |  |  |  
2 | | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / 
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? 
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O 
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ 
6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o 
7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |  
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
8 | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
9 | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
A | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
B | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
C | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
D | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
E | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
F | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
 cOLOR tEST
 ~~~~~~~~~~
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>

You should never see this!
... nor this
[?33h
 fONT tEST
 ~~~~~~~~~
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
0 |NUL|  |  |  |  |  |  |  |BS |HT |LF | | |CR |  |  
1 |  |  |  |  |  |  |  |  |  |  |EOF|ESC|  |  |  |  
2 | | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / 
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? 
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O 
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ 
6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o 
7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |  
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
8 | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
9 | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
A | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
B | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
C | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
D | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
E | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
F | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> 
 cOLOR tEST
 ~~~~~~~~~~
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>
<30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD><30><6D><EFBFBD><EFBFBD><31><6D><EFBFBD><EFBFBD><32><6D><EFBFBD><EFBFBD><33><6D><EFBFBD><EFBFBD><34><6D><EFBFBD><EFBFBD><35><6D><EFBFBD><EFBFBD><36><6D><EFBFBD><EFBFBD><37><6D><EFBFBD><EFBFBD>


View File

@@ -393,7 +393,7 @@
},
editorMode: edit
editorType: email
messageAreaName: private_mail
messageAreaTag: private_mail
toUserId: 1 /* always to +op */
}
form: {
@@ -806,7 +806,7 @@
},
editorMode: edit
editorType: email
messageAreaName: private_mail
messageAreaTag: private_mail
toUserId: 1 /* always to +op */
}
form: {
@@ -1019,6 +1019,10 @@
value: { command: "P" }
action: @menu:messageAreaNewPost
}
{
value: { command: "J" }
action: @menu:messageAreaChangeCurrentConference
}
{
value: { command: "C" }
action: @menu:messageAreaChangeCurrentArea
@@ -1041,7 +1045,39 @@
}
]
}
messageAreaChangeCurrentConference: {
art: CCHANGE
module: msg_conf_list
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: conf
}
}
submit: {
*: [
{
value: { conf: null }
action: @method:changeConference
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
messageAreaChangeCurrentArea: {
// :TODO: rename this art to ACHANGE
art: CHANGE
module: msg_area_list
form: {
@@ -1070,6 +1106,7 @@
}
}
}
messageAreaMessageList: {
module: msg_list
art: MSGLIST
@@ -1163,7 +1200,7 @@
{
value: { 1: 0 }
action: @method:prevMessage
}
}
{
value: { 1: 1 }
action: @method:nextMessage

View File

@@ -5,7 +5,6 @@ var MenuModule = require('../core/menu_module.js').MenuModule;
var ViewController = require('../core/view_controller.js').ViewController;
var messageArea = require('../core/message_area.js');
var strUtil = require('../core/string_util.js');
//var msgDb = require('./database.js').dbs.message;
var async = require('async');
var assert = require('assert');
@@ -43,30 +42,33 @@ function MessageAreaListModule(options) {
var self = this;
this.messageAreas = messageArea.getAvailableMessageAreas();
this.messageAreas = messageArea.getSortedAvailMessageAreasByConfTag(
self.client.user.properties.message_conf_tag,
{ client : self.client }
);
this.menuMethods = {
changeArea : function(formData, extraArgs) {
if(1 === formData.submitId) {
var areaName = self.messageAreas[formData.value.area].name;
const areaTag = self.messageAreas[formData.value.area].areaTag;
messageArea.changeMessageArea(self.client, areaName, function areaChanged(err) {
if(err) {
self.client.term.pipeWrite('\n|00Cannot change area: ' + err.message + '\n');
messageArea.changeMessageArea(self.client, areaTag, function areaChanged(err) {
if(err) {
self.client.term.pipeWrite('\n|00Cannot change area: ' + err.message + '\n');
setTimeout(function timeout() {
self.prevMenu();
}, 1000);
} else {
self.prevMenu();
}
});
setTimeout(function timeout() {
self.prevMenu();
}, 1000);
} else {
self.prevMenu();
}
});
}
}
};
this.setViewText = function(id, text) {
var v = self.viewControllers.areaList.getView(id);
const v = self.viewControllers.areaList.getView(id);
if(v) {
v.setText(text);
}
@@ -78,7 +80,7 @@ require('util').inherits(MessageAreaListModule, MenuModule);
MessageAreaListModule.prototype.mciReady = function(mciData, cb) {
var self = this;
var vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
const vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
async.series(
[
@@ -99,26 +101,29 @@ MessageAreaListModule.prototype.mciReady = function(mciData, cb) {
});
},
function populateAreaListView(callback) {
var listFormat = self.menuConfig.config.listFormat || '{index} ) - {desc}';
var focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
var areaListItems = [];
var focusListItems = [];
// :TODO: use _.map() here
for(var i = 0; i < self.messageAreas.length; ++i) {
areaListItems.push(listFormat.format(
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc } )
);
focusListItems.push(focusListFormat.format(
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc } )
);
}
var areaListView = vc.getView(1);
areaListView.setItems(areaListItems);
areaListView.setFocusItems(focusListItems);
const listFormat = self.menuConfig.config.listFormat || '{index} ) - {name}';
const focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
const areaListView = vc.getView(1);
let i = 1;
areaListView.setItems(_.map(self.messageAreas, v => {
return listFormat.format({
index : i++,
areaTag : v.area.areaTag,
name : v.area.name,
desc : v.area.desc,
});
}));
i = 1;
areaListView.setFocusItems(_.map(self.messageAreas, v => {
return focusListFormat.format({
index : i++,
areaTag : v.area.areaTag,
name : v.area.name,
desc : v.area.desc,
})
}));
areaListView.redraw();

View File

@@ -1,12 +1,13 @@
/* jslint node: true */
'use strict';
var FullScreenEditorModule = require('../core/fse.js').FullScreenEditorModule;
var Message = require('../core/message.js').Message;
var user = require('../core/user.js');
let FullScreenEditorModule = require('../core/fse.js').FullScreenEditorModule;
//var Message = require('../core/message.js').Message;
let persistMessage = require('../core/message_area.js').persistMessage;
let user = require('../core/user.js');
var _ = require('lodash');
var async = require('async');
let _ = require('lodash');
let async = require('async');
exports.getModule = AreaPostFSEModule;
@@ -24,7 +25,7 @@ function AreaPostFSEModule(options) {
// we're posting, so always start with 'edit' mode
this.editorMode = 'edit';
this.menuMethods.editModeMenuSave = function(formData, extraArgs) {
this.menuMethods.editModeMenuSave = function() {
var msg;
async.series(
@@ -36,18 +37,25 @@ function AreaPostFSEModule(options) {
});
},
function saveMessage(callback) {
persistMessage(msg, callback);
/*
msg.persist(function persisted(err) {
callback(err);
});
*/
}
],
function complete(err) {
if(err) {
// :TODO:... sooooo now what?
} else {
console.log(msg); // :TODO: remove me -- probably log that one was saved, however.
// note: not logging 'from' here as it's part of client.log.xxxx()
self.client.log.info(
{ to : msg.toUserName, subject : msg.subject, uuid : msg.uuid },
'Message persisted'
);
}
self.nextMenu();
}
);
@@ -56,11 +64,11 @@ function AreaPostFSEModule(options) {
require('util').inherits(AreaPostFSEModule, FullScreenEditorModule);
AreaPostFSEModule.prototype.enter = function(client) {
AreaPostFSEModule.prototype.enter = function() {
if(_.isString(client.user.properties.message_area_name) && !_.isString(this.messageAreaName)) {
this.messageAreaName = client.user.properties.message_area_name;
if(_.isString(this.client.user.properties.message_area_tag) && !_.isString(this.messageAreaTag)) {
this.messageAreaTag = this.client.user.properties.message_area_tag;
}
AreaPostFSEModule.super_.prototype.enter.call(this, client);
AreaPostFSEModule.super_.prototype.enter.call(this);
};

View File

@@ -72,7 +72,7 @@ function AreaViewFSEModule(options) {
if(_.isString(extraArgs.menu)) {
var modOpts = {
extraArgs : {
messageAreaName : self.messageAreaName,
messageAreaTag : self.messageAreaTag,
replyToMessage : self.message,
}
};

122
mods/msg_conf_list.js Normal file
View File

@@ -0,0 +1,122 @@
/* jslint node: true */
'use strict';
var MenuModule = require('../core/menu_module.js').MenuModule;
var ViewController = require('../core/view_controller.js').ViewController;
var messageArea = require('../core/message_area.js');
var async = require('async');
var assert = require('assert');
var _ = require('lodash');
exports.getModule = MessageConfListModule;
exports.moduleInfo = {
name : 'Message Conference List',
desc : 'Module for listing / choosing message conferences',
author : 'NuSkooler',
};
var MciCodesIds = {
ConfList : 1,
CurrentConf : 2,
// :TODO:
// # areas in con
//
};
function MessageConfListModule(options) {
MenuModule.call(this, options);
var self = this;
this.messageConfs = messageArea.getSortedAvailMessageConferences(self.client);
this.menuMethods = {
changeConference : function(formData, extraArgs) {
if(1 === formData.submitId) {
const confTag = self.messageConfs[formData.value.conf].confTag;
messageArea.changeMessageConference(self.client, confTag, err => {
if(err) {
self.client.term.pipeWrite(`\n|00Cannot change conference: ${err.message}\n`);
setTimeout(function timeout() {
self.prevMenu();
}, 1000);
} else {
self.prevMenu();
}
});
}
}
};
this.setViewText = function(id, text) {
const v = self.viewControllers.areaList.getView(id);
if(v) {
v.setText(text);
}
};
}
require('util').inherits(MessageConfListModule, MenuModule);
MessageConfListModule.prototype.mciReady = function(mciData, cb) {
var self = this;
const vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
async.series(
[
function callParentMciReady(callback) {
MessageConfListModule.super_.prototype.mciReady.call(this, mciData, callback);
},
function loadFromConfig(callback) {
let loadOpts = {
callingMenu : self,
mciMap : mciData.menu,
formId : 0,
};
vc.loadFromMenuConfig(loadOpts, callback);
},
function populateConfListView(callback) {
const listFormat = self.menuConfig.config.listFormat || '{index} ) - {name}';
const focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
const confListView = vc.getView(1);
let i = 1;
confListView.setItems(_.map(self.messageConfs, v => {
return listFormat.format({
index : i++,
confTag : v.conf.confTag,
name : v.conf.name,
desc : v.conf.desc,
});
}));
i = 1;
confListView.setFocusItems(_.map(self.messageConfs, v => {
return focusListFormat.format({
index : i++,
confTag : v.conf.confTag,
name : v.conf.name,
desc : v.conf.desc,
})
}));
confListView.redraw();
callback(null);
},
function populateTextViews(callback) {
// :TODO: populate other avail MCI, e.g. current conf name
callback(null);
}
],
function complete(err) {
cb(err);
}
);
};

View File

@@ -52,15 +52,15 @@ function MessageListModule(options) {
var self = this;
var config = this.menuConfig.config;
this.messageAreaName = config.messageAreaName;
this.messageAreaTag = config.messageAreaTag;
if(options.extraArgs) {
//
// |extraArgs| can override |messageAreaName| provided by config
// |extraArgs| can override |messageAreaTag| provided by config
// as well as supply a pre-defined message list
//
if(options.extraArgs.messageAreaName) {
this.messageAreaName = options.extraArgs.messageAreaName;
if(options.extraArgs.messageAreaTag) {
this.messageAreaTag = options.extraArgs.messageAreaTag;
}
if(options.extraArgs.messageList) {
@@ -73,7 +73,7 @@ function MessageListModule(options) {
if(1 === formData.submitId) {
var modOpts = {
extraArgs : {
messageAreaName : self.messageAreaName,
messageAreaTag : self.messageAreaTag,
messageList : self.messageList,
messageIndex : formData.value.message,
}
@@ -94,15 +94,15 @@ function MessageListModule(options) {
require('util').inherits(MessageListModule, MenuModule);
MessageListModule.prototype.enter = function(client) {
MessageListModule.super_.prototype.enter.call(this, client);
MessageListModule.prototype.enter = function() {
MessageListModule.super_.prototype.enter.call(this);
//
// Config can specify |messageAreaName| else it comes from
// Config can specify |messageAreaTag| else it comes from
// the user's current area
//
if(!this.messageAreaName) {
this.messageAreaName = client.user.properties.message_area_name;
if(!this.messageAreaTag) {
this.messageAreaTag = this.client.user.properties.message_area_tag;
}
};
@@ -110,6 +110,8 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
var self = this;
var vc = self.viewControllers.allViews = new ViewController( { client : self.client } );
var firstNewEntryIndex;
async.series(
[
function callParentMciReady(callback) {
@@ -130,7 +132,7 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
if(_.isArray(self.messageList)) {
callback(0 === self.messageList.length ? new Error('No messages in area') : null);
} else {
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaName, function msgs(err, msgList) {
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaTag, function msgs(err, msgList) {
if(msgList && 0 === msgList.length) {
callback(new Error('No messages in area'));
} else {
@@ -141,7 +143,7 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
}
},
function getLastReadMesageId(callback) {
messageArea.getMessageAreaLastReadId(self.client.user.userId, self.messageAreaName, function lastRead(err, lastReadId) {
messageArea.getMessageAreaLastReadId(self.client.user.userId, self.messageAreaTag, function lastRead(err, lastReadId) {
self.lastReadId = lastReadId || 0;
callback(null); // ignore any errors, e.g. missing value
});
@@ -158,6 +160,13 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
var msgNum = 1;
function getMsgFmtObj(mle) {
if(_.isUndefined(firstNewEntryIndex) &&
mle.messageId > self.lastReadId)
{
firstNewEntryIndex = msgNum - 1;
}
return {
msgNum : msgNum++,
subj : mle.subject,
@@ -180,14 +189,18 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
msgListView.on('index update', function indexUpdated(idx) {
self.setViewText(MciCodesIds.MsgSelNum, (idx + 1).toString());
});
msgListView.redraw();
if(firstNewEntryIndex > 0) {
msgListView.setFocusItemIndex(firstNewEntryIndex);
}
callback(null);
},
function populateOtherMciViews(callback) {
self.setViewText(MciCodesIds.MsgAreaDesc, messageArea.getMessageAreaByName(self.messageAreaName).desc);
self.setViewText(MciCodesIds.MsgAreaDesc, messageArea.getMessageAreaByTag(self.messageAreaTag).name);
self.setViewText(MciCodesIds.MsgSelNum, (vc.getView(MciCodesIds.MsgList).getData() + 1).toString());
self.setViewText(MciCodesIds.MsgTotal, self.messageList.length.toString());

View File

@@ -5,7 +5,7 @@ var user = require('../core/user.js');
var theme = require('../core/theme.js');
var login = require('../core/system_menu_method.js').login;
var Config = require('../core/config.js').config;
var getDefaultMessageArea = require('../core/message_area.js').getDefaultMessageArea;
var messageArea = require('../core/message_area.js');
var async = require('async');
@@ -65,6 +65,16 @@ function NewUserAppModule(options) {
newUser.username = formData.value.username;
//
// We have to disable ACS checks for initial default areas as the user is not yet ready
//
var confTag = messageArea.getDefaultMessageConferenceTag(self.client, true); // true=disableAcsCheck
var areaTag = messageArea.getDefaultMessageAreaTagByConfTag(self.client, confTag, true); // true=disableAcsCheck
// can't store undefined!
confTag = confTag || '';
areaTag = areaTag || '';
newUser.properties = {
real_name : formData.value.realName,
birthdate : new Date(Date.parse(formData.value.birthdate)).toISOString(),
@@ -74,14 +84,12 @@ function NewUserAppModule(options) {
email_address : formData.value.email,
web_address : formData.value.web,
account_created : new Date().toISOString(),
message_area_name : getDefaultMessageArea().name,
message_conf_tag : confTag,
message_area_tag : areaTag,
term_height : self.client.term.termHeight,
term_width : self.client.term.termWidth,
// :TODO: This is set in User.create() -- proabbly don't need it here:
//account_status : Config.users.requireActivation ? user.User.AccountStatus.inactive : user.User.AccountStatus.active,
term_width : self.client.term.termWidth,
// :TODO: Other defaults
// :TODO: should probably have a place to create defaults/etc.
@@ -92,8 +100,8 @@ function NewUserAppModule(options) {
} else {
newUser.properties.theme_id = Config.defaults.theme;
}
// :TODO: .create() should also validate email uniqueness!
// :TODO: User.create() should validate email uniqueness!
newUser.create( { password : formData.value.password }, function created(err) {
if(err) {
self.client.log.info( { error : err, username : formData.value.username }, 'New user creation failed');

View File

@@ -172,8 +172,8 @@
messageAreaChangeCurrentArea: {
config: {
listFormat: "|00|15{index} |07- |03{desc}"
focusListFormat: "|00|19|15{index} - {desc}"
listFormat: "|00|15{index} |07- |03{name}"
focusListFormat: "|00|19|15{index} - {name}"
}
mci: {
VM1: {
@@ -310,6 +310,19 @@
}
}
}
newScanMessageList: {
config: {
listFormat: "|00|15 {msgNum:<5.5}|03{subj:<29.29} |15{from:<20.20} {ts}"
focusListFormat: "|00|19> |15{msgNum:<5.5}{subj:<29.29} {from:<20.20} {ts}"
dateTimeFormat: ddd MMM Do
}
mci: {
VM1: {
height: 14
}
}
}
}
}
}

View File

@@ -2,7 +2,7 @@
'use strict';
var MenuModule = require('../core/menu_module.js').MenuModule;
var userDb = require('../core/database.js').dbs.user;
//var userDb = require('../core/database.js').dbs.user;
var getUserList = require('../core/user.js').getUserList;
var ViewController = require('../core/view_controller.js').ViewController;

View File

@@ -84,7 +84,6 @@ WhosOnlineModule.prototype.mciReady = function(mciData, cb) {
return listFormat.format(oe);
}));
// :TODO: This is a hack until pipe codes are better implemented
onlineListView.focusItems = onlineListView.items;
onlineListView.redraw();