| 1 | XMVVITA ;ISC-SF/GMB-Edit User's MailMan Variables ;04/29/2003  07:49
 | 
|---|
| 2 |  ;;8.0;MailMan;**18**;Jun 28, 2002
 | 
|---|
| 3 |  ; Replaces ^XMGAPI1,FWD^XMA21FWD,BANNER^XMA6,EDIT^XMA7 (ISC-WASH/CAP)
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; Entry points used by MailMan options (not covered by DBIA):
 | 
|---|
| 6 |  ; BANNER   XMBANNER       - Edit user's banner
 | 
|---|
| 7 |  ; EDIT     XMEDITUSER     - Edit user's preferences
 | 
|---|
| 8 |  ; FILTER   XM FILTER EDIT - Edit user's message filters
 | 
|---|
| 9 |  ; BASKET   XM DELIVERY BASKET EDIT - Edit user's delivery basket preferences
 | 
|---|
| 10 |  ; FORWARD  XMEDITFWD      - Edit user's forwarding address
 | 
|---|
| 11 |  ; SURR     XMEDITSURR     - Edit user's surrogates
 | 
|---|
| 12 | FORWARD ; Edit forwarding address
 | 
|---|
| 13 |  N XMIA
 | 
|---|
| 14 |  S XMIA=1
 | 
|---|
| 15 |  N DIE,DA,DR
 | 
|---|
| 16 |  S DIE=3.7
 | 
|---|
| 17 |  S DA=DUZ
 | 
|---|
| 18 |  S DR="2;2.1"
 | 
|---|
| 19 |  D ^DIE
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 | XMFWD(XMADDR,XMIA) ; Serves as input transform for 'forwarding address'
 | 
|---|
| 22 |  N XMERROR,XMRESTR,XMINSTR,XMFULL,XMFWDADD
 | 
