| 1 | XMJMLR1 ;ISC-SF/GMB-List/Read messages in basket (cont.) ;05/20/2002  15:15 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces 1^XMAL0 (ISC-WASH/THM/CAP) | 
|---|
| 4 | XMDIR(XMDUZ,XMLO,XMHI,XMPAGE,XMMORE,XMHELP,XMINSTR,XMOPT,XMOX,XMY,XMABORT) ; | 
|---|
| 5 | N XMX K XMY | 
|---|
| 6 | D ZOOMOPT(.XMOPT) | 
|---|
| 7 | F  D  Q:$D(XMY)!XMABORT | 
|---|
| 8 | . W !,$$EZBLD^DIALOG(34050) ; Enter message number or command: | 
|---|
| 9 | . R XMX:DTIME I '$T S XMABORT=1 Q | 
|---|
| 10 | . I XMX[U S XMABORT=1 Q | 
|---|
| 11 | . I "="[XMX S XMY=XMX Q | 
|---|
| 12 | . I XMX?.E1C.E D HELPSCR Q | 
|---|
| 13 | . I $E(XMX)="?" D QUESTION Q | 
|---|
| 14 | . I '$$OK K XMY D HELPSCR Q | 
|---|
| 15 | . Q:'$D(XMOPT(XMY,"?")) | 
|---|
| 16 | . D SHOWERR | 
|---|
| 17 | I $G(XMY)="=" K XMY | 
|---|
| 18 | Q | 
|---|
| 19 | OK() ; | 
|---|
| 20 | N XMLO | 
|---|
| 21 | S XMLO=0 | 
|---|
| 22 | I XMX?1N.N Q $$NUMBERZ | 
|---|
| 23 | I $E(XMX)="." Q $$DOT | 
|---|
| 24 | S XMY=XMX | 
|---|
| 25 | I XMX?1(1"+",1"-").N Q $L(XMX)<26 | 
|---|
| 26 | S XMY=$$COMMAND^XMJDIR(.XMOPT,.XMOX,XMX) | 
|---|
| 27 | Q XMY'=-1 | 
|---|
| 28 | NUMBERZ() ; | 
|---|
| 29 | Q:$L(XMX)>25 0 | 
|---|
| 30 | S (XMX,XMY)=+XMX | 
|---|
| 31 | I XMX'<XMLO,XMX'>XMHI Q 1 | 
|---|
| 32 | I $D(^XMB(3.9,XMX,0)) Q 1 | 
|---|
| 33 | Q 0 | 
|---|
| 34 | DOT() ; | 
|---|
| 35 | N XMXR,I,XMOK,XMSTRIKE | 
|---|
| 36 | S XMOK=1 | 
|---|
| 37 | S XMX=$TR(XMX," ") | 
|---|
| 38 | I $E(XMX,2)="-" S XMSTRIKE=1,XMX=$E(XMX,3,999) | 
|---|
| 39 | E  S XMSTRIKE=0,XMX=$E(XMX,2,999) | 
|---|
| 40 | I XMX="*" S XMY="."_$S(XMSTRIKE:"-",1:"")_XMX Q 1 | 
|---|
| 41 | F I=1:1:$L(XMX,",") D  Q:'XMOK | 
|---|
| 42 | . S XMXR=$P(XMX,",",I) | 
|---|
| 43 | . I XMXR?1.25N1"-"1.25N D  Q | 
|---|
| 44 | . . I $P(XMXR,"-",1)<XMLO S XMOK=0 Q | 
|---|
| 45 | . . I $P(XMXR,"-",2)>XMHI S XMOK=0 Q | 
|---|
| 46 | . . I $P(XMXR,"-",1)>$P(XMXR,"-",2) S XMOK=0 | 
|---|
| 47 | . I XMXR?1.25N D  Q | 
|---|
| 48 | . . I XMXR<XMLO S XMOK=0 Q | 
|---|
| 49 | . . I XMXR>XMHI S XMOK=0 | 
|---|
| 50 | . I XMXR?1.25N1"-" D  Q | 
|---|
| 51 | . . I $P(XMXR,"-",1)<XMLO S XMOK=0 Q | 
|---|
| 52 | . . I $P(XMXR,"-",1)>XMHI S XMOK=0 | 
|---|
| 53 | . S XMOK=0 | 
|---|
| 54 | I XMOK S XMY="."_$S(XMSTRIKE:"-",1:"")_XMX Q 1 | 
|---|
| 55 | Q 0 | 
|---|
| 56 | SHOWERR ; | 
|---|
| 57 | D SHOWERR^XMJDIR(.XMOPT,XMY) | 
|---|
| 58 | D WAIT^XMXUTIL | 
|---|
| 59 | S XMY="=" | 
|---|
| 60 | Q | 
|---|
| 61 | QUESTION ; | 
|---|
| 62 | I XMX="?" D HELPSCR Q | 
|---|
| 63 | I XMX?2."?"!("?HELP"[$$UP^XLFSTR(XMX)) S XQH=XMHELP D EN^XQH S XMY="=" Q | 
|---|
| 64 | I $L(XMX)>64 D HELPSCR Q | 
|---|
| 65 | I XMX?2"?"1N.N,$D(^XMB(3.9,$E(XMX,3,99),0)) S XMY=$E(XMX,3,99) Q | 
|---|
| 66 | I '$D(XMOPT("Q")) D HELPSCR Q | 
|---|
| 67 | S XMY="Q" | 
|---|
| 68 | I $D(XMOPT("Q","?")) D SHOWERR Q | 
|---|
| 69 | N I F I=1,2 Q:$E(XMX,I+1)'="?" | 
|---|
| 70 | S XMY=XMY_I,XMY(0)=$E(XMX,I+1,99) | 
|---|
| 71 | Q | 
|---|
| 72 | HELPSCR ; | 
|---|
| 73 | N XMTEXT,XMPARM,XMLINES | 
|---|
| 74 | W ! | 
|---|
| 75 | S XMPARM(1)=XMLO,XMPARM(2)=XMHI | 
|---|
| 76 | D BLD^DIALOG($S($G(XMINSTR("GOTO")):34051,1:34051.1),.XMPARM,"","XMTEXT","F") ; Enter a message number (_XMLO_-_XMHI_) to read a message. | 
|---|
| 77 | I $D(XMOPT("Q")),'$D(XMOPT("Q","?")) D BLD^DIALOG(34052,"","","XMTEXT","FS") | 
|---|
| 78 | ; ?string             Search for messages in this basket whose subject | 
|---|
| 79 | ;                     contains the specified string | 
|---|
| 80 | ; ??string            Search for messages you once sent or received | 
|---|
| 81 | ;                     whose subject begins with the specified string | 
|---|
| 82 | D BLD^DIALOG(34053,"","","XMTEXT","FS") | 
|---|
| 83 | ; .(-)n or n-m,a,c-d  (de)select message n or a list of messages | 
|---|
| 84 | ; .(-)*               (de)select all messages | 
|---|
| 85 | S XMLINES=IOSL-DIHELP-5 | 
|---|
| 86 | D MSG^DIALOG("WH","",$G(IOM),"","XMTEXT") | 
|---|
| 87 | D HELPCMD^XMJDIR(.XMOPT,.XMOX,.XMLINES) | 
|---|
| 88 | I XMMORE D | 
|---|
| 89 | . I XMPAGE D BLD^DIALOG($S($G(XMINSTR("GOTO")):34055,1:34056),"","","XMTEXT","FS") Q | 
|---|
| 90 | . D BLD^DIALOG($S($G(XMINSTR("GOTO")):34057,1:34058),"","","XMTEXT","FS") | 
|---|
| 91 | E  D | 
|---|
| 92 | . I XMPAGE D BLD^DIALOG($S($G(XMINSTR("GOTO")):34060,1:34061),"","","XMTEXT","FS") Q | 
|---|
| 93 | . D BLD^DIALOG(34059,"","","XMTEXT","FS") | 
|---|
| 94 | ; Press ENTER or + to go to the next page.  Enter +n to page forward n pages. | 
|---|
| 95 | ; Enter - to go to the previous page.  Enter -n to page back n pages. | 
|---|
| 96 | ; Enter 0 to go to the first page; = to refresh this page; ^ to exit. | 
|---|
| 97 | D MSG^DIALOG("WH","",$G(IOM),"","XMTEXT") | 
|---|
| 98 | W ! | 
|---|
| 99 | Q | 
|---|
| 100 | SETOPT(XMDUZ,XMK,XMOPT,XMOX) ; | 
|---|
| 101 | D OPTGRP^XMXSEC1(XMDUZ,XMK,.XMOPT,.XMOX,1) | 
|---|
| 102 | D SET^XMXSEC1("CD",37221,.XMOPT,.XMOX) ; Change Detail | 
|---|
| 103 | D SET^XMXSEC1("O",37222,.XMOPT,.XMOX) ; Opposite selection toggle | 
|---|
| 104 | D SET^XMXSEC1("Z",37223,.XMOPT,.XMOX) ; Zoom selection toggle | 
|---|
| 105 | Q | 
|---|
| 106 | ZOOMOPT(XMOPT) ; | 
|---|
| 107 | N I | 
|---|
| 108 | I $D(^TMP("XM",$J,".")) D  Q | 
|---|
| 109 | . I $D(XMOPT("Z","?")) K XMOPT("O","?"),XMOPT("Z","?") | 
|---|
| 110 | . I $D(XMOPT("Q")) F I="Q","N","R" S XMOPT(I,"?")=37232 ; You can't do this with messages selected. | 
|---|
| 111 | F I="O","Z" S XMOPT(I,"?")=37231 ; You can't do this unless messages are selected. | 
|---|
| 112 | I $D(XMOPT("Q")) K XMOPT("Q","?"),XMOPT("N","?"),XMOPT("R","?") | 
|---|
| 113 | Q | 
|---|
| 114 | FWD(XMDUZ,XMZ,XMZREC,XMWAIT,XMOK) ; User is trying to access a message. | 
|---|
| 115 | N X        ; User (XMDUZ) is not authorized to see it.  If user (DUZ) | 
|---|
| 116 | S XMOK=0   ; is, then we'll give him a chance to forward it. | 
|---|
| 117 | I '$D(^TMP("XMERR",$J,"E",37103)) D  Q | 
|---|
| 118 | . D SHOW^XMJERR ; User (XMDUZ and/or DUZ) is not authorized to see it. | 
|---|
| 119 | . D:XMWAIT WAIT^XMXUTIL | 
|---|
| 120 | ; User is trying to access a message as a surrogate for someone else. | 
|---|
| 121 | ; User (DUZ) is authorized to see the message, but the someone else | 
|---|
| 122 | ; (XMDUZ) isn't.  We must check to see if we can allow the user to | 
|---|
| 123 | ; forward the message to XMDUZ. | 
|---|
| 124 | D NOGOID^XMJMP2(XMZ,XMZREC,1) ; Show 'subject' & 'from' | 
|---|
| 125 | D SHOW^XMJERR | 
|---|
| 126 | S X=$$FORWARD^XMXSEC(DUZ,XMZ,XMZREC) | 
|---|
| 127 | I XMDUZ=.6 D | 
|---|
| 128 | . I $$CLOSED^XMXSEC(XMZREC) D ERRSET^XMXUTIL(39020) Q | 
|---|
| 129 | . I $$CONFID^XMXSEC(XMZREC) D ERRSET^XMXUTIL(39021) | 
|---|
| 130 | I $D(XMERR) D  Q | 
|---|
| 131 | . D SHOW^XMJERR | 
|---|
| 132 | . D:XMWAIT WAIT^XMXUTIL | 
|---|
| 133 | N DIR,X,Y | 
|---|
| 134 | W ! | 
|---|
| 135 | S DIR(0)="Y" | 
|---|
| 136 | ;Do you want to forward this message to |1| | 
|---|
| 137 | D BLD^DIALOG(37104,XMV("NAME"),"","DIR(""A"")","F") | 
|---|
| 138 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No | 
|---|
| 139 | D ^DIR Q:'Y!$D(DIRUT) | 
|---|
| 140 | K DIR,X,Y | 
|---|
| 141 | N XMERROR,XMINSTR,XMMSG | 
|---|
| 142 | I XMDUZ=.6 D ASKSHARE^XMXADDR1(.XMINSTR) Q:$D(XMERROR) | 
|---|
| 143 | S XMINSTR("FWD BY")=XMV("DUZ NAME") | 
|---|
| 144 | D FWDMSG^XMXMSGS(DUZ,"",XMZ,XMDUZ,.XMINSTR,.XMMSG) | 
|---|
| 145 | I $D(XMERR) D  Q | 
|---|
| 146 | . D SHOW^XMJERR | 
|---|
| 147 | . D:XMWAIT WAIT^XMXUTIL | 
|---|
| 148 | I $D(XMMSG) D | 
|---|
| 149 | . W !,XMMSG | 
|---|
| 150 | . D:XMWAIT WAIT^XMXUTIL | 
|---|
| 151 | S XMOK=1 | 
|---|
| 152 | Q | 
|---|