TMGCHR ;TMG/kst/Custom version of CHRISTEN ;03/25/06
         ;;1.0;TMG-LIB;**1**;11/01/04
 
 ;"CHRISTEN(INFO)   This library will provide optional NON-INTERACTIVE versions of standard code.
 
 ;"=============================================================================
 ;"Kevin Toppenberg, MD  11-04
 ;"
 ;"Purpose:
 ;"
 ;"This library will provide optional NON-INTERACTIVE versions of standard code.
 ;"
 ;"CHRISTEN(INFO)
 ;"
 ;"Dependancies:
 ;"  TMGQIO
 ;"=============================================================================
 
MUDCHR        ;ISC-SF/GMB-Christen Site ;04/17/2002  11:48
        ;;8.0;MailMan;;Jun 28, 2002
        ; Entry points used by MailMan options (not covered by DBIA):
        ; CHRISTEN      XMCHRIS - Edit MailMan Site Parameters
 ;"
 ;"K. Toppenberg's changes made November, 2004
 ;"
 ;"Input:
 ;"     Note: INFO variable is completely an OPTIONAL parameter.
 ;"                If not supplied, interactive mode used
 ;"        INFO("SILENT-OUTPUT") -- 1 = output is supressed.
 ;"        INFO("SILENT-INPUT") -- 1 = User-interactive input is supressed.
 ;"
 ;"        ** if in SILENT-INPUT mode, THEN the following data should be supplied:
 ;"     ----------------------
 ;"        INFO("DOMAIN") -- Answer for 'DOMAIN' to edit-- should be an existing domain
 ;"        INFO("PARENT") -- Answer for 'PARENT' domain question
 ;"        INFO("TIMEZONE") -- Answer for 'TIME ZONE' question
 ;"        INFO("CONTINUE") -- Answer for "Are you sure you want to change the name of this facility"
 ;"Output:
 ;"        If in SILENT-OUTPUT mode, then output that would normally go to the screen, will be routed to this array
 ;"        NOTE: INFO SHOULD BE PASSED BY REFERENCE if user wants this information passed back out.
 ;"        INFO("TEXT","LINES")=Number of output lines
 ;"        INFO("TEXT",1)= 1st output line
 ;"        INFO("TEXT",2)= 2nd output line, etc...
 ;
 ;
CHRISTEN(INFO)        ;Set up/Change MailMan Site Parameters
        ;
        NEW SILNTOUT SET SILNTOUT=$get(INFO("SILENT-OUTPUT"),0) ;//kt
        NEW SILENTIN SET SILENTIN=$GET(INFO("SILENT-INPUT"),0) ;//KT
        KILL INFO("TEXT") ;//kt
 
        N XMREC,XMABORT
        S XMABORT=0
        S XMREC=$G(^XMB(1,1,0)) I '+XMREC,$O(^XMB(1,0)) G E
        I XMREC="" D
        . D INIT
        E  D
        . D CHANGE
        Q:XMABORT
        D PARENT
        D SCRIPT
        G Q
        ;
        ;
        ;======================================================================
INIT        ; Initial Christening
        N DIC,DIE,Y,DA,XMFDA
        ;
        S DIC=4.2
        IF SILENTIN=1 DO
        . S DIC(0)="EM"
        . SET X=$GET(INFO("DOMAIN"))
        ELSE  DO
        . S DIC(0)="AEMQ"
        D ^DIC
        I Y<1 S XMABORT=1 D E1 Q
        S XMFDA(4.3,"+1,",.01)=+Y
        D UPDATE^DIE("","XMFDA")
        K DIC,Y
        do InputParent
        ;"if SILENTIN>0 do     ;"Note: Fields 3=PARENT, 1=TIME ZONE
        ;". set DR="3///"_$get(INFO("PARENT"),"FORUM.VA.GOV")   ;"3 '/'s means force the data in
        ;". set DR=DR_";1///"_$get(INFO("PARENT"),"EST")
        ;"else  do
        ;". S DR="3//FORUM.VA.GOV;1//EST"    ;"2 '/'s means ask user, with default suggestion.
        ;"S DIE=4.3  ;"MAILMAN SITE PARAMETERS
        ;"S DA=1     ;"Record#/IEN = 1
        ;"D ^DIE     ;"Input selected data elements to a given record. (only for existing records)
        I $D(Y) S XMABORT=1 D E1
        Q
        ;
        ;
        ;=======================================================================
