home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / LOGIN.JFM < prev    next >
Text File  |  1996-12-11  |  16KB  |  669 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * Login.jfm  --  TMD login and registration                                  *    
  4. *                                                                            *
  5. *                                                                            *
  6. * Updated 9/19/96 by IntraBuilder Publications Group                         *
  7. * $Revision:   1.0  $                                                       *
  8. *                                                                            *
  9. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  10. *                                                                            *
  11. \****************************************************************************/
  12. // {End Header} Do not remove this comment//
  13. // Generated on 09/19/96
  14. //
  15. var f = new loginForm();
  16. f.open();
  17. class loginForm extends tmdbaseCForm from "TMDBASE.JCF" {
  18.    with (this) {
  19.       height = 20;
  20.       left = 36.5;
  21.       top = 0;
  22.       width = 60;
  23.       title = "TMD Login";
  24.       onServerSubmit = class::Form_onServerSubmit;
  25.       onServerLoad = class::Form_onServerLoad;
  26.    }
  27.  
  28.  
  29.    with (this.users1 = new Query()){
  30.       left = 50;
  31.       top = 0;
  32.       sql = 'SELECT * FROM "users.db"';
  33.       active = true;
  34.    }
  35.  
  36.  
  37.    with (this.users1.rowset) {
  38.  
  39.       locateOptions = 2;
  40.    }
  41.  
  42.  
  43.    with (this.users2 = new Query()){
  44.       left = 50;
  45.       top = 2;
  46.       sql = 'SELECT * FROM "users.db"';
  47.    }
  48.  
  49.  
  50.    with (this.users2.rowset) {
  51.  
  52.       locateOptions = 2;
  53.    }
  54.  
  55.  
  56.    with (this.messages1 = new Query()){
  57.       left = 50;
  58.       top = 4;
  59.       sql = 'SELECT * FROM "messages.DB"';
  60.       active = true;
  61.    }
  62.  
  63.  
  64.    with (this.messages1.rowset) {
  65.  
  66.       locateOptions = 2;
  67.    }
  68.  
  69.  
  70.    with (this.rule1 = new Rule(this)){
  71.       left = -2;
  72.       top = 12;
  73.       size = 4;
  74.       right = 52;
  75.    }
  76.  
  77.  
  78.    with (this.html1 = new HTML(this)){
  79.       height = 2;
  80.       left = 2;
  81.       top = 1;
  82.       width = 26;
  83.       color = "black";
  84.       text = "<H1>TMD Login</H1>";
  85.    }
  86.  
  87.  
  88.    with (this.html2 = new HTML(this)){
  89.       height = 1.2353;
  90.       left = 2;
  91.       top = 4;
  92.       width = 42;
  93.       color = "black";
  94.       text = "Registered users login here:";
  95.    }
  96.  
  97.  
  98.    with (this.html3 = new HTML(this)){
  99.       height = 1.2353;
  100.       left = 2;
  101.       top = 6;
  102.       width = 12;
  103.       color = "black";
  104.       text = "Login name";
  105.    }
  106.  
  107.  
  108.    with (this.userName = new Text(this)){
  109.       left = 16;
  110.       top = 6;
  111.       width = 34;
  112.       dataLink = parent.users1.rowset.fields["User name"];
  113.    }
  114.  
  115.  
  116.    with (this.html4 = new HTML(this)){
  117.       height = 1.2353;
  118.       left = 2;
  119.       top = 8;
  120.       width = 10;
  121.       color = "black";
  122.       text = "Password";
  123.    }
  124.  
  125.  
  126.    with (this.password = new Password(this)){
  127.       left = 16;
  128.       top = 8;
  129.       width = 34;
  130.       dataLink = parent.users1.rowset.fields["Password"];
  131.    }
  132.  
  133.  
  134.    with (this.loginButton = new Button(this)){
  135.       left = 16;
  136.       top = 10;
  137.       width = 22;
  138.       text = "Submit login";
  139.       onServerClick = class::loginButton_onServerClick;
  140.    }
  141.  
  142.  
  143.    with (this.newButton = new Button(this)){
  144.       left = 16;
  145.       top = 13;
  146.       width = 22;
  147.       text = "New users click here";
  148.       onServerClick = class::newButton_onServerClick;
  149.    }
  150.  
  151.  
  152.    with (this.html5 = new HTML(this)){
  153.       height = 1.2353;
  154.       left = 2;
  155.       top = 1;
  156.       width = 52;
  157.       color = "black";
  158.       text = "<H2>New User Registration, Page One</H2>";
  159.       pageno = 2;
  160.    }
  161.  
  162.  
  163.    with (this.html6 = new HTML(this)){
  164.       height = 1.2353;
  165.       left = 2;
  166.       top = 4;
  167.       width = 16;
  168.       color = "black";
  169.       text = "First name";
  170.       pageno = 2;
  171.    }
  172.  
  173.  
  174.    with (this.firstName = new Text(this)){
  175.       left = 18;
  176.       top = 4;
  177.       width = 36;
  178.       dataLink = parent.users1.rowset.fields["First name"];
  179.       pageno = 2;
  180.    }
  181.  
  182.  
  183.    with (this.html7 = new HTML(this)){
  184.       height = 1.2353;
  185.       left = 2;
  186.       top = 6;
  187.       width = 16;
  188.       color = "black";
  189.       text = "Last name";
  190.       pageno = 2;
  191.    }
  192.  
  193.  
  194.    with (this.lastName = new Text(this)){
  195.       left = 18;
  196.       top = 6;
  197.       width = 36;
  198.       dataLink = parent.users1.rowset.fields["Last name"];
  199.       pageno = 2;
  200.    }
  201.  
  202.  
  203.    with (this.html8 = new HTML(this)){
  204.       height = 1.2353;
  205.       left = 2;
  206.       top = 8;
  207.       width = 16;
  208.       color = "black";
  209.       text = "E-mail address";
  210.       pageno = 2;
  211.    }
  212.  
  213.  
  214.    with (this.e_mailAddress = new Text(this)){
  215.       left = 18;
  216.       top = 8;
  217.       width = 36;
  218.       dataLink = parent.users1.rowset.fields["E-mail address"];
  219.       pageno = 2;
  220.    }
  221.  
  222.  
  223.    with (this.registerButton = new Button(this)){
  224.       left = 2;
  225.       top = 11;
  226.       width = 14;
  227.       text = "Register";
  228.       pageno = 2;
  229.       onServerClick = class::registerButton_onServerClick;
  230.    }
  231.  
  232.  
  233.    with (this.cancelButton1 = new Button(this)){
  234.       left = 20;
  235.       top = 11;
  236.       width = 14;
  237.       text = "Cancel";
  238.       pageno = 2;
  239.       onServerClick = class::cancelNew;
  240.    }
  241.  
  242.  
  243.    with (this.html9 = new HTML(this)){
  244.       height = 2;
  245.       left = 2;
  246.       top = 1;
  247.       width = 52;
  248.       color = "black";
  249.       text = "<H2>New User Registration, Page Two</H2>";
  250.       pageno = 3;
  251.    }
  252.  
  253.  
  254.    with (this.html10 = new HTML(this)){
  255.       height = 1.2353;
  256.       left = 2;
  257.       top = 4;
  258.       width = 18;
  259.       color = "black";
  260.       text = "Login name";
  261.       pageno = 3;
  262.    }
  263.  
  264.  
  265.    with (this.userName1 = new Text(this)){
  266.       left = 20;
  267.       top = 4;
  268.       width = 34;
  269.       dataLink = parent.users1.rowset.fields["User name"];
  270.       pageno = 3;
  271.    }
  272.  
  273.  
  274.    with (this.html11 = new HTML(this)){
  275.       height = 1.2353;
  276.       left = 2;
  277.       top = 6;
  278.       width = 18;
  279.       color = "black";
  280.       text = "Password";
  281.       pageno = 3;
  282.    }
  283.  
  284.  
  285.    with (this.password1 = new Password(this)){
  286.       left = 20;
  287.       top = 6;
  288.       width = 34;
  289.       pageno = 3;
  290.       dataLink = parent.users1.rowset.fields["Password"];
  291.    }
  292.  
  293.  
  294.    with (this.html12 = new HTML(this)){
  295.       height = 1.2353;
  296.       left = 2;
  297.       top = 8;
  298.       width = 18;
  299.       color = "black";
  300.       text = "Re-type password";
  301.       pageno = 3;
  302.    }
  303.  
  304.  
  305.    with (this.password2 = new Password(this)){
  306.       left = 20;
  307.       top = 8;
  308.       width = 34;
  309.       pageno = 3;
  310.       value = "";
  311.    }
  312.  
  313.  
  314.    with (this.tryNameButton = new Button(this)){
  315.       left = 2;
  316.       top = 11;
  317.       width = 18;
  318.       text = "Try login name";
  319.       pageno = 3;
  320.       onServerClick = class::tryNameButton_onServerClick;
  321.    }
  322.  
  323.  
  324.    with (this.cancelButton2 = new Button(this)){
  325.       left = 22;
  326.       top = 11;
  327.       width = 18;
  328.       text = "Cancel";
  329.       pageno = 3;
  330.       onServerClick = class::cancelNew;
  331.    }
  332.  
  333.  
  334.    with (this.waitingLabel = new HTML(this)){
  335.       height = 1.2353;
  336.       left = 2;
  337.       top = 1;
  338.       width = 38;
  339.       color = "black";
  340.       text = "HTML13";
  341.       pageno = 4;
  342.    }
  343.  
  344.  
  345.    with (this.viewerButton = new Button(this)){
  346.       left = 2;
  347.       top = 5;
  348.       width = 38;
  349.       text = "Go to message viewer";
  350.       pageno = 4;
  351.       onServerClick = class::viewerButton_onServerClick;
  352.       onClick = class::viewerButton_onClick;
  353.    }
  354.  
  355.  
  356.    with (this.adminButton = new Button(this)){
  357.       left = 2;
  358.       top = 7;
  359.       width = 38;
  360.       text = "Administration";
  361.       pageno = 4;
  362.       onServerClick = class::adminButton_onServerClick;
  363.       onClick = class::adminButton_onClick;
  364.    }
  365.  
  366.  
  367.    with (this.html13 = new HTML(this)){
  368.       height = 1.2353;
  369.       left = 2;
  370.       top = 1;
  371.       width = 38;
  372.       color = "black";
  373.       text = "There are no new messages";
  374.       pageno = 5;
  375.    }
  376.  
  377.  
  378.    with (this.adminButton2 = new Button(this)){
  379.       left = 2;
  380.       top = 3;
  381.       width = 38;
  382.       text = "Administration";
  383.       pageno = 5;
  384.       onServerClick = class::adminButton_onServerClick;
  385.    }
  386.  
  387.  
  388.    with (this.html14 = new HTML(this)){
  389.       height = 1.2353;
  390.       left = 2;
  391.       top = 1;
  392.       width = 38;
  393.       color = "black";
  394.       text = "<H2>Reset High Message Number</H2>";
  395.       pageno = 6;
  396.    }
  397.  
  398.  
  399.    with (this.msgRangeLabel = new HTML(this)){
  400.       height = 2;
  401.       left = 2;
  402.       top = 3;
  403.       width = 38;
  404.       color = "black";
  405.       text = "HTML15";
  406.       pageno = 6;
  407.    }
  408.  
  409.  
  410.    with (this.hmn = new Text(this)){
  411.       left = 2;
  412.       top = 5;
  413.       width = 14;
  414.       dataLink = parent.users1.rowset.fields["HMN"];
  415.       pageno = 6;
  416.       onChange = class::hmn_onChange;
  417.    }
  418.  
  419.  
  420.    with (this.setHMNButton = new Button(this)){
  421.       left = 2;
  422.       top = 7;
  423.       width = 12;
  424.       text = "Set";
  425.       pageno = 6;
  426.       onServerClick = class::setHMNButton_onServerClick;
  427.    }
  428.  
  429.  
  430.    with (this.cancelHMNButton = new Button(this)){
  431.       left = 18;
  432.       top = 7;
  433.       width = 12;
  434.       text = "Cancel!";
  435.       pageno = 6;
  436.       onServerClick = class::cancelHMNButton_onServerClick;
  437.    }
  438.  
  439.  
  440.    with (this.listNewButton = new Button(this)){
  441.       left = 2;
  442.       top = 3;
  443.       width = 38;
  444.       text = "List new messages";
  445.       pageno = 4;
  446.       onServerClick = class::listNewButton_onServerClick;
  447.       onClick = class::listNewButton_onClick;
  448.    }
  449.  
  450.  
  451.    with (this.minHMN = new Hidden(this)){
  452.       left = 32;
  453.       top = 5;
  454.       value = "";
  455.       pageno = 6;
  456.    }
  457.  
  458.  
  459.    with (this.maxHMN = new Hidden(this)){
  460.       left = 38;
  461.       top = 5;
  462.       value = "";
  463.       pageno = 6;
  464.    }
  465.  
  466.  
  467.    with (this.hiddenAction = new Hidden(this)){
  468.       left = 44;
  469.       top = 13;
  470.       value = "";
  471.       pageno = 0;
  472.    }
  473.  
  474.  
  475.    with (this.hiddenMsg = new Hidden(this)){
  476.       left = 50;
  477.       top = 13;
  478.       value = "0";
  479.       pageno = 0;
  480.    }
  481.  
  482.    this.rowset = this.users1.rowset;
  483.  
  484.    function newButton_onServerClick()
  485.    {
  486.      this.form.rowset.abandon()       // Cancel Locate mode for login
  487.      this.form.users2.active = true;  // Activate 2nd query for lookup
  488.      this.form.rowset.beginAppend();  // Add new user
  489.      this.form.pageno = 2;            // Switch to first new user page
  490.    }
  491.  
  492.    function cancelNew()
  493.    {
  494.      this.form.rowset.abandon();  // Abandon the append
  495.      this.form.beginLogin();      // Go back to Locate mode and touch the fields
  496.      this.form.pageno = 1;        // Switch back to the login page
  497.    }
  498.  
  499.    function registerButton_onServerClick()
  500.    {
  501.      this.form.userName1.value = this.form.firstName.value + " " + this.form.lastName.value;
  502.      this.form.password2.value = "";
  503.      this.form.pageno = 3;
  504.    }
  505.  
  506.    function tryNameButton_onServerClick()
  507.    {
  508.      try {
  509.        var e = new Exception();  // Create Exception object in case you need to throw
  510.        if ( this.form.users2.rowset.applyLocate( '"User name" = \'' +
  511.            this.form.userName1.value + '\'' ) )
  512.        { // If user name is already used
  513.          e.message = "Login name already in use";
  514.          throw e;  // set the error message and throw the exception
  515.        }
  516.        if ( this.form.password1.value != this.form.password2.value ) {
  517.          e.message = "Passwords do not match";
  518.          throw e;  // Same if passwords donÆt match
  519.        }
  520.        // If you get this far, there were no errors
  521.        this.form.rowset.save();  // so save the new user
  522.        this.form.checkNewMessages();
  523.      }
  524.      catch ( Exception e ) {     // When thereÆs an exception
  525.        this.text = e.message;    // Set the buttonÆs text to the appropriate message
  526.      }
  527.    }
  528.  
  529.    function beginLogin()
  530.    {
  531.      this.rowset.beginLocate();                       // Switch to Locate mode for login
  532.      this.userName.value = this.password.value = "";  // Touch fields to require entry
  533.    }
  534.  
  535.    function Form_onServerLoad()
  536.    {
  537.      this.beginLogin();
  538.    }
  539.  
  540.    function loginButton_onServerClick()
  541.    {
  542.      if ( this.form.rowset.applyLocate() ) {
  543.        this.form.checkNewMessages();
  544.      }
  545.      else {
  546.        this.text = "Try again";
  547.        this.form.beginLogin();
  548.      }
  549.    }
  550.  
  551.    function checkNewMessages()
  552.    {
  553.      // See if there are any new messages
  554.      this.messages1.rowset.filter = '"Message #" > ' + 
  555.                                     parseInt( this.rowset.fields[ "HMN" ].value );
  556.      if ( this.messages1.rowset.endOfSet ) {
  557.        // No new messages
  558.        this.pageno = 5;
  559.      }
  560.      else {
  561.        this.pageno = 4;
  562.        // Check for waiting messages
  563.        this.waitingLabel.text = this.messages1.rowset.applyLocate( '"To" = \'' +
  564.                                 this.rowset.fields[ "User name" ].value + '\'') ?
  565.                                 "You have waiting messages!" : "No waiting messages";
  566.      }
  567.    }
  568.  
  569.    function viewerButton_onServerClick()
  570.    {
  571.      _sys.forms.run( "VIEWER", this.form );
  572.      this.form.close();
  573.    }
  574.  
  575.    function resetHMN()
  576.    {
  577.      this.messages1.rowset.clearFilter();
  578.      this.messages1.rowset.first();
  579.      this.minHMN.value = parseInt( this.messages1.rowset.fields[ "Message #" ].value );
  580.      this.messages1.rowset.last();
  581.      this.maxHMN.value = parseInt( this.messages1.rowset.fields[ "Message #" ].value );
  582.      this.msgRangeLabel.text = "Messages in the database are numbered from " +
  583.                                parseInt( this.minHMN.value ) + " to " + 
  584.                                parseInt( this.maxHMN.value );
  585.      this.pageno = 6;
  586.      this.rowset.beginEdit();
  587.    }
  588.  
  589.    function setHMNButton_onServerClick()
  590.    {
  591.      if ( this.form.hmn.value >= 0 &&
  592.           this.form.hmn.value <= parseInt( this.form.maxHMN.value ) ) {
  593.        this.form.rowset.save();
  594.        this.form.checkNewMessages();
  595.      }
  596.      else {
  597.        this.form.msgRangeLabel.color = "red";
  598.      }
  599.    }
  600.  
  601.    function cancelHMNButton_onServerClick()
  602.    {
  603.      this.form.rowset.abandon();
  604.      this.form.checkNewMessages();
  605.    }
  606.  
  607.    function adminButton_onServerClick()
  608.    {
  609.      this.form.resetHMN();
  610.    }
  611.  
  612.    function listNewButton_onServerClick()
  613.    {
  614.      _sys.reports.run( "NEWMSG", this.form );
  615.    }
  616.  
  617.    function hmn_onChange()
  618.    {
  619.      if ( parseInt( this.value ) < parseInt( this.form.minHMN.value - 1 ) ||
  620.           parseInt( this.value ) > parseInt( this.form.maxHMN.value ) ) {
  621.        alert( "The new HMN must be between " + parseInt( this.form.minHMN.value - 1 ) +
  622.               " and " + parseInt( this.form.maxHMN.value ) );
  623.      }
  624.    }
  625.  
  626.    function listNewButton_onClick()
  627.    {
  628.      this.form.target = "reportFrame";
  629.      this.form.hiddenAction.value = "NEW";
  630.      this.form.elements[ 1 ].value = "-1";
  631.      this.form.submit();
  632.    }
  633.  
  634.    function viewerButton_onClick()
  635.    {
  636.      this.form.target = "_self";
  637.      this.form.hiddenAction.value = "VIEWER";
  638.      this.form.elements[ 1 ].value = "-1";
  639.      this.form.submit();
  640.    }
  641.  
  642.    function adminButton_onClick()
  643.    {
  644.      this.form.target = "_self";
  645.      this.form.hiddenAction.value = "ADMIN";
  646.      this.form.elements[ 1 ].value = "-1";
  647.      this.form.submit();
  648.    }
  649.  
  650.    function Form_onServerSubmit()
  651.    {
  652.      if ( this.hiddenAction.value == "VIEWER" ) {
  653.        if ( parseInt( this.hiddenMsg.value ) > 0 ) {
  654.          _sys.forms.run( "VIEWER", this, parseInt( this.hiddenMsg.value ) );
  655.        }
  656.        else {
  657.          _sys.forms.run( "VIEWER", this );
  658.        }
  659.      }
  660.      else if ( this.hiddenAction.value == "NEW" ) {
  661.        _sys.reports.run( "NEWMSG", this );
  662.      }
  663.      else if ( this.hiddenAction.value == "ADMIN" ) {
  664.        this.resetHMN();
  665.      }
  666.    }
  667.  
  668. }
  669.