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
|
---|