[613] | 1 | XMJMOR ;ISC-SF/GMB-Range actions ;12/04/2002 10:10
|
---|
| 2 | ;;8.0;MailMan;**9**;Jun 28, 2002
|
---|
| 3 | ; Replaces ^XMA0,^XMA01 (ISC-WASH/CAP)
|
---|
| 4 | DELETE(XMDUZ,XMK) ; Delete a range of messages
|
---|
| 5 | N XMWHICH,XMMSG,XMABORT
|
---|
| 6 | S XMABORT=0
|
---|
| 7 | I $D(^TMP("XM",$J,".")) D
|
---|
| 8 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XDEL",34302,34303,.XMMSG,.XMABORT)
|
---|
| 9 | . ;K ^TMP("XM",$J,".")
|
---|
| 10 | E D
|
---|
| 11 | . D WHICH(XMDUZ,XMK,34301,34303.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 12 | . D DELMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
| 13 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 14 | Q:XMABORT
|
---|
| 15 | W:$D(XMMSG) !,XMMSG
|
---|
| 16 | Q
|
---|
| 17 | FILTER(XMDUZ,XMK) ; Filter a range of messages
|
---|
| 18 | N XMWHICH,XMMSG,XMABORT
|
---|
| 19 | S XMABORT=0
|
---|
| 20 | I $D(^TMP("XM",$J,".")) D
|
---|
| 21 | . N XMKZ
|
---|
| 22 | . D SELMSG(XMDUZ,XMK,"XFLTR^XMXMSGS2",34306,.XMMSG)
|
---|
| 23 | . S XMKZ=""
|
---|
| 24 | . F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 25 | E D
|
---|
| 26 | . D WHICH(XMDUZ,XMK,34305,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 27 | . D FLTRMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
| 28 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 29 | Q:XMABORT
|
---|
| 30 | W:$D(XMMSG) !,XMMSG
|
---|
| 31 | Q
|
---|
| 32 | FORWARD(XMDUZ,XMK) ; Forward a range of messages
|
---|
| 33 | N XMWHICH,XMMSG,XMABORT,XMINSTR
|
---|
| 34 | S XMABORT=0
|
---|
| 35 | I $D(^TMP("XM",$J,".")) D Q
|
---|
| 36 | . N XMKZ
|
---|
| 37 | . D INIT^XMXADDR
|
---|
| 38 | . S XMKZ=$O(^TMP("XM",$J,".",""))
|
---|
| 39 | . I '$O(^TMP("XM",$J,".",XMKZ)) D Q
|
---|
| 40 | . . D FWDONE(XMDUZ,$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")),.XMINSTR,.XMABORT)
|
---|
| 41 | . D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT ; Forward
|
---|
| 42 | . D SELMSG(XMDUZ,XMK,"XFWD^XMXMSGS1",34309,.XMMSG)
|
---|
| 43 | . D CLEANUP^XMXADDR
|
---|
| 44 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 45 | . W:$D(XMMSG) !,XMMSG
|
---|
| 46 | D WHICH(XMDUZ,XMK,34308,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 47 | D INIT^XMXADDR
|
---|
| 48 | I $P(XMWHICH,",",2,99)="",$P(XMWHICH,",",1)=+XMWHICH D Q
|
---|
| 49 | . N XMZ
|
---|
| 50 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",+XMWHICH,""))
|
---|
| 51 | . I 'XMZ W !,$$EZBLD^DIALOG(34309.3) Q ; No messages forwarded.
|
---|
| 52 | . D FWDONE(XMDUZ,XMZ,.XMINSTR,.XMABORT)
|
---|
| 53 | D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT ; Forward
|
---|
| 54 | S XMINSTR("ADDR FLAGS")="I"
|
---|
| 55 | D FWDMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,"",.XMINSTR,.XMMSG)
|
---|
| 56 | D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 57 | W:$D(XMMSG) !,XMMSG
|
---|
| 58 | Q
|
---|
| 59 | FWDONE(XMDUZ,XMZ,XMINSTR,XMABORT) ; Forward just one message
|
---|
| 60 | N XMZREC,XMRESTR
|
---|
| 61 | S XMZREC=^XMB(3.9,XMZ,0)
|
---|
| 62 | I '$$FORWARD^XMXSEC(XMDUZ,XMZ,XMZREC) D SHOW^XMJERR Q
|
---|
| 63 | D GETRESTR^XMXSEC1(XMDUZ,XMZ,XMZREC,"",.XMRESTR) ; Get restrictions on the msg
|
---|
| 64 | D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,.XMRESTR,.XMABORT) Q:XMABORT ; Forward
|
---|
| 65 | D FWD^XMKP(XMDUZ,XMZ,.XMINSTR)
|
---|
| 66 | D CLEANUP^XMXADDR
|
---|
| 67 | W !,$$EZBLD^DIALOG(34309.2) ; Message forwarded.
|
---|
| 68 | Q
|
---|
| 69 | LATER(XMDUZ,XMK) ; Later a range of messages
|
---|
| 70 | N XMWHICH,XMMSG,XMABORT,XMWHEN
|
---|
| 71 | S XMABORT=0
|
---|
| 72 | I $D(^TMP("XM",$J,".")) D
|
---|
| 73 | . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
| 74 | . D SELMSG(XMDUZ,XMK,"XLATER^XMXMSGS2",34312,.XMMSG)
|
---|
| 75 | E D
|
---|
| 76 | . D WHICH(XMDUZ,XMK,34311,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 77 | . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
| 78 | . D LATERMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
|
---|
| 79 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 80 | Q:XMABORT
|
---|
| 81 | W:$D(XMMSG) !,XMMSG
|
---|
| 82 | Q
|
---|
| 83 | NEWTOGL(XMDUZ,XMK) ; New Toggle a range of messages
|
---|
| 84 | N XMWHICH,XMMSG,XMABORT
|
---|
| 85 | S XMABORT=0
|
---|
| 86 | I $D(^TMP("XM",$J,".")) D
|
---|
| 87 | . N XMKZ
|
---|
| 88 | . D SELMSG(XMDUZ,XMK,"XNTOGL^XMXMSGS2",34315,.XMMSG)
|
---|
| 89 | . S XMKZ=""
|
---|
| 90 | . F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 91 | E D
|
---|
| 92 | . D WHICH(XMDUZ,XMK,34314,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 93 | . D NTOGLMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
| 94 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 95 | Q:XMABORT
|
---|
| 96 | W:$D(XMMSG) !,XMMSG
|
---|
| 97 | Q
|
---|
| 98 | PRINT(XMDUZ,XMK,XMPRTHDR) ; Print a range of messages
|
---|
| 99 | N XMWHICH,XMMSG,XMRECIPS,XMABORT
|
---|
| 100 | ; XMPRTHDR 1=Print header
|
---|
| 101 | ; 0=don't (headerless print)
|
---|
| 102 | ; XMRECIPS 0=Don't print recipients
|
---|
| 103 | ; 1=Print summary recipients
|
---|
| 104 | ; 2=Print detail recipients
|
---|
| 105 | N XMSAVE,XMMSG,XMZLIST,I
|
---|
| 106 | S XMABORT=0
|
---|
| 107 | S:$G(XMPRTHDR)="" XMPRTHDR=1 ; default is to print with headers
|
---|
| 108 | I $D(^TMP("XM",$J,".")) D
|
---|
| 109 | . D LISTSEL(XMDUZ,XMK,.XMZLIST)
|
---|
| 110 | E D Q:XMABORT
|
---|
| 111 | . N XMWHICH
|
---|
| 112 | . D WHICH(XMDUZ,XMK,$S(XMPRTHDR:34317,1:34317.1),0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 113 | . D LIST(XMDUZ,XMK,.XMWHICH,.XMZLIST)
|
---|
| 114 | I '$D(XMZLIST) W !!,$$EZBLD^DIALOG(34319) Q ; No valid messages selected.
|
---|
| 115 | I +XMZLIST(1)=XMZLIST(1) D PRTONE(XMDUZ,XMK,XMZLIST(1),XMPRTHDR,.XMABORT) Q
|
---|
| 116 | D QRECIP^XMJMP(.XMRECIPS,.XMABORT) Q:XMABORT
|
---|
| 117 | F I="DUZ","XMDUZ","XMV(","XMZLIST(","XMRECIPS","XMPRTHDR" S XMSAVE(I)=""
|
---|
| 118 | D EN^XUTMDEVQ("PLISTX^XMJMP",$$EZBLD^DIALOG(34501),.XMSAVE) ; MailMan: Print
|
---|
| 119 | Q:XMABORT!$G(POP)
|
---|
| 120 | W:$D(XMMSG) !!,XMMSG
|
---|
| 121 | Q
|
---|
| 122 | LISTSEL(XMDUZ,XMK,XMZLIST) ;
|
---|
| 123 | N XMKZ,J,XMZ
|
---|
| 124 | S (XMKZ,J)=0
|
---|
| 125 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
| 126 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
| 127 | . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
| 128 | . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
| 129 | . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
| 130 | Q
|
---|
| 131 | LIST(XMDUZ,XMK,XMWHICH,XMZLIST) ;
|
---|
| 132 | N I,J,XMRANGE,XMKZ,XMZ,XMLAST
|
---|
| 133 | S J=0
|
---|
| 134 | F I=1:1:$L(XMWHICH,",") D
|
---|
| 135 | . S XMRANGE=$P(XMWHICH,",",I)
|
---|
| 136 | . Q:'XMRANGE
|
---|
| 137 | . S XMKZ=$P(XMRANGE,"-",1)-.1
|
---|
| 138 | . S XMLAST=$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE)
|
---|
| 139 | . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:'XMKZ!(XMKZ>XMLAST) D
|
---|
| 140 | . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
| 141 | . . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
| 142 | . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
| 143 | . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
| 144 | Q
|
---|
| 145 | PRTONE(XMDUZ,XMK,XMZ,XMPRTHDR,XMABORT) ;
|
---|
| 146 | D PONE^XMJMP(XMDUZ,XMK,XMZ,XMPRTHDR,.XMABORT)
|
---|
| 147 | W !!,$$EZBLD^DIALOG($S(XMABORT:34318.4,1:34318.1)) ; Message (not) printed.
|
---|
| 148 | Q
|
---|
| 149 | SAVE(XMDUZ,XMK) ; Save a range of messages to another basket
|
---|
| 150 | N XMWHICH,XMMSG,XMABORT,XMKTO,XMDIC
|
---|
| 151 | S XMABORT=0
|
---|
| 152 | S XMDIC("B")="@" ; no default basket
|
---|
| 153 | I $D(^TMP("XM",$J,".")) D
|
---|
| 154 | . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
|
---|
| 155 | . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q ; No messages saved.
|
---|
| 156 | . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q ; Same basket. No messages saved.
|
---|
| 157 | . D SELMSG(XMDUZ,XMK,"XMOVE^XMXMSGS2",34324,.XMMSG)
|
---|
| 158 | . K ^TMP("XM",$J,".")
|
---|
| 159 | E D
|
---|
| 160 | . D WHICH(XMDUZ,XMK,34323,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 161 | . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
|
---|
| 162 | . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q ; No messages saved.
|
---|
| 163 | . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q ; Same basket. No messages saved.
|
---|
| 164 | . D MOVEMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMKTO,.XMMSG)
|
---|
| 165 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 166 | Q:XMABORT
|
---|
| 167 | W:$D(XMMSG) !,XMMSG
|
---|
| 168 | Q
|
---|
| 169 | TERM(XMDUZ,XMK) ; Terminate a range of messages
|
---|
| 170 | N XMWHICH,XMMSG,XMABORT
|
---|
| 171 | S XMABORT=0
|
---|
| 172 | I $D(^TMP("XM",$J,".")) D
|
---|
| 173 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XTERM",34329,34330,.XMMSG,.XMABORT)
|
---|
| 174 | . ;K ^TMP("XM",$J,".")
|
---|
| 175 | E D
|
---|
| 176 | . D WHICH(XMDUZ,XMK,34328,34330.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 177 | . D TERMMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
| 178 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 179 | Q:XMABORT
|
---|
| 180 | Q:'$D(XMMSG)
|
---|
| 181 | W !,XMMSG
|
---|
| 182 | I XMMSG W !,$$EZBLD^DIALOG($S(XMK<1:34331.1,1:34331)) ; You won't see future responses. (In WASTE basket)
|
---|
| 183 | Q
|
---|
| 184 | VAPOR(XMDUZ,XMK) ; Set Vaporize date for a range of messages
|
---|
| 185 | N XMWHICH,XMMSG,XMABORT,XMWHEN
|
---|
| 186 | S XMABORT=0
|
---|
| 187 | I $D(^TMP("XM",$J,".")) D
|
---|
| 188 | . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
| 189 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XVAPOR^XMXMSGS2",$S(XMWHEN="@":34337.2,1:34337),$S(XMWHEN="@":34338.2,1:34338),.XMMSG,.XMABORT)
|
---|
| 190 | E D
|
---|
| 191 | . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
| 192 | . D WHICH(XMDUZ,XMK,$S(XMWHEN="@":34336.1,1:34336),$S(XMWHEN="@":34338.3,1:34338.1),.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 193 | . D VAPORMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
|
---|
| 194 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 195 | Q:XMABORT
|
---|
| 196 | W:$D(XMMSG) !,XMMSG
|
---|
| 197 | Q
|
---|
| 198 | VAPRDATE(XMWHEN,XMABORT) ;
|
---|
| 199 | N DIR,X,Y
|
---|
| 200 | S DIR(0)="DO^NOW::EFT"
|
---|
| 201 | D BLD^DIALOG(37317.1,"","","DIR(""A"")")
|
---|
| 202 | D BLD^DIALOG(34339,"","","DIR(""?"")")
|
---|
| 203 | D ^DIR
|
---|
| 204 | I X="@" S XMWHEN="@" Q
|
---|
| 205 | I $D(DIRUT) S XMABORT=1 Q
|
---|
| 206 | S XMWHEN=Y
|
---|
| 207 | Q
|
---|
| 208 | XMTPRI(XMDUZ,XMK) ; Toggle transmission priority for a range of msgs
|
---|
| 209 | ; XMDUZ better be .5 and XMK better be > 999!
|
---|
| 210 | N XMTPRI,XMWHICH,XMMSG,XMABORT
|
---|
| 211 | S XMABORT=0
|
---|
| 212 | I $D(^TMP("XM",$J,".")) D
|
---|
| 213 | . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
|
---|
| 214 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XXP^XMXMSGS1",34334,34335,.XMMSG,.XMABORT)
|
---|
| 215 | E D
|
---|
| 216 | . D WHICH(XMDUZ,XMK,34333,34335.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 217 | . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
|
---|
| 218 | . D XPMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMTPRI,.XMMSG)
|
---|
| 219 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
| 220 | Q:XMABORT
|
---|
| 221 | W:$D(XMMSG) !,XMMSG
|
---|
| 222 | Q
|
---|
| 223 | WHICH(XMDUZ,XMK,XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
|
---|
| 224 | N DIR,X,Y,XMHI,XMLO
|
---|
| 225 | S XMLO=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""))
|
---|
| 226 | S XMHI=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""),-1)
|
---|
| 227 | S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
|
---|
| 228 | S DIR("??")="XM-U-M-CHOOSE RANGE"
|
---|
| 229 | S DIR(0)="LC^"_XMLO_":"_XMHI
|
---|
| 230 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
| 231 | S XMWHICH=Y
|
---|
| 232 | I XMCONFRM D CONFIRM(XMCONFRM,.XMABORT)
|
---|
| 233 | Q
|
---|
| 234 | CONFIRM(XMCONFRM,XMABORT) ;
|
---|
| 235 | N DIR
|
---|
| 236 | D BLD^DIALOG(XMCONFRM,"","","DIR(""A"")") ; Do you really want to ... these messages?
|
---|
| 237 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No
|
---|
| 238 | S DIR(0)="Y"
|
---|
| 239 | D ^DIR I $D(DIRUT)!'Y S XMABORT=1
|
---|
| 240 | Q
|
---|
| 241 | POSTPRIV() ;
|
---|
| 242 | Q:$$POSTPRIV^XMXSEC 1
|
---|
| 243 | D SHOW^XMJERR
|
---|
| 244 | Q 0
|
---|
| 245 | SELMSG(XMDUZ,XMK,XMRTN,XMSUM,XMMSG) ;
|
---|
| 246 | N XMCNT,XMKZ,XMZ,XMKALL
|
---|
| 247 | S (XMCNT,XMKZ)=0
|
---|
| 248 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
| 249 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
| 250 | . D @XMRTN
|
---|
| 251 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
| 252 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
| 253 | Q
|
---|