Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XMJMLR1

XMJMLR1.m

Go to the documentation of this file.
  1. XMJMLR1 ;ISC-SF/GMB-List/Read messages in basket (cont.) ;05/20/2002 15:15
  1. ;;8.0;MailMan;;Jun 28, 2002
  1. ; Replaces 1^XMAL0 (ISC-WASH/THM/CAP)
  1. XMDIR(XMDUZ,XMLO,XMHI,XMPAGE,XMMORE,XMHELP,XMINSTR,XMOPT,XMOX,XMY,XMABORT) ;
  1. N XMX K XMY
  1. D ZOOMOPT(.XMOPT)
  1. F D Q:$D(XMY)!XMABORT
  1. . W !,$$EZBLD^DIALOG(34050) ; Enter message number or command:
  1. . R XMX:DTIME I '$T S XMABORT=1 Q
  1. . I XMX[U S XMABORT=1 Q
  1. . I "="[XMX S XMY=XMX Q
  1. . I XMX?.E1C.E D HELPSCR Q
  1. . I $E(XMX)="?" D QUESTION Q
  1. . I '$$OK K XMY D HELPSCR Q
  1. . Q:'$D(XMOPT(XMY,"?"))
  1. . D SHOWERR
  1. I $G(XMY)="=" K XMY
  1. Q
  1. OK() ;
  1. N XMLO
  1. S XMLO=0
  1. I XMX?1N.N Q $$NUMBERZ
  1. I $E(XMX)="." Q $$DOT
  1. S XMY=XMX
  1. I XMX?1(1"+",1"-").N Q $L(XMX)<26
  1. S XMY=$$COMMAND^XMJDIR(.XMOPT,.XMOX,XMX)
  1. Q XMY'=-1
  1. NUMBERZ() ;
  1. Q:$L(XMX)>25 0
  1. S (XMX,XMY)=+XMX
  1. I XMX'<XMLO,XMX'>XMHI Q 1
  1. I $D(^XMB(3.9,XMX,0)) Q 1
  1. Q 0
  1. DOT() ;
  1. N XMXR,I,XMOK,XMSTRIKE
  1. S XMOK=1
  1. S XMX=$TR(XMX," ")
  1. I $E(XMX,2)="-" S XMSTRIKE=1,XMX=$E(XMX,3,999)
  1. E S XMSTRIKE=0,XMX=$E(XMX,2,999)
  1. I XMX="*" S XMY="."_$S(XMSTRIKE:"-",1:"")_XMX Q 1
  1. F I=1:1:$L(XMX,",") D Q:'XMOK
  1. . S XMXR=$P(XMX,",",I)
  1. . I XMXR?1.25N1"-"1.25N D Q
  1. . . I $P(XMXR,"-",1)<XMLO S XMOK=0 Q
  1. . . I $P(XMXR,"-",2)>XMHI S XMOK=0 Q
  1. . . I $P(XMXR,"-",1)>$P(XMXR,"-",2) S XMOK=0
  1. . I XMXR?1.25N D Q
  1. . . I XMXR<XMLO S XMOK=0 Q
  1. . . I XMXR>XMHI S XMOK=0
  1. . I XMXR?1.25N1"-" D Q
  1. . . I $P(XMXR,"-",1)<XMLO S XMOK=0 Q
  1. . . I $P(XMXR,"-",1)>XMHI S XMOK=0
  1. . S XMOK=0
  1. I XMOK S XMY="."_$S(XMSTRIKE:"-",1:"")_XMX Q 1
  1. Q 0
  1. SHOWERR ;
  1. D SHOWERR^XMJDIR(.XMOPT,XMY)
  1. D WAIT^XMXUTIL
  1. S XMY="="
  1. Q
  1. QUESTION ;
  1. I XMX="?" D HELPSCR Q
  1. I XMX?2."?"!("?HELP"[$$UP^XLFSTR(XMX)) S XQH=XMHELP D EN^XQH S XMY="=" Q
  1. I $L(XMX)>64 D HELPSCR Q
  1. I XMX?2"?"1N.N,$D(^XMB(3.9,$E(XMX,3,99),0)) S XMY=$E(XMX,3,99) Q
  1. I '$D(XMOPT("Q")) D HELPSCR Q
  1. S XMY="Q"
  1. I $D(XMOPT("Q","?")) D SHOWERR Q
  1. N I F I=1,2 Q:$E(XMX,I+1)'="?"
  1. S XMY=XMY_I,XMY(0)=$E(XMX,I+1,99)
  1. Q
  1. HELPSCR ;
  1. N XMTEXT,XMPARM,XMLINES
  1. W !
  1. S XMPARM(1)=XMLO,XMPARM(2)=XMHI
  1. D BLD^DIALOG($S($G(XMINSTR("GOTO")):34051,1:34051.1),.XMPARM,"","XMTEXT","F") ; Enter a message number (_XMLO_-_XMHI_) to read a message.
  1. I $D(XMOPT("Q")),'$D(XMOPT("Q","?")) D BLD^DIALOG(34052,"","","XMTEXT","FS")
  1. ; ?string Search for messages in this basket whose subject
  1. ; contains the specified string
  1. ; ??string Search for messages you once sent or received
  1. ; whose subject begins with the specified string
  1. D BLD^DIALOG(34053,"","","XMTEXT","FS")
  1. ; .(-)n or n-m,a,c-d (de)select message n or a list of messages
  1. ; .(-)* (de)select all messages
  1. S XMLINES=IOSL-DIHELP-5
  1. D MSG^DIALOG("WH","",$G(IOM),"","XMTEXT")
  1. D HELPCMD^XMJDIR(.XMOPT,.XMOX,.XMLINES)
  1. I XMMORE D
  1. . I XMPAGE D BLD^DIALOG($S($G(XMINSTR("GOTO")):34055,1:34056),"","","XMTEXT","FS") Q
  1. . D BLD^DIALOG($S($G(XMINSTR("GOTO")):34057,1:34058),"","","XMTEXT","FS")
  1. E D
  1. . I XMPAGE D BLD^DIALOG($S($G(XMINSTR("GOTO")):34060,1:34061),"","","XMTEXT","FS") Q
  1. . D BLD^DIALOG(34059,"","","XMTEXT","FS")
  1. ; Press ENTER or + to go to the next page. Enter +n to page forward n pages.
  1. ; Enter - to go to the previous page. Enter -n to page back n pages.
  1. ; Enter 0 to go to the first page; = to refresh this page; ^ to exit.
  1. D MSG^DIALOG("WH","",$G(IOM),"","XMTEXT")
  1. W !
  1. Q
  1. SETOPT(XMDUZ,XMK,XMOPT,XMOX) ;
  1. D OPTGRP^XMXSEC1(XMDUZ,XMK,.XMOPT,.XMOX,1)
  1. D SET^XMXSEC1("CD",37221,.XMOPT,.XMOX) ; Change Detail
  1. D SET^XMXSEC1("O",37222,.XMOPT,.XMOX) ; Opposite selection toggle
  1. D SET^XMXSEC1("Z",37223,.XMOPT,.XMOX) ; Zoom selection toggle
  1. Q
  1. ZOOMOPT(XMOPT) ;
  1. N I
  1. I $D(^TMP("XM",$J,".")) D Q
  1. . I $D(XMOPT("Z","?")) K XMOPT("O","?"),XMOPT("Z","?")
  1. . I $D(XMOPT("Q")) F I="Q","N","R" S XMOPT(I,"?")=37232 ; You can't do this with messages selected.
  1. F I="O","Z" S XMOPT(I,"?")=37231 ; You can't do this unless messages are selected.
  1. I $D(XMOPT("Q")) K XMOPT("Q","?"),XMOPT("N","?"),XMOPT("R","?")
  1. Q
  1. FWD(XMDUZ,XMZ,XMZREC,XMWAIT,XMOK) ; User is trying to access a message.
  1. N X ; User (XMDUZ) is not authorized to see it. If user (DUZ)
  1. S XMOK=0 ; is, then we'll give him a chance to forward it.
  1. I '$D(^TMP("XMERR",$J,"E",37103)) D Q
  1. . D SHOW^XMJERR ; User (XMDUZ and/or DUZ) is not authorized to see it.
  1. . D:XMWAIT WAIT^XMXUTIL
  1. ; User is trying to access a message as a surrogate for someone else.
  1. ; User (DUZ) is authorized to see the message, but the someone else
  1. ; (XMDUZ) isn't. We must check to see if we can allow the user to
  1. ; forward the message to XMDUZ.
  1. D NOGOID^XMJMP2(XMZ,XMZREC,1) ; Show 'subject' & 'from'
  1. D SHOW^XMJERR
  1. S X=$$FORWARD^XMXSEC(DUZ,XMZ,XMZREC)
  1. I XMDUZ=.6 D
  1. . I $$CLOSED^XMXSEC(XMZREC) D ERRSET^XMXUTIL(39020) Q
  1. . I $$CONFID^XMXSEC(XMZREC) D ERRSET^XMXUTIL(39021)
  1. I $D(XMERR) D Q
  1. . D SHOW^XMJERR
  1. . D:XMWAIT WAIT^XMXUTIL
  1. N DIR,X,Y
  1. W !
  1. S DIR(0)="Y"
  1. ;Do you want to forward this message to |1|
  1. D BLD^DIALOG(37104,XMV("NAME"),"","DIR(""A"")","F")
  1. S DIR("B")=$$EZBLD^DIALOG(39053) ; No
  1. D ^DIR Q:'Y!$D(DIRUT)
  1. K DIR,X,Y
  1. N XMERROR,XMINSTR,XMMSG
  1. I XMDUZ=.6 D ASKSHARE^XMXADDR1(.XMINSTR) Q:$D(XMERROR)
  1. S XMINSTR("FWD BY")=XMV("DUZ NAME")
  1. D FWDMSG^XMXMSGS(DUZ,"",XMZ,XMDUZ,.XMINSTR,.XMMSG)
  1. I $D(XMERR) D Q
  1. . D SHOW^XMJERR
  1. . D:XMWAIT WAIT^XMXUTIL
  1. I $D(XMMSG) D
  1. . W !,XMMSG
  1. . D:XMWAIT WAIT^XMXUTIL
  1. S XMOK=1
  1. Q