Giter VIP home page Giter VIP logo

oblivion2-xrm's People

Contributors

m-griffin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oblivion2-xrm's Issues

XRM-Server [Boost-Regex and Unicode support for Field Validation]

Regex is all setup for field validation, however we don't want to exclude Unicode. ICU is compiled into boost on W32, for Boost Locale and general input parsing. However this appears to lack support in the Boost Regex at the moment. A recompile is needed along with testing in Linux.

XRM-Server [Lightbar Menu] Issues with Redraws

Matrix Menu, I've noticed that switching light-bars appears to be redrawing all light-bars, or is flashing the entire line. Look into only refreshing and overwritten the current and previous selections like it should for fast redraws without flashes.

XRM-Server [YAML Config Files] Add Version and Checking

XRM-Server [YAML Config Files] Add Version and Checking.
We want to make sure if the layout changes, that the user will know when they are running an incorrect version and need to either run an update utility or add any new fields.

XRM-Server [ACS System] Start Building Access Conditioning System.

Handles User Access:

Flag                   Description
          ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
          -                      False
          +                      True
          SXXXX                  True if Level Greater or equal to X.
          VX                     True if user is on Node X.
          DXXXX                  True if File Level Greater or equal to
                                 XXXX.
          EX                     True if user called more than X times
                                 today.
          BXXX                   True if BPS Rate (w/o 00's) is Greater
                                 or equal to XXX. (ie:3, 12, 24, 48,
                                 96, 144, 168, 192, 384)
          CXXX                   True if user hasn't changed his password
                                 in xxx days.
          FX                     True if X flag is set. (A-Z)
          HX                     True if user is using menu set X.
          IX                     True if user is using stat set X.
          JX                     True if user has ANSI and X=0, or
                                 user has AVATAR and X=1, or if user
                                 has RIP and X=2.
          OX                     True if flag X is set in the second
                                 group of ACS Flags. (A-Z)
                                 See *** Note following commands.
          PXX                    True if user has XX file points.
          YXXX                   True if it is at least XXX minutes
                                 past midnight.
          ()'s                   Tells Obv/2 to Process Codes in
                                 parenthesis before any other codes.
          |                      Used to "Or" what is on the left
                                 side of the | with what is on the
                                 right side of the |.
          ~                      Makes a Code False that would
                                 otherwise be true and vice versa.
          \                      True if Fail Flag is True.
          =                      True if user is local.
          [                      True only when system is run
                                 multinode.
          ;                      True if input is not broken using
                                 space or ESC.
          '                      Used to prompt for SysOp password.
          KX                     True if absolute file area # is equal
                                 to value of X.
          LX                     True if absolute message area # is
                                 equal to value of X.
          MX                     True if MSG conference is equal
                                 to the value of X.
          NX                     True of FILE conference is equal
                                 to the value of X.
          PXXXX                  True if # of file points is greater
                                 than the value of XXXX.
          TXXXX                  True if time left is greater than
                                 the value of X.
          UXXXX                  True if the user # is equal to X.
          AXX                    True of age is greater than XX.
          GX                     True if user is male (X must be
                                 0), or user is female (X must be 1)
          QX                     True after user has called more than X
                                 times
          RX                     True if total calls exceed X.
          *                      True if user meets his Post/Call
                                 Ratio
          Xyyy                   True of the first three #s of the
                                 user's phone number match. ie:
                                 A216 holds true for all users
                                 who's area code is 216. A216464 holds
                                 true for all users who's number is in
                                 area code 216 and prefix 464.
          Zx                     True if Day of the Week = X
                                 0=Sunday...6=Saturday
          _                      True if user is available for
                                 Multinode Chat
          $xx                    True if the user has changed his
                                 password in xx days. ie: $10 is
                                 true if the user changed his
                                 password more than 10 days ago.
          ]                      True if screen pausing is on

XRM-Server [Menu Prompts] Parsing Data and Codes

Initial setup for pulling in menu prompts has started.
The codes are parsed but now need to be handled to populate text where the MCI Codes were. And to also set the and move the cursor position to the end point for when the user starts to type input.

XRM-Server [Pause / Waiting For Input Prompt]

Since were doing Asynchronous I/O meaning that all input data passes through to each system or module. That modules then handles updates to the screen depending on state and always returns right away. There are never loops waiting or checking for input in any system as the core async io handles this and then pushes out data as it comes in.

Goal, make a module state when needed that will switch the state, wait for input, then switch back like a pause or waiting for input key would do. Might be able to work something in the State Manager to push a second state, then pop it off and return back once the action is completed.

XRM-Server [Menu Groups] Menu Yaml Files

Rename Menu Groups and Option Groups to ACS_String, to keep description of field in line with the data that will be used in the field. Was looking at group access, and changed it back for Access Condition System with Security Levels and AR flags for wider range of config ability.

Compile fails on gcc < 5

I've really wanted to help with this project but have almost no time, so I thought I'd do what I can and see how it compiles. Since I can just run that off in the background.

It looks like under gcc < 5 std::get_time isn't implemented yet (Stack Overflow link), so using gcc-4.9.3 it fails at line #L1046.

I'm going to install gcc 5 and compile again.

XRM-Server [New State] State for Pauses, and animations

Updated Notes, Let add a new state which can be pushed on the stack, once input is received it can then be popped off the stack and continue where the user left off.

Notes, must store current screen, so when returning from state, we can redraw it.
Can also allow the state to run animations in a thread for different items and scripts.
Lots of ideas.

XRM MenuPromptConvert - New Conversion from Legacy Data to Yaml files.

Break out menu prompts from legacy dat format to individual .yaml files like the menu's are done. This will allow greater flexibility and easier editing and swapping of existing and new menu prompt files.

  • Includes Menu Prompt Conversion
  • New Menu Prompt Model
  • New Menu Prompt Dao
  • Plugging in the new Dao for pulling selected menu prompts.
  • Also add an options to list of available Menu Prompts like Menu Editor. (New Issues to create this!)

XRM-Server [ANSI Display] Issues in Linux

Generic Menu Templates were having issues with wrapping.
Also clear screen default from Legacy System used ESC2J only with no home cursor, this was causing slight display issues.

XRM-Server [Generic Template] Parsed Implied ESC Sequences locally

Some telnet applications and terminals do not support Implied ESC Sequences.

For example: ESC[;40H

by leaving out the digits before the ; semi-colon some terminals hard code this to 0, when Legacy OBV/2 used this sequence to imply current row, 40th column. So on this string we need to parse into buffer that will position then return the entire string pre-padded removing the sequence that isn't supported.

XRM-Server [Theme Colors] Menu System and Prompts Pull from User not System Colors

User records should populate default theme colors from the configured system theme colors.
the Menu system should then pull from user theme colors who can also update and configure their own default's such as the default color, input color, and inverse colors.

Currently the menu system is pulling from the configured system theme colors and not the default.

XRM-Server [Sysop Menu] Not returning properly to last menu

Issue appears to be with start menu population.
The menu jumps to gosysop, which then prompts for sysop password and moves onto the sysop menu.

Issue is caused by the initial starting menu not being populated and set as MAIN after the matrix. Once setting to main, the issue is then resolved.

Part II: is to pull the starting menu from the configuration, this is a configuration option where TOP menu can be setup for post-login stats and utils like last callers etc.. Then switches to main once completed.

XRM-Server [Menus] Prompt were overwritting menu prompts

Updated the Max Rows used detection, all prompts, For Examples sending feedback with y/n, logoff with y/n light bar prompts should always display under the menu prompt. The bottom of screen detection was off by 1 line so in some cases in 24 Line vs 25 Line Display the bottom row of the menu prompt is getting overwritten.

XRM-Server [Config File] Validation for possible conflicts

Add a validation method to look over any settings that might have possible conflicts.
Just adding a starting point with initial checks for use_handle and use_realname.

Both both can be enabled, one or the other can be selected and used. However, both can not be false!

XRM-Server [Text Prompt Formatting] Theme colors for unformatted strings

Theme colors for unformatted strings:
Stings that have no pipe colors codes in the string are considered default and unformatted.
These strings by default will use theme colors for default string, input, inverse, prompt.

To expand this, normal text prompts that are unformatted will have coloring added to brackets [ ] along with text inside of the brackets that match some of the default menu's like start reading messages
where with laid out with [S] Start Reading commands and these will get colorized. Using simple pipe codes will override the defaults.

XRM-Server [Logon] Let users login with different identifiers

A user can login using their Handle, Real Name, or Email Address.

Extra Testing Notes
Must check and test with config use flags for handle, real name, and email address.
This also means if one can be blank, then we can no longer use unique indexes on user table for these (3) fields, but we can still validate this on the signup process.

XRM-Server [Menu] Add wild card menu command processing

There is wildcarding for menu commands:
If you set the Key to X*, then you can put * in the
Cstring and that will put what follows the X in the
Cstring. This is advisable for such cases as file
conference jumping such as J* with would do JM with a
Cstring of * so one could J1,J2, etc.

Also a possibility for CString is & in which is set to the
input gotten with -I, -J, or set with -*.

CONFIG.BBS

Can you add an example of CONFIG.BBS? xrm-server doesn't seem to want to create the file on Ubuntu 14.04 LTS.

XRM-Server [Generic Menu Templates] GENSRT, GENMID, GENEND

Create Generic Menu Templates
Templates are used for creating ANSI Graphic menu's that match across all menus.
These menu's use a (3) files system. A start, mid, and end screen.

Menu Title or Name is placed in the SRT ANSI.
Menu options are placed in the MID ANSI where meat of the screen is built from internal processing.
Menu footer is placed in the END ANSI.

Sets of screens can also be compiled into libraries where the user can select different themes according to preference.

XRM-Server [Menu Prompt] Impliment Custom Menu Action Prompts

Starting working on the custom Menu's Prompts Functions.
Some Menu's such as Feed Back, Logoff, and others use special pull down parameters

When the Pull down Filename has a single 'N' character.
the prompt string is then parsed for Template colors and special ending control codes
that either display YES/NO Light bars, or ask for user input that is then passed through to a menu command.

Some info from the doc's:

      N
        Writes the Name (menu prompt string) in the Prompt alone

          May Contain:

              ^R - Regular Color      ^S - Status Color
              ^P - Prompt Color       ^E - Input Color
              ^V - Inverse Color      ^X - Box Color
              ^M - Goes down a line

          Using The Following To End:
              / Yes/No Bar Prompt beginning with No
              \ Yes/No Bar Prompt beginning with Yes
              = Yes/No/Quit Bar Prompt Beginning with Yes
              | Yes/No/Quit Bar Prompt Beginning with No
              @ Yes/No/Quit Bar Prompt Beginning with Quit
              * Inputs String
              : Inputs String with a : in a different color
              # Hotkey without Echo
              ) Hotkey with Echo
              ( Sets the string equal to the Input Question
                varaible set with -I, -J, or -M

      You can use the following characters in the keys of a menu
      using a name in prompt ending with a # or ).

      All pipe codes are also applicable in this prompt.

          This command is used to make menus that ask questions,
      create hotkeyed type menus, or get input from users.

      Bx
        Does Bar selection menu with x number of columns

      R
        Uses a one-line bar menu. When creating command stacks,
        make sure to only put a description on the first option in
        the stack, otherwise your whole command stack will appear
        on this menu. Also, make sure that all options don't exceed
        80 colums, as this is a ONE line bar menu. If your options
        exceed the 80 column limit, use the bar menus.

XRM-Server [Menu Options] YAML does not keep Menu Option Ordering

While testing menu switching I've noticed that when a menu is reloaded by changing menu's then changing back the menu options are no longer in the previous order. After some research YAML does not guarantee that Sequences are loaded in the same order they are present in the file. Boo!

I've already included a Menu Option Index with each menu command.

Update the Menu DAO (Data Access Object) to sort all Menu Options on the index field when menus are loaded. I was hoping this field could be removed, but it appears that it's needed to preserve the correct menu ordering which is also important for stacked command looping.

XRM-Server [MCI Code Parsing] %%DFFILENAME.ANS

Quick bug fix for %%DFFILENAME.ANS mci code for display ansi files in prompts.
the current method is removing the %% but leaving the DF in the filename, so file is not found.
oops.. 👍

XRM-Server [Menu Prompts] Custom Display

Menu Prompts setup as single lightbar prompts need to display [default] on the last line of the displaced screen. Make sure to calcumate what is drawn out, not by cursor position, then display the new question lightbar prompt at the bottom of the screen.

XRM-Server [Default System Theme Colors] Prompts and Input

The system uses default system colors for prompt and input.
Updates Modules to use these default system colors which can be overridden by pipe colors in the in actual text prompt.

Also update all default yaml file creation to use default colors which minor colors, so users can see defaults and modify as they so choose.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.