XMVVITA ;ISC-SF/GMB-Edit User's MailMan Variables ;04/29/2003 07:49
;;8.0;MailMan;**18**;Jun 28, 2002
; Replaces ^XMGAPI1,FWD^XMA21FWD,BANNER^XMA6,EDIT^XMA7 (ISC-WASH/CAP)
;
; Entry points used by MailMan options (not covered by DBIA):
; BANNER XMBANNER - Edit user's banner
; EDIT XMEDITUSER - Edit user's preferences
; FILTER XM FILTER EDIT - Edit user's message filters
; BASKET XM DELIVERY BASKET EDIT - Edit user's delivery basket preferences
; FORWARD XMEDITFWD - Edit user's forwarding address
; SURR XMEDITSURR - Edit user's surrogates
FORWARD ; Edit forwarding address
N XMIA
S XMIA=1
N DIE,DA,DR
S DIE=3.7
S DA=DUZ
S DR="2;2.1"
D ^DIE
Q
XMFWD(XMADDR,XMIA) ; Serves as input transform for 'forwarding address'
N XMERROR,XMRESTR,XMINSTR,XMFULL,XMFWDADD
I XMADDR'["@",".D.d.H.h.S.s."'[("."_$E(XMADDR,1,2)) K XMADDR Q
S XMINSTR("ADDR FLAGS")="X" ; do not create ^TMP(, just check.
S XMFWDADD=DUZ ; editing forwarding address
D ADDRESS^XMXADDR(DUZ,XMADDR,.XMFULL,.XMERROR)
I $D(XMERROR) K XMADDR Q
I XMFULL'["@" D
. ; Remote address is really local. OK if device or server.
. I ".D.H.S."[("."_$E(XMFULL,1,2)) S XMFULL=XMFULL_"@"_^XMB("NETNAME")
I XMFULL'["@" D Q
. ; Remote address is really local
. K XMADDR
. D EN^DDIOL($$EZBLD^DIALOG(38130)) ; You can't have your mail forwarded to a local address.
S XMADDR=XMFULL
Q
DELFWD(XMUSER,XMFWD,XMERROR) ; Delete a user's invalid forwarding address.
S XMFDA(3.7,XMUSER_",",2)="@"
D FILE^DIE("","XMFDA")
N XMPARM,XMINSTR,XMTEXT,XMAPPEND
S XMINSTR("FROM")=.5
S XMPARM(1)=XMFWD
I +XMERROR=XMERROR D
. D BLD^DIALOG(XMERROR,.XMERROR,"","XMTEXT","F")
. D MSG^DIALOG("AE",.XMAPPEND,"","","XMTEXT")
E D
. S XMPARM(2)=XMERROR
. S XMAPPEND=""
D TASKBULL^XMXBULL(.5,"XM FWD ADDRESS DELETE",.XMPARM,"XMAPPEND",XMUSER,.XMINSTR)
Q
BANNER ; Edit banner
N DIE,DA,DR
S DIE=3.7
S (XMDUZ,DA)=$G(XMDUZ,DUZ)
S DR=4
D ^DIE
D SETBAN^XMVVITAE(XMDUZ,.XMV)
Q
FILTER ; Edit filters
N DIE,DA,DR,XMIA
S XMIA=1
S DIE=3.7
S DA=DUZ
S DR="16;15" ; Message filters flag ; Message filters
D ^DIE
Q:$D(^XMB(3.7,DUZ,15,"AF"))
W !!,$C(7),$$EZBLD^DIALOG(38131) ; Note that you have no active filters.
Q
BASKET ; Edit delivery baskets
N DIE,DA,DR
S DIE=3.7
S DA=DUZ
S DR="16.2;S:X'=""S"" Y=0;1" ; Accept delivery basket? ; Select basket.
S DR(2,3.701)="3" ; Is this a delivery basket?
D ^DIE
Q
SURR ; Edit Surrogates
N DIE,DA,DR
S DIE="^XMB(3.7,"
S DA=DUZ
S DR="8" ; surrogate
D ^DIE
Q
EDIT ; Edit User Preferences
N DIE,DA,DR
D CHECK^XMVVITAE
W !!,$$EZBLD^DIALOG(38132,$$GET1^DID(3.7,"","","NAME")) ; Editing data in the MAILBOX file:
S DIE="^XMB(3.7,"
S DA=DUZ
S DR=""
S DR=DR_";4" ; banner
S DR=DR_";17" ; message display order
S DR=DR_";21" ; new message read order
S DR=DR_";18" ; message reader default
S DR=DR_";19" ; message reader prompt
S DR=DR_";20" ; new messages default option
S DR=DR_";6" ; show message preview
S DR=DR_";11" ; message action default
S DR=DR_";12" ; ask basket
S DR=DR_";13" ; show titles
S DR=DR_";14" ; priority responses flag
S DR=DR_";14.1" ; priority responses prompt
S DR=DR_";16.3" ; p-message queued from
S DR=DR_";9" ; mailman institution
S DR=DR_";2.21:2.23" ; network signature lines
S DR=DR_";4.5" ; introduction
S DR=$E(DR,2,99)
D ^DIE
D NEWORDER
W !!,$$EZBLD^DIALOG(38132,$$GET1^DID(200,"","","NAME")) ; Editing data in the NEW PERSON file:
S DIE="^VA(200,"
S DA=DUZ
S DR=""
S DR=DR_";31.3" ; preferred editor
S DR=DR_";.111" ; street address 1
S DR=DR_";.112" ; street address 2
S DR=DR_";.113" ; street address 3
S DR=DR_";.114" ; city
S DR=DR_";.115" ; state
S DR=DR_";.116" ; zip
S DR=DR_";.132" ; office phone
S DR=DR_";.136" ; fax #
S DR=DR_";.137" ; voice pager
S DR=DR_";.138" ; digital pager
S DR=DR_";.133"_$$EZBLD^DIALOG(38133,1) ; ADD'L PHONE 1 phone #3
S DR=DR_";.134"_$$EZBLD^DIALOG(38133,2) ; ADD'L PHONE 2 phone #4
S DR=$E(DR,2,99)
D ^DIE
D PREFER^XMVVITAE(DUZ,.XMV,.XMDISPI)
D SETBAN^XMVVITAE(XMDUZ,.XMV)
D SETNET^XMVVITAE(XMDUZ,.XMV)
Q
NEWORDER ;
N XMDIC,XMK
I $D(^XMB(3.7,DUZ,2,"AP")) D
. N I,XMKN,XMTEXT
. W !
. ;Current priority order for reading baskets with new messages:
. D BLD^DIALOG(38140,"","","XMTEXT","F")
. D MSG^DIALOG("WM","","","","XMTEXT")
. S (I,XMK)=0
. F S I=$O(^XMB(3.7,DUZ,2,"AP",I)) Q:'I D
. . F S XMK=$O(^XMB(3.7,DUZ,2,"AP",I,XMK)) Q:'XMK D
. . . S ^TMP("XM",$J,"AP",I,$$BSKTNAME^XMXUTIL(DUZ,XMK))=""
. S I=0,XMKN=""
. F S I=$O(^TMP("XM",$J,"AP",I)) Q:'I D
. . F S XMKN=$O(^TMP("XM",$J,"AP",I,XMKN)) Q:XMKN="" D
. . . W !,$J(I,4),?8,XMKN
. K ^TMP("XM",$J,"AP")
W !
;Editing the priority order for reading baskets with new messages.
;Note: You don't need priority ordering unless you want to change the
;default 'read new messages' basket from IN to other basket(s).
D BLD^DIALOG(38141,"","","XMTEXT","F")
D MSG^DIALOG("WM","","","","XMTEXT")
F D Q:XMK=U
. S XMDIC("B")="@" ; no default basket
. S XMDIC("S")="I Y>1" ; can't select IN or WASTE baskets
. S XMDIC("W")="W ?40,$P(^(0),U,4)"
. W !
. D SELBSKT^XMJBU(DUZ,"","",.XMDIC,.XMK) Q:XMK=U
. N DA,DR,DIE
. S DIE="^XMB(3.7,"_DUZ_",2,"
. S DA(1)=DUZ,DA=XMK
. S DR="4T" ; Read new messages basket priority
. D ^DIE
Q
GOTNS(XMDUZ) ; Function: Does the user have a network signature? (1=yes; 0=no)
Q "^^"'[$G(^XMB(3.7,XMDUZ,"NS1"))
CRE8NS ; The user does not have a network signature.
; Does the user want to create a network signature now?
; If the user creates one, routine sets $T to true; else false
N DIR,X,Y
S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39054) ; Yes
S DIR("A")=$$EZBLD^DIALOG(37309.5) ; Would you like to create a Network Signature now
D ^DIR Q:'Y
K DIR
D EDITNS
I $$GOTNS(DUZ)
Q
EDITNS ; Edit network signature
N DIE,DA,DR
S DIE="^XMB(3.7,",DA=DUZ,DR="2.21:2.23" D ^DIE
Q
XMVVITA ;ISC-SF/GMB-Edit User's MailMan Variables ;04/29/2003 07:49
+1 ;;8.0;MailMan;**18**;Jun 28, 2002
+2 ; Replaces ^XMGAPI1,FWD^XMA21FWD,BANNER^XMA6,EDIT^XMA7 (ISC-WASH/CAP)
+3 ;
+4 ; Entry points used by MailMan options (not covered by DBIA):
+5 ; BANNER XMBANNER - Edit user's banner
+6 ; EDIT XMEDITUSER - Edit user's preferences
+7 ; FILTER XM FILTER EDIT - Edit user's message filters
+8 ; BASKET XM DELIVERY BASKET EDIT - Edit user's delivery basket preferences
+9 ; FORWARD XMEDITFWD - Edit user's forwarding address
+10 ; SURR XMEDITSURR - Edit user's surrogates
FORWARD ; Edit forwarding address
+1 NEW XMIA
+2 SET XMIA=1
+3 NEW DIE,DA,DR
+4 SET DIE=3.7
+5 SET DA=DUZ
+6 SET DR="2;2.1"
+7 DO ^DIE
+8 QUIT
XMFWD(XMADDR,XMIA) ; Serves as input transform for 'forwarding address'
+1 NEW XMERROR,XMRESTR,XMINSTR,XMFULL,XMFWDADD
+2 IF XMADDR'["@"
IF ".D.d.H.h.S.s."'[("."_$EXTRACT(XMADDR,1,2))
KILL XMADDR
QUIT
+3 ; do not create ^TMP(, just check.
SET XMINSTR("ADDR FLAGS")="X"
+4 ; editing forwarding address
SET XMFWDADD=DUZ
+5 DO ADDRESS^XMXADDR(DUZ,XMADDR,.XMFULL,.XMERROR)
+6 IF $DATA(XMERROR)
KILL XMADDR
QUIT
+7 IF XMFULL'["@"
Begin DoDot:1
+8 ; Remote address is really local. OK if device or server.
+9 IF ".D.H.S."[("."_$EXTRACT(XMFULL,1,2))
SET XMFULL=XMFULL_"@"_^XMB("NETNAME")
End DoDot:1
+10 IF XMFULL'["@"
Begin DoDot:1
+11 ; Remote address is really local
+12 KILL XMADDR
+13 ; You can't have your mail forwarded to a local address.
DO EN^DDIOL($$EZBLD^DIALOG(38130))
End DoDot:1
QUIT
+14 SET XMADDR=XMFULL
+15 QUIT
DELFWD(XMUSER,XMFWD,XMERROR) ; Delete a user's invalid forwarding address.
+1 SET XMFDA(3.7,XMUSER_",",2)="@"
+2 DO FILE^DIE("","XMFDA")
+3 NEW XMPARM,XMINSTR,XMTEXT,XMAPPEND
+4 SET XMINSTR("FROM")=.5
+5 SET XMPARM(1)=XMFWD
+6 IF +XMERROR=XMERROR
Begin DoDot:1
+7 DO BLD^DIALOG(XMERROR,.XMERROR,"","XMTEXT","F")
+8 DO MSG^DIALOG("AE",.XMAPPEND,"","","XMTEXT")
End DoDot:1
+9 IF '$TEST
Begin DoDot:1
+10 SET XMPARM(2)=XMERROR
+11 SET XMAPPEND=""
End DoDot:1
+12 DO TASKBULL^XMXBULL(.5,"XM FWD ADDRESS DELETE",.XMPARM,"XMAPPEND",XMUSER,.XMINSTR)
+13 QUIT
BANNER ; Edit banner
+1 NEW DIE,DA,DR
+2 SET DIE=3.7
+3 SET (XMDUZ,DA)=$GET(XMDUZ,DUZ)
+4 SET DR=4
+5 DO ^DIE
+6 DO SETBAN^XMVVITAE(XMDUZ,.XMV)
+7 QUIT
FILTER ; Edit filters
+1 NEW DIE,DA,DR,XMIA
+2 SET XMIA=1
+3 SET DIE=3.7
+4 SET DA=DUZ
+5 ; Message filters flag ; Message filters
SET DR="16;15"
+6 DO ^DIE
+7 IF $DATA(^XMB(3.7,DUZ,15,"AF"))
QUIT
+8 ; Note that you have no active filters.
WRITE !!,$CHAR(7),$$EZBLD^DIALOG(38131)
+9 QUIT
BASKET ; Edit delivery baskets
+1 NEW DIE,DA,DR
+2 SET DIE=3.7
+3 SET DA=DUZ
+4 ; Accept delivery basket? ; Select basket.
SET DR="16.2;S:X'=""S"" Y=0;1"
+5 ; Is this a delivery basket?
SET DR(2,3.701)="3"
+6 DO ^DIE
+7 QUIT
SURR ; Edit Surrogates
+1 NEW DIE,DA,DR
+2 SET DIE="^XMB(3.7,"
+3 SET DA=DUZ
+4 ; surrogate
SET DR="8"
+5 DO ^DIE
+6 QUIT
EDIT ; Edit User Preferences
+1 NEW DIE,DA,DR
+2 DO CHECK^XMVVITAE
+3 ; Editing data in the MAILBOX file:
WRITE !!,$$EZBLD^DIALOG(38132,$$GET1^DID(3.7,"","","NAME"))
+4 SET DIE="^XMB(3.7,"
+5 SET DA=DUZ
+6 SET DR=""
+7 ; banner
SET DR=DR_";4"
+8 ; message display order
SET DR=DR_";17"
+9 ; new message read order
SET DR=DR_";21"
+10 ; message reader default
SET DR=DR_";18"
+11 ; message reader prompt
SET DR=DR_";19"
+12 ; new messages default option
SET DR=DR_";20"
+13 ; show message preview
SET DR=DR_";6"
+14 ; message action default
SET DR=DR_";11"
+15 ; ask basket
SET DR=DR_";12"
+16 ; show titles
SET DR=DR_";13"
+17 ; priority responses flag
SET DR=DR_";14"
+18 ; priority responses prompt
SET DR=DR_";14.1"
+19 ; p-message queued from
SET DR=DR_";16.3"
+20 ; mailman institution
SET DR=DR_";9"
+21 ; network signature lines
SET DR=DR_";2.21:2.23"
+22 ; introduction
SET DR=DR_";4.5"
+23 SET DR=$EXTRACT(DR,2,99)
+24 DO ^DIE
+25 DO NEWORDER
+26 ; Editing data in the NEW PERSON file:
WRITE !!,$$EZBLD^DIALOG(38132,$$GET1^DID(200,"","","NAME"))
+27 SET DIE="^VA(200,"
+28 SET DA=DUZ
+29 SET DR=""
+30 ; preferred editor
SET DR=DR_";31.3"
+31 ; street address 1
SET DR=DR_";.111"
+32 ; street address 2
SET DR=DR_";.112"
+33 ; street address 3
SET DR=DR_";.113"
+34 ; city
SET DR=DR_";.114"
+35 ; state
SET DR=DR_";.115"
+36 ; zip
SET DR=DR_";.116"
+37 ; office phone
SET DR=DR_";.132"
+38 ; fax #
SET DR=DR_";.136"
+39 ; voice pager
SET DR=DR_";.137"
+40 ; digital pager
SET DR=DR_";.138"
+41 ; ADD'L PHONE 1 phone #3
SET DR=DR_";.133"_$$EZBLD^DIALOG(38133,1)
+42 ; ADD'L PHONE 2 phone #4
SET DR=DR_";.134"_$$EZBLD^DIALOG(38133,2)
+43 SET DR=$EXTRACT(DR,2,99)
+44 DO ^DIE
+45 DO PREFER^XMVVITAE(DUZ,.XMV,.XMDISPI)
+46 DO SETBAN^XMVVITAE(XMDUZ,.XMV)
+47 DO SETNET^XMVVITAE(XMDUZ,.XMV)
+48 QUIT
NEWORDER ;
+1 NEW XMDIC,XMK
+2 IF $DATA(^XMB(3.7,DUZ,2,"AP"))
Begin DoDot:1
+3 NEW I,XMKN,XMTEXT
+4 WRITE !
+5 ;Current priority order for reading baskets with new messages:
+6 DO BLD^DIALOG(38140,"","","XMTEXT","F")
+7 DO MSG^DIALOG("WM","","","","XMTEXT")
+8 SET (I,XMK)=0
+9 FOR
SET I=$ORDER(^XMB(3.7,DUZ,2,"AP",I))
IF 'I
QUIT
Begin DoDot:2
+10 FOR
SET XMK=$ORDER(^XMB(3.7,DUZ,2,"AP",I,XMK))
IF 'XMK
QUIT
Begin DoDot:3
+11 SET ^TMP("XM",$JOB,"AP",I,$$BSKTNAME^XMXUTIL(DUZ,XMK))=""
End DoDot:3
End DoDot:2
+12 SET I=0
SET XMKN=""
+13 FOR
SET I=$ORDER(^TMP("XM",$JOB,"AP",I))
IF 'I
QUIT
Begin DoDot:2
+14 FOR
SET XMKN=$ORDER(^TMP("XM",$JOB,"AP",I,XMKN))
IF XMKN=""
QUIT
Begin DoDot:3
+15 WRITE !,$JUSTIFY(I,4),?8,XMKN
End DoDot:3
End DoDot:2
+16 KILL ^TMP("XM",$JOB,"AP")
End DoDot:1
+17 WRITE !
+18 ;Editing the priority order for reading baskets with new messages.
+19 ;Note: You don't need priority ordering unless you want to change the
+20 ;default 'read new messages' basket from IN to other basket(s).
+21 DO BLD^DIALOG(38141,"","","XMTEXT","F")
+22 DO MSG^DIALOG("WM","","","","XMTEXT")
+23 FOR
Begin DoDot:1
+24 ; no default basket
SET XMDIC("B")="@"
+25 ; can't select IN or WASTE baskets
SET XMDIC("S")="I Y>1"
+26 SET XMDIC("W")="W ?40,$P(^(0),U,4)"
+27 WRITE !
+28 DO SELBSKT^XMJBU(DUZ,"","",.XMDIC,.XMK)
IF XMK=U
QUIT
+29 NEW DA,DR,DIE
+30 SET DIE="^XMB(3.7,"_DUZ_",2,"
+31 SET DA(1)=DUZ
SET DA=XMK
+32 ; Read new messages basket priority
SET DR="4T"
+33 DO ^DIE
End DoDot:1
IF XMK=U
QUIT
+34 QUIT
GOTNS(XMDUZ) ; Function: Does the user have a network signature? (1=yes; 0=no)
+1 QUIT "^^"'[$GET(^XMB(3.7,XMDUZ,"NS1"))
CRE8NS ; The user does not have a network signature.
+1 ; Does the user want to create a network signature now?
+2 ; If the user creates one, routine sets $T to true; else false
+3 NEW DIR,X,Y
+4 ; Yes
SET DIR(0)="Y"
SET DIR("B")=$$EZBLD^DIALOG(39054)
+5 ; Would you like to create a Network Signature now
SET DIR("A")=$$EZBLD^DIALOG(37309.5)
+6 DO ^DIR
IF 'Y
QUIT
+7 KILL DIR
+8 DO EDITNS
+9 IF $$GOTNS(DUZ)
+10 QUIT
EDITNS ; Edit network signature
+1 NEW DIE,DA,DR
+2 SET DIE="^XMB(3.7,"
SET DA=DUZ
SET DR="2.21:2.23"
DO ^DIE
+3 QUIT