⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getpin.tcl

📁 WindML3.0补丁 WIND MEDIA LIBRARY 3.0.3 (CP3) for Tornado 2.2.0 and Tornado 2.2.1 Up-to-date produc
💻 TCL
📖 第 1 页 / 共 2 页
字号:
# GETPIN.TCL - Setup procedures for implementing user authorization 
#              wizard page
#
# Copyright 1999 Wind River Systems, Inc
#
# modification history
# --------------------
# 03d,22may02,bwd  SPR 77766: use setupVals(WRS) variable for company name
# 03c,03apr02,wmd  Fix SPR #75050, no need to call Authorize Pin request if
#                  PIN = 0, and add new Flexlm key words to validate license
#                  file.
# 03b,05mar02,bwd  Modified SETUP to be non-tornado centric
# 03a,12jun01,j_w  Added for Tornado 2.2
# 02g,19dec00,wmd  Change wording for authorization error message.
# 02f,15dec00,wmd  Fix PIN -> Authorization Code for Text mode.
# 02e,15dec00,wmd  Modify comments for where authorization code is printed.
# 02d,23may00,bwd  Modified codes to allow email address beginning with
#                  numbers
# 02c,18may00,bwd  SPR 31003 - set a variable to return to DBQUERY page if
#                  user click cancel while retrieving data from database
# 02b,07feb00,bwd  Added codes for test automation to retrieve values from
#                  input script file
# 02a,04feb00,bwd  TEXT MODE: Fixed the loop to skip prompting for pin if pin
#                  is not required
# 01z,04feb00,wmd  Fix spelling.
# 01y,04feb00,j_w  Initialized lmSavePin to 0
# 01x,04feb00,j_w  Rename page title to Contact Information if no PIN required
# 01w,03feb00,bwd  Added coded to check email address format for GUI mode
# 01v,02feb00,bwd  Removed debug messages
# 01u,02feb00,bwd  Fixed writing of the registry values - use queueExecute to
#                  save all the reg values
# 01t,01feb00,bwd  Added codes for TEXT MODE for new user information
# 01s,31jan00,j_w  Added user's info and fix duplicate code
# 01r,25jan00,j_w  Fixed spacing
# 01r,25jan00,bwd  Fixed the codes to correctly accept input when prompting to
#                  save pin number
# 01q,10jan00,bwd  Deleted the register authCode if the authorization pin
#                  doesnot need to be saved
# 01p,07jan00,bwd  Fixed codes to use saved pin number when press <Enter> on
#                  prompt
# 01o,07jan00,bwd  No Test automation for command line SETUP
# 01n,17dec99,clc  change  switch statement patterns
# 01m,17dec99,clc  change  switch patterns
# 01l,09dec99,clc  Fix error in printing of banner.
# 01k,07dec99,j_w  Add more space for checkbox descriptions
# 01k,02dec99,clc  add text mode
# 01j,30nov99,wmd  Testing..
# 01i,23nov99,wmd  Add wait cursor.
# 01h,17nov99,wmd  Put the nextCallback inside the automation braces.
# 01g,17nov99,bwd  Added sections for automatic LM installation
# 01f,15nov99,wmd  Remove debugging messages.
# 01e,11nov99,wmd  Testing...
# 01d,08nov99,wmd  Further development.
# 01c,03nov99,wmd  Fix to not disable the Back button.
# 01b,02nov99,wmd  Need to enable the next button due to downstream disabling.
# 01a,05Oct99,j_w  written
#

global lmSavePin
set lmSavePin 0