|---|
| 23 |  I XMADDR'["@",".D.d.H.h.S.s."'[("."_$E(XMADDR,1,2)) K XMADDR Q
 | 
|---|
| 24 |  S XMINSTR("ADDR FLAGS")="X" ; do not create ^TMP(, just check.
 | 
|---|
| 25 |  S XMFWDADD=DUZ ; editing forwarding address
 | 
|---|
| 26 |  D ADDRESS^XMXADDR(DUZ,XMADDR,.XMFULL,.XMERROR)
 | 
|---|
| 27 |  I $D(XMERROR) K XMADDR Q
 | 
|---|
| 28 |  I XMFULL'["@" D
 | 
|---|
| 29 |  . ; Remote address is really local.  OK if device or server.
 | 
|---|
| 30 |  . I ".D.H.S."[("."_$E(XMFULL,1,2)) S XMFULL=XMFULL_"@"_^XMB("NETNAME")
 | 
|---|
| 31 |  I XMFULL'["@" D  Q
 | 
|---|
| 32 |  . ; Remote address is really local
 | 
|---|
| 33 |  . K XMADDR
 | 
|---|
| 34 |  . D EN^DDIOL($$EZBLD^DIALOG(38130)) ; You can't have your mail forwarded to a local address.
 | 
|---|
| 35 |  S XMADDR=XMFULL
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | DELFWD(XMUSER,XMFWD,XMERROR) ; Delete a user's invalid forwarding address.
 | 
|---|
| 38 |  S XMFDA(3.7,XMUSER_",",2)="@"
 | 
|---|
| 39 |  D FILE^DIE("","XMFDA")
 | 
|---|
| 40 |  N XMPARM,XMINSTR,XMTEXT,XMAPPEND
 | 
|---|
| 41 |  S XMINSTR("FROM")=.5
 | 
|---|
| 42 |  S XMPARM(1)=XMFWD
 | 
|---|
| 43 |  I +XMERROR=XMERROR D
 | 
|---|
| 44 |  . D BLD^DIALOG(XMERROR,.XMERROR,"","XMTEXT","F")
 | 
|---|
| 45 |  . D MSG^DIALOG("AE",.XMAPPEND,"","","XMTEXT")
 | 
|---|
| 46 |  E  D
 | 
|---|
| 47 |  . S XMPARM(2)=XMERROR
 | 
|---|
| 48 |  . S XMAPPEND=""
 | 
|---|
| 49 |  D TASKBULL^XMXBULL(.5,"XM FWD ADDRESS DELETE",.XMPARM,"XMAPPEND",XMUSER,.XMINSTR)
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | BANNER ; Edit banner
 | 
|---|
| 52 |  N DIE,DA,DR
 | 
|---|
| 53 |  S DIE=3.7
 | 
|---|
| 54 |  S (XMDUZ,DA)=$G(XMDUZ,DUZ)
 | 
|---|
| 55 |  S DR=4
 | 
|---|
| 56 |  D ^DIE
 | 
|---|
| 57 |  D SETBAN^XMVVITAE(XMDUZ,.XMV)
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | FILTER ; Edit filters
 | 
|---|
| 60 |  N DIE,DA,DR,XMIA
 | 
|---|
| 61 |  S XMIA=1
 | 
|---|
| 62 |  S DIE=3.7
 | 
|---|
| 63 |  S DA=DUZ
 | 
|---|
| 64 |  S DR="16;15"     ; Message filters flag ; Message filters
 | 
|---|
| 65 |  D ^DIE
 | 
|---|
| 66 |  Q:$D(^XMB(3.7,DUZ,15,"AF"))
 | 
|---|
| 67 |  W !!,$C(7),$$EZBLD^DIALOG(38131) ; Note that you have no active filters.
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | BASKET ; Edit delivery baskets
 | 
|---|
| 70 |  N DIE,DA,DR
 | 
|---|
| 71 |  S DIE=3.7
 | 
|---|
| 72 |  S DA=DUZ
 | 
|---|
| 73 |  S DR="16.2;S:X'=""S"" Y=0;1"     ; Accept delivery basket? ; Select basket.
 | 
|---|
| 74 |  S DR(2,3.701)="3" ; Is this a delivery basket?
 | 
|---|
| 75 |  D ^DIE
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | SURR ; Edit Surrogates
 | 
|---|
| 78 |  N DIE,DA,DR
 | 
|---|
| 79 |  S DIE="^XMB(3.7,"
 | 
|---|
| 80 |  S DA=DUZ
 | 
|---|
| 81 |  S DR="8"         ; surrogate
 | 
|---|
| 82 |  D ^DIE
 | 
|---|
| 83 |  Q
 | 
|---|
| 84 | EDIT ; Edit User Preferences
 | 
|---|
| 85 |  N DIE,DA,DR
 | 
|---|
| 86 |  D CHECK^XMVVITAE
 | 
|---|
| 87 |  W !!,$$EZBLD^DIALOG(38132,$$GET1^DID(3.7,"","","NAME")) ; Editing data in the MAILBOX file:
 | 
|---|
| 88 |  S DIE="^XMB(3.7,"
 | 
|---|
| 89 |  S DA=DUZ
 | 
|---|
| 90 |  S DR=""
 | 
|---|
| 91 |  S DR=DR_";4"         ; banner
 | 
|---|
| 92 |  S DR=DR_";17"        ; message display order
 | 
|---|
| 93 |  S DR=DR_";21"        ; new message read order
 | 
|---|
| 94 |  S DR=DR_";18"        ; message reader default
 | 
|---|
| 95 |  S DR=DR_";19"        ; message reader prompt
 | 
|---|
| 96 |  S DR=DR_";20"        ; new messages default option
 | 
|---|
| 97 |  S DR=DR_";6"         ; show message preview
 | 
|---|
| 98 |  S DR=DR_";11"        ; message action default
 | 
|---|
| 99 |  S DR=DR_";12"        ; ask basket
 | 
|---|
| 100 |  S DR=DR_";13"        ; show titles
 | 
|---|
| 101 |  S DR=DR_";14"        ; priority responses flag
 | 
|---|
| 102 |  S DR=DR_";14.1"      ; priority responses prompt
 | 
|---|
| 103 |  S DR=DR_";16.3"      ; p-message queued from
 | 
|---|
| 104 |  S DR=DR_";9"         ; mailman institution
 | 
|---|
| 105 |  S DR=DR_";2.21:2.23" ; network signature lines
 | 
|---|
| 106 |  S DR=DR_";4.5"       ; introduction
 | 
|---|
| 107 |  S DR=$E(DR,2,99)
 | 
|---|
| 108 |  D ^DIE
 | 
|---|
| 109 |  D NEWORDER
 | 
|---|
| 110 |  W !!,$$EZBLD^DIALOG(38132,$$GET1^DID(200,"","","NAME")) ; Editing data in the NEW PERSON file:
 | 
|---|
| 111 |  S DIE="^VA(200,"
 | 
|---|
| 112 |  S DA=DUZ
 | 
|---|
| 113 |  S DR=""
 | 
|---|
| 114 |  S DR=DR_";31.3"      ; preferred editor
 | 
|---|
| 115 |  S DR=DR_";.111"      ; street address 1
 | 
|---|
| 116 |  S DR=DR_";.112"      ; street address 2
 | 
|---|
| 117 |  S DR=DR_";.113"      ; street address 3
 | 
|---|
| 118 |  S DR=DR_";.114"      ; city
 | 
|---|
| 119 |  S DR=DR_";.115"      ; state
 | 
|---|
| 120 |  S DR=DR_";.116"      ; zip
 | 
|---|
| 121 |  S DR=DR_";.132"      ; office phone
 | 
|---|
| 122 |  S DR=DR_";.136"      ; fax #
 | 
|---|
| 123 |  S DR=DR_";.137"      ; voice pager
 | 
|---|
| 124 |  S DR=DR_";.138"      ; digital pager
 | 
|---|
| 125 |  S DR=DR_";.133"_$$EZBLD^DIALOG(38133,1) ; ADD'L PHONE 1  phone #3
 | 
|---|
| 126 |  S DR=DR_";.134"_$$EZBLD^DIALOG(38133,2) ; ADD'L PHONE 2  phone #4
 | 
|---|
| 127 |  S DR=$E(DR,2,99)
 | 
|---|
| 128 |  D ^DIE
 | 
|---|
| 129 |  D PREFER^XMVVITAE(DUZ,.XMV,.XMDISPI)
 | 
|---|
| 130 |  D SETBAN^XMVVITAE(XMDUZ,.XMV)
 | 
|---|
| 131 |  D SETNET^XMVVITAE(XMDUZ,.XMV)
 | 
|---|
| 132 |  Q
 | 
|---|
| 133 | NEWORDER ;
 | 
|---|
| 134 |  N XMDIC,XMK
 | 
|---|
| 135 |  I $D(^XMB(3.7,DUZ,2,"AP")) D
 | 
|---|
| 136 |  . N I,XMKN,XMTEXT
 | 
|---|
| 137 |  . W !
 | 
|---|
| 138 |  . ;Current priority order for reading baskets with new messages:
 | 
|---|
| 139 |  . D BLD^DIALOG(38140,"","","XMTEXT","F")
 | 
|---|
| 140 |  . D MSG^DIALOG("WM","","","","XMTEXT")
 | 
|---|
| 141 |  . S (I,XMK)=0
 | 
|---|
| 142 |  . F  S I=$O(^XMB(3.7,DUZ,2,"AP",I)) Q:'I  D
 | 
|---|
| 143 |  . . F  S XMK=$O(^XMB(3.7,DUZ,2,"AP",I,XMK)) Q:'XMK  D
 | 
|---|
| 144 |  . . . S ^TMP("XM",$J,"AP",I,$$BSKTNAME^XMXUTIL(DUZ,XMK))=""
 | 
|---|
| 145 |  . S I=0,XMKN=""
 | 
|---|
| 146 |  . F  S I=$O(^TMP("XM",$J,"AP",I)) Q:'I  D
 | 
|---|
| 147 |  . . F  S XMKN=$O(^TMP("XM",$J,"AP",I,XMKN)) Q:XMKN=""  D
 | 
|---|
| 148 |  . . . W !,$J(I,4),?8,XMKN
 | 
|---|
| 149 |  . K ^TMP("XM",$J,"AP")
 | 
|---|
| 150 |  W !
 | 
|---|
| 151 |  ;Editing the priority order for reading baskets with new messages.
 | 
|---|
| 152 |  ;Note:  You don't need priority ordering unless you want to change the
 | 
|---|
| 153 |  ;default 'read new messages' basket from IN to other basket(s).
 | 
|---|
| 154 |  D BLD^DIALOG(38141,"","","XMTEXT","F")
 | 
|---|
| 155 |  D MSG^DIALOG("WM","","","","XMTEXT")
 | 
|---|
| 156 |  F  D  Q:XMK=U
 | 
|---|
| 157 |  . S XMDIC("B")="@" ; no default basket
 | 
|---|
| 158 |  . S XMDIC("S")="I Y>1" ; can't select IN or WASTE baskets
 | 
|---|
| 159 |  . S XMDIC("W")="W ?40,$P(^(0),U,4)"
 | 
|---|
| 160 |  . W !
 | 
|---|
| 161 |  . D SELBSKT^XMJBU(DUZ,"","",.XMDIC,.XMK) Q:XMK=U
 | 
|---|
| 162 |  . N DA,DR,DIE
 | 
|---|
| 163 |  . S DIE="^XMB(3.7,"_DUZ_",2,"
 | 
|---|
| 164 |  . S DA(1)=DUZ,DA=XMK
 | 
|---|
| 165 |  . S DR="4T"    ; Read new messages basket priority
 | 
|---|
| 166 |  . D ^DIE
 | 
|---|
| 167 |  Q
 | 
|---|
| 168 | GOTNS(XMDUZ) ; Function: Does the user have a network signature? (1=yes; 0=no)
 | 
|---|
| 169 |  Q "^^"'[$G(^XMB(3.7,XMDUZ,"NS1"))
 | 
|---|
| 170 | CRE8NS ; The user does not have a network signature.
 | 
|---|
| 171 |  ; Does the user want to create a network signature now?
 | 
|---|
| 172 |  ; If the user creates one, routine sets $T to true; else false
 | 
|---|
| 173 |  N DIR,X,Y
 | 
|---|
| 174 |  S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39054) ; Yes
 | 
|---|
| 175 |  S DIR("A")=$$EZBLD^DIALOG(37309.5) ; Would you like to create a Network Signature now
 | 
|---|
| 176 |  D ^DIR Q:'Y
 | 
|---|
| 177 |  K DIR
 | 
|---|
| 178 |  D EDITNS
 | 
|---|
| 179 |  I $$GOTNS(DUZ)
 | 
|---|
| 180 |  Q
 | 
|---|
| 181 | EDITNS ; Edit network signature
 | 
|---|
| 182 |  N DIE,DA,DR
 | 
|---|
| 183 |  S DIE="^XMB(3.7,",DA=DUZ,DR="2.21:2.23" D ^DIE
 | 
|---|
| 184 |  Q
 | 
|---|