CHANGE        ;
        N XMSITE,DIE,DA,DR,DIC,X,Yi
        IF $D(^XMB("NETNAME")) SET XMSITE=^XMB("NETNAME")
        ELSE  IF $D(^XMB("NAME")) SET XMSITE=^XMB("NAME")
        ELSE  IF $D(^DIC(4.2,+XMREC,0)) SET XMSITE=$P(^(0),U)
        ELSE  SET XMSITE=XMREC
        I $$SURE(XMSITE)=0 S XMABORT=1 Q  ; Are you sure?
        S DIC=4.2
        IF SILENTIN=0 DO
        . S DIC(0)="AEMQ"
        . S DIC("B")=$S($D(^DIC(4.2,+XMREC,0)):$P(^(0),U),1:XMSITE)
        ELSE  DO
        . SET DIC(0)="EM"
        . SET DIC("B")=""
        . SET X=$GET(INFO("DOMAIN"))
        D ^DIC
        I Y=-1 S XMABORT=1 Q
        I XMSITE'=$P(Y,U,2) D
        . I +Y=^XMB("NUM") D
        . . ; The domain name in file 4.2 has been changed.
        . . ; The pointer to file 4.2 has stayed the same.
        . . ; The filer won't fire the xrefs, so we need to do it manually
        . . S (^XMB("NETNAME"),^XMB("NAME"))=$P(Y,U,2)
        . E  D
        . . N XMFDA
        . . S XMFDA(4.3,"1,",.01)=+Y
        . . D FILE^DIE("","XMFDA")
        . DO OUTP^TMGQIO(SILNTOUT,"!","!","The domain name for this facility is now: ",^XMB("NETNAME"))
        E  D
        . DO OUTP^TMGQIO(SILNTOUT,"!","!","The domain name for this facility remains: ",^XMB("NETNAME"))
        K DIC,Y
        do InputParent
        ;"S DR="3//FORUM.VA.GOV;1//EST"
        ;"S DIE=4.3,DA=1
        ;"D ^DIE
        Q
        ;
        ;
        ;=======================================================================
InputParent
        if SILENTIN>0 do     ;"Note: Fields 3=PARENT, 1=TIME ZONE
        . set DR="3///"_$get(INFO("PARENT"),"FORUM.VA.GOV")   ;"3 '/'s means force the data in
        . set DR=DR_";1///"_$get(INFO("PARENT"),"EST")
        else  do
        . S DR="3//FORUM.VA.GOV;1//EST"    ;"2 '/'s means ask user, with default suggestion.
        S DIE=4.3  ;"MAILMAN SITE PARAMETERS
        S DA=1     ;"Record#/IEN = 1
        D ^DIE     ;"Input selected data elements to a given record. (only for existing records)
        quit
        ;
        ;
        ;=======================================================================