#############################################################################
#
# pageCreate(userAuthorization) - prompts user for authorization code 
#                                 abd sends to
# database application with an authorizePin request.
#
# The page will not advance to the next page unless the PIN number is 
# validated by the database application.
#
# SYNOPSIS
# .tS
# pageCreate(userAuthorization)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc pageCreate(userAuthorization) {} {
    global ctrlVals setupVals lmVals 
    global AuthorizePinRequest lmSavePin 
    global cancelDBQUERY

    # if user clicks Cancel while retrieving data from
    # Wind River database, return to DBQUERY page
    if { $cancelDBQUERY } {
        set cancelDBQUERY 0
        backCallback
        return 1
    }

    # get user name, phone, email and pin store them in the reg array
    # if test automation, retrieve values from input script
    # otherwise, get values from registry

    foreach key {sysAdminName userPhone userEmail pin} {

        if { ![isStandAlone] } {
            if { $ctrlVals(useInputScript) } {
                set reg($key) $setupVals($key)
            } else {
                if { ![catch {sysRegistryValueRead HKEY_CURRENT_USER \
                                  "Software\\$setupVals(WRS)" "$key"} value] } {
                    set reg($key) $value
                    dbgputs "$key: $reg($key)"
                } else {
                    set reg($key) ""
                }
            }
        } else {
            set reg($key) $setupVals($key)
        }
    }

    # populate sysAdmin from userName
    if {"$reg(sysAdminName)" == ""} {
        set reg(sysAdminName) [userNameGet]
    }
        
    # reset pinNum if pin is not required
    if {!$lmVals(lmPinRequired)} {
        set lmVals(pinNum) 0
    }

    if { $lmVals(lmPinRequired) } {
        set pinMsg [strTableGet USERAUTH_USEPIN_MSG]
        set title [strTableGet USERAUTH_TITLE]
    } else {
        set pinMsg [strTableGet USERAUTH_NOPIN_MSG]
        set title [strTableGet USERAUTH_TITLE_NOPIN]
    }
                
    if { [isGUImode] } {
        # enable bitmap display
        controlHide $ctrlVals(mainWindow).bitmap 0
                
        set ctrlVals(volatileFrm) [list \
                [list label -name label1 \
                            -title $pinMsg \
                            -x 100 -y 10 -w 190 -h 40] \
                [list label -name label1 -title "User/Sys Admin" \
                            -x 100 -y 57 -w 35 -h 15] \
                                [list text -name sysAdminName -border \
                                           -callback {onTextChange sysAdminName sysAdminName} \
                                           -x 140 -y 60 -w 120 -h 12] \
                                [list label -name label2 -title "Phone" \
                                            -x 100 -y 80 -w 35 -h 12] \
                                [list text -name userPhone -border \
                                            -callback {onTextChange userPhone userPhone} \
                                            -x 140 -y 80 -w 120 -h 12] \
                                [list label -name label3 -title "Email" \
                                            -x 100 -y 100 -w 35 -h 12] \
                                [list text -name userEmail -border \
                                           -callback {onTextChange userEmail userEmail} \
                                           -x 140 -y 100 -w 120 -h 12] ]

                if { $lmVals(lmPinRequired) } {
                        lappend ctrlVals(volatileFrm) \
                                        [list label -name label4 -title "Authorization Code"\
                                                    -x 100 -y 120 -w 80 -h 12] \
                                        [list text -name pin -border -callback onPin \
                                                           -x 140 -y 120 -w 60 -h 12] \
                                        [list boolean -name savePin -auto \
                                                      -title [strTableGet SAVE_AUTHCODE] \
                                                                  -callback onSavePin \
                                                                  -x 100 -y 140 -w 180 -h 12] 
        }

        set w [dlgFrmCreate $title]

        controlEnable $w.backButt 1
        controlEnable $w.cancelButt 1
        controlEnable $w.nextButt 1
                
                # get pin from registry 
                if { $lmVals(lmPinRequired) } {
                        controlCheckSet $w.savePin 1
                        controlEnable $w.nextButt 0
                        controlValuesSet $w.pin $reg(pin)
                }

                # get values from registry
                foreach key {sysAdminName userPhone userEmail} {
                        controlValuesSet $w.$key $reg($key)
                }
                
                if { "$reg(sysAdminName)" == "" } {
                        controlFocusSet $w.sysAdminName
                } elseif { "$reg(userPhone)" == "" } {
                        controlFocusSet $w.userPhone
                } elseif { "$reg(userEmail)" == "" } {
                        controlFocusSet $w.userEmail 
                } else {
                        if { $lmVals(lmPinRequired) } {
                                controlFocusSet $w.pin
                        }
                }
                
                
        # automatic LM installation

        if { $ctrlVals(useInputScript) } {
            set lmVals(pinNum) $setupVals(pin)
            autoSetupLog "User Authorization Page: skipped"
                        autoSetupLog "\tUser/Sys Admin: $setupVals(sysAdminName)"
                        autoSetupLog "\tPhone: $setupVals(userPhone)"
                        autoSetupLog "\tEmail: $setupVals(userEmail)"

            if { $lmVals(lmPinRequired) } {
                autoSetupLog "\tPIN: $setupVals(pin)"
            }

            nextCallback
        }

    } else { # text mode

        printPageTitle [strTableGet USERAUTH_TITLE]

        # display message
        puts "$pinMsg\n\n"

        set question "name"
        while {[string compare $question "done"] != 0} {
            switch -exact $question {
                "name"  {                
                    if {"$reg(sysAdminName)" == ""} {
                        set ret [prompt "User/Sys Admin name: "]
                    } else {
                        set ret [prompt "User/Sys Admin name: \
                                 \[$reg(sysAdminName)\]"]
                    }
 
                    switch -regexp -- $ret {
                        "^[eE][xX][iI][tT]$" {  return 0  }
                        "^-$"  { backCallback ; return 0  }
                        "^$" {
                            if { $reg(sysAdminName) != "" } {
                                set setupVals(sysAdminName) $reg(sysAdminName)
                                set question "phone"
                            }
                        }
                        default {
                            set setupVals(sysAdminName) $ret
                            set question "phone"
                        }
                    }
                }
                "phone" {
                    if {"$reg(userPhone)" == ""} {
                        set ret [prompt "Phone: "]
                    } else {
                        set ret [prompt "Phone: \[$reg(userPhone)\]"]
                    }

                    switch -regexp -- $ret {
                        "^[eE][xX][iI][tT]$" {  return 0  }
                        "^-$" { 
                            set question "name"      
                        }
                        "^$" {
                            if { $reg(userPhone) != "" } {
                                set setupVals(userPhone) $reg(userPhone)
                                set question "email"
                            }
                        }
                        default {
                            set setupVals(userPhone) $ret
                            set question "email"
                        }
                    }
                }
                "email" {
                    if {"$reg(userEmail)" == ""} {
                        set ret [prompt "Email: "]
                    } else {
                        set ret [prompt "Email: \[$reg(userEmail)\]"]
                    }

                    switch -regexp -- $ret {
                        "^[eE][xX][iI][tT]$" {  return 0  }
                        "^-$" { 
                            set question "phone"      
                        }
                        "^$" {
                            if { $reg(userEmail) != "" } {
                                set setupVals(userEmail) $reg(userEmail)

                                # if pin not required, proceed to next page

                                if { !$lmVals(lmPinRequired) } {
                                    set question "done"
                                } else {
                                    set question "pin"
                                }
                            }
                        }
                        "^[a-zA-Z].*@.*" {
                            set setupVals(userEmail) $ret

                            # if pin not required, proceed to next page

                            if { !$lmVals(lmPinRequired) } {
                                set question "done"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -