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

XMHIG.m

Go to the documentation of this file.
  1. XMHIG ;ISC-SF/GMB-Mail Group Info ;12/05/2002 10:39
  1. ;;8.0;MailMan;**10**;Jun 28, 2002
  1. ; Replaces ENTQ^XMA5,GHELP^XMA7G (ISC-WASH/THM/CAP/RJ)
  1. ;
  1. ; Entry points used by MailMan options (not covered by DBIA):
  1. ; HELP XMHELPGROUP - Get info on a group
  1. HELP ; Group Info
  1. N DIC,Y
  1. D CHECK^XMVVITAE
  1. S DIC="^XMB(3.8,",DIC(0)="AEQMZ"
  1. ; Screen: Group is public OR user is organizer OR user is member
  1. S DIC("S")="I $P(^(0),U,2)=""PU""!($G(^(3))=XMDUZ)!($D(^(1,""B"",XMDUZ)))"
  1. F W ! D ^DIC Q:Y<0 D
  1. . D DISPLAY(+Y)
  1. Q
  1. DISPLAY(XMGIEN) ;
  1. N XMABORT
  1. S XMABORT=0
  1. W @IOF
  1. D FIELDS(XMGIEN)
  1. D AUTHSEND(XMGIEN,.XMABORT) Q:XMABORT
  1. D MEMBERS(XMGIEN,.XMABORT) Q:XMABORT
  1. D GROUP(XMGIEN,.XMABORT) Q:XMABORT
  1. D REMOTE(XMGIEN,.XMABORT) Q:XMABORT
  1. D DISTR(XMGIEN,.XMABORT) Q:XMABORT
  1. D FAXMEMBR(XMGIEN,.XMABORT) Q:XMABORT
  1. D FAXGROUP(XMGIEN,.XMABORT) Q:XMABORT
  1. D MEMBEROF(XMGIEN,.XMABORT) Q:XMABORT
  1. Q
  1. FIELDS(DA) ;
  1. N DIC,DR
  1. S DIC="^XMB(3.8,"
  1. F DR=0,2,3 D EN^DIQ
  1. Q
  1. AUTHSEND(XMGIEN,XMABORT) ;
  1. Q:'$O(^XMB(3.8,XMGIEN,4,0))
  1. N XMI,XMMIEN
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,4,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMMIEN=$P(^XMB(3.8,XMGIEN,4,XMI,0),U)
  1. . I '$D(^VA(200,XMMIEN,0)) D DELETE(XMGIEN,4,XMI) Q
  1. . W !,$$EZBLD^DIALOG(39089),$$NAME^XMXUTIL(XMMIEN) ;Authorized Sender:
  1. Q
  1. MEMBERS(XMGIEN,XMABORT) ;
  1. Q:'$O(^XMB(3.8,XMGIEN,1,0))
  1. N XMI,XMMIEN,XMNAME,XMTITLE,XMREC,XMINST,XMTYPE
  1. I $Y+5>IOSL D Q:XMABORT
  1. . D PAGE(.XMABORT)
  1. E W !!
  1. D HEADER
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,1,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT,1) Q:XMABORT
  1. . S XMREC=^XMB(3.8,XMGIEN,1,XMI,0)
  1. . S XMMIEN=$P(XMREC,U)
  1. . S XMTYPE=$P(XMREC,U,2)
  1. . I '$D(^VA(200,XMMIEN,0)) D DELETE(XMGIEN,1,XMI) Q
  1. . S XMNAME=$$NAME^XMXUTIL(XMMIEN,1)
  1. . I XMTYPE'="" S XMNAME=XMTYPE_":"_XMNAME
  1. . W !,$E(XMNAME,1,IOM-36),?IOM-35,$S($D(^XMB(3.7,XMMIEN,"L")):$E($P(^("L"),U),1,35),1:$$EZBLD^DIALOG(38007)) ;Never Used MailMan
  1. Q
  1. DELETE(XMGIEN,XMNODE,DA) ;
  1. N DIK
  1. L +^XMB(3.8,XMGIEN,XMNODE):1
  1. S DA(1)=XMGIEN
  1. S DIK="^XMB(3.8,"_DA(1)_","_XMNODE_","
  1. D ^DIK
  1. L -^XMB(3.8,XMGIEN,XMNODE)
  1. Q
  1. GROUP(XMGIEN,XMABORT) ; Member Groups
  1. Q:'$O(^XMB(3.8,XMGIEN,5,0))
  1. N XMI,XMMIEN,XMNAME,XMREC
  1. W !
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,5,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMREC=^XMB(3.8,XMGIEN,5,XMI,0)
  1. . S XMMIEN=$P(XMREC,U)
  1. . S XMTYPE=$P(XMREC,U,2)
  1. . S XMNAME=$P($G(^XMB(3.8,XMMIEN,0)),U)
  1. . I XMNAME="" D DELETE(XMGIEN,5,XMI) Q
  1. . I XMTYPE'="" S XMNAME=XMTYPE_":"_XMNAME
  1. . W !,$$EZBLD^DIALOG(39090),XMNAME ;Member Group:
  1. Q
  1. REMOTE(XMGIEN,XMABORT) ; Remote Members
  1. Q:'$O(^XMB(3.8,XMGIEN,6,0))
  1. N XMI,XMNAME
  1. W !
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,6,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMNAME=$P(^XMB(3.8,XMGIEN,6,XMI,0),U)
  1. . W !,$$EZBLD^DIALOG(39085),XMNAME ;Remote Member:
  1. Q
  1. DISTR(XMGIEN,XMABORT) ; Distribution list
  1. Q:'$O(^XMB(3.8,XMGIEN,7,0))
  1. N XMI,XMMIEN,XMNAME
  1. W !
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,7,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMMIEN=$P(^XMB(3.8,XMGIEN,7,XMI,0),U)
  1. . S XMNAME=$P($G(^XMB(3.816,XMMIEN,0)),U)
  1. . I XMNAME="" D DELETE(XMGIEN,7,XMI) Q
  1. . W !,$$EZBLD^DIALOG(39080),XMNAME ;Distribution List:
  1. . W:$D(^XMB(3.816,XMMIEN,1,0)) $$EZBLD^DIALOG(39092,$P(^(0),U,4)) ; (To |1| Domains)
  1. Q
  1. FAXGROUP(XMGIEN,XMABORT) ; Fax Groups
  1. Q:'$O(^XMB(3.8,XMGIEN,9,0))
  1. N XMI,XMMIEN,XMNAME
  1. W !
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,9,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMMIEN=$P(^XMB(3.8,XMGIEN,9,XMI,0),U)
  1. . S XMNAME=$P($G(^AKF("FAXG",XMMIEN,0)),U)
  1. . I XMNAME="" D DELETE(XMGIEN,9,XMI) Q
  1. . W !,$$EZBLD^DIALOG(39081),XMNAME ;Fax Group:
  1. Q
  1. FAXMEMBR(XMGIEN,XMABORT) ; Fax Members
  1. Q:'$O(^XMB(3.8,XMGIEN,8,0))
  1. N XMI,XMMIEN,XMNAME
  1. W !
  1. S XMI=0
  1. F S XMI=$O(^XMB(3.8,XMGIEN,8,XMI)) Q:XMI'>0 D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMMIEN=$P(^XMB(3.8,XMGIEN,8,XMI,0),U)
  1. . S XMNAME=$P($G(^AKF("FAXR",XMMIEN,0)),U)
  1. . I XMNAME="" D DELETE(XMGIEN,8,XMI) Q
  1. . W !,$$EZBLD^DIALOG(39082),XMNAME ;Fax Recipient:
  1. Q
  1. MEMBEROF(XMGIEN,XMABORT) ; This group is a member of what other Groups
  1. Q:'$D(^XMB(3.8,"AD",XMGIEN))
  1. N XMMIEN,XMNAME
  1. W !
  1. S XMMIEN=0
  1. F S XMMIEN=$O(^XMB(3.8,"AD",XMGIEN,XMMIEN)) Q:'XMMIEN D Q:XMABORT
  1. . I $Y+3>IOSL D PAGE(.XMABORT) Q:XMABORT
  1. . S XMNAME=$P($G(^XMB(3.8,XMMIEN,0)),U)
  1. . I XMNAME="" D Q
  1. . . N XMI
  1. . . S XMI=$O(^XMB(3.8,"AD",XMGIEN,XMMIEN,0))
  1. . . I XMI D DELETE(XMMIEN,5,XMI) Q
  1. . . K ^XMB(3.8,"AD",XMGIEN,XMMIEN)
  1. . W !,$$EZBLD^DIALOG(39093),XMNAME ; member of group:
  1. Q
  1. GSCREEN ; This routine is a screen [DIC("S")] for a fileman lookup
  1. ; The naked reference is set to ^XMB(3.8,Y,0)
  1. I $P(^(0),U,2)="PU" Q ; Group is public
  1. I $G(^(3))=XMDUZ Q ; User is organizer of the group
  1. I $D(^(1,"B",XMDUZ)) Q ; User is a member of the group
  1. ; *** But this doesn't handle the case in which a user might not be
  1. ; *** a member of this group, but is a member of a member group.
  1. Q
  1. PAGE(XMABORT,XMHDR) ;
  1. D PAGE^XMXUTIL(.XMABORT) Q:XMABORT
  1. W @IOF
  1. D:$G(XMHDR) HEADER
  1. Q
  1. W $$EZBLD^DIALOG(39091) ;Member Last Used MailMan
  1. Q