SURE(XMSITE)        ;  Function returns 1 if sure; 0 if not
        N DIR,X,Y
        N RESULT SET RESULT=0 ;        Default to not sure
        ;
        DO OUTP^TMGQIO(SILNTOUT,"!","!","         * * * *  WARNING  * * * *","!","!")
        DO OUTP^TMGQIO(SILNTOUT,"You are about to change the domain name of this facility","!")
        DO OUTP^TMGQIO(SILNTOUT,"in the MailMan Site Parameters file.","!")
        DO OUTP^TMGQIO(SILNTOUT,"Currently, this facility is named: ",XMSITE,"!","!")
        DO OUTP^TMGQIO(SILNTOUT,"You must be extremely sure before you proceed!","!")
        DO OUTP^TMGQIO(SILENTIN,"Are you sure you want to change the name of this facility? NO//")
        DO INP^TMGQIO(.X,SILENTIN,120,$GET(INFO("CONTINUE")))
        IF X="" SET X="NO"
        IF "Yy"[$E(X_"N") SET RESULT=1  ;Yes, I'm sure!
        Q RESULT
        ;
        ;
PARENT        ;
        N XMPARENT
        S XMPARENT=+$G(^XMB("PARENT"))
        I XMPARENT S XMPARENT=$S($D(^DIC(4.2,XMPARENT,0)):$P(^(0),U),1:0)
        I XMPARENT'=0 D
        . DO OUTP^TMGQIO(SILNTOUT,"!","!",XMPARENT," has been initialized as your 'parent' domain.")
        . DO OUTP^TMGQIO(SILNTOUT,"!","(Forum is usually the parent domain, unless this is a subordinate domain.)")
        . DO OUTP^TMGQIO(SILNTOUT,"!","!","You may edit the MailMan Site Parameter file to change your parent domain.")
        E  D
        . DO OUTP^TMGQIO(SILNTOUT,"!","!",$C(7),"*** YOUR PARENT DOMAIN HAS NOT BEEN INITIALIZED !!! ***")
        . DO OUTP^TMGQIO(SILNTOUT,"!","!","You MUST edit the MailMan Site Parameter file to ENTER your parent domain.")
        Q
        ;
        ;
SCRIPT        ;RESET AUSTIN SCRIPT
        ;G SCRIPT^XMYPDOM
        DO OUTP^TMGQIO(SILNTOUT,"!","!","We will not initialize your transmission scripts.")
        Q
        ;
        ;
        ;=======================================================================
Q        DO OUTP^TMGQIO(SILNTOUT,"!","!","Use the 'Subroutine editor' option under network management menu to add your")
        DO OUTP^TMGQIO(SILNTOUT,"!","site passwords to the MINIENGINE script, and the 'Edit a script' option")
        DO OUTP^TMGQIO(SILNTOUT,"!","to edit any domain scripts that you choose to.")
        ;D ^XMYPDOM
        Q
        ;
        ;
        ;======================================================================
PMB        S Y=Y+1000
        S ^XMB(3.7,.5,2,+Y,1,0)=^TMP("XM",I,1,0)
        S ^XMB(3.7,.5,2,"B",$E($P(Y(0),U,1),1,30),+Y)=""
        S ^XMB(3.7,.5,2,+Y,0)=$P(Y(0),U)
        F J=0:0 DO  Q:J'>0
        . S J=$O(^TMP("XM",I,1,J))
        . Q:J'>0
        . S ^XMB(3.7,.5,2,+Y,1,J,0)=J
        . W "."
        Q
        ;
        ;
E        DO OUTP^TMGQIO(SILNTOUT,$C(7),"!","!")
        DO OUTP^TMGQIO(SILNTOUT,"There is a FILE INTEGRITY problem in your MailMan Site Parameters file","!")
        DO OUTP^TMGQIO(SILNTOUT,"There should only be one entry and that entry should be entry number 1.","!")
E1        DO OUTP^TMGQIO(SILNTOUT,$C(7),"!")
        DO OUTP^TMGQIO(SILNTOUT,"Your MailMan site parameters MUST be reviewed.","!")
EQ        DO OUTP^TMGQIO(SILNTOUT,"Then you can finish the INIT by executing POST^XMYPOST.","!","!")
        Q
E2        DO OUTP^TMGQIO(SILNTOUT,$C(7),"!","You do not yet have an entry in your MailMan Site Parameters File","!")
        DO OUTP^TMGQIO(SILNTOUT,"Use FileMan to make an entry.","!")
        G EQ
 
 
