web_stepper.anubis 2.22 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 23/04/2020
 * Time: 19:48
 * © David RENÉ
 */


transmit web_session.anubis
transmit xlib/generic/types/stepper.anubis

public type WEB_Step:...

//
//public type Step_status:
//  initial,
//  valid,
//  no_valid.


public define WEB_Action_Name web_stepper_start   = controller_action("web_stepper", "start").

public define List((String, String)) 
  stepper_args
  (
    String                  uid,
    String                  index,
    List((String, String))  extra_args
  )=
  [("stepper_uid",uid), ("step", index) . extra_args]
.

public define List((String, String)) 
  stepper_args
  (
    String  uid,
    String  index
  )=
  stepper_args(uid, index, [])
.

public type Step_View_Status:
  invisible,
  locked,
  selectable
.

public type WEB_Step_Status:
  web_step_status(
    String            step_name,
    Int               index,
    Step_Status       status,
    Step_View_Status  v_status   
  )
.

public type WEB_Step_Session:
  web_step_session(
    //List(WEB_Step_Status) web_steps_status,
    String      current_step,
    Session     session
  )
.

public type WEB_Step:
  web_step(
    String          name,         //step name
    String          full_description,
    Int             index,        //step index
    String          thread,       //thread name like general, VoIP, etc. 
    List(WEB_Step)  childs,       
    (WEB_Step_Session stp_session)  ->  WEB_Step_Status       status,     //return the step status
    (WEB_Step_Session stp_session, (String)->String  _T)  ->  HTML  view,       //return the view according to WEB_Step_Session
    (WEB_Step_Session stp_session, (String)->String  _T)  ->  HTML  buttons,    
    (WEB_Step_Session stp_session, WEB_Session web_session)  ->  WEB_Step_Session      submit,
  )
.

public type WEB_Stepper:
  web_stepper(
    String          name,         //name of the stepper
    String          uid,          //uid of the stepper (currently same as name)
    WEB_Action_Name web_controller,
    (WEB_Session web_session) -> WEB_Step_Session start,  //start function to call at very first time 
    List(WEB_Step)  steps         //All available steps in stepper
    //Step_Session    session
  )
.