1 | XMVGRP ;ISC-SF/GMB-Group creation/enrollment ;03/07/2002 07:01
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Entry points used by MailMan options (not covered by DBIA):
|
---|
4 | ; ENLOCAL XMxxxxx - Add local users to mail groups
|
---|
5 | ENLOCAL1(XMXQUSER) ; Add local user(s) to group(s) - called from Kernel
|
---|
6 | ; XMXQUSER - first user being added (duz or name)
|
---|
7 | I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
|
---|
8 | D INITAPI^XMVVITAE
|
---|
9 | ENLOCAL ; Add local user(s) to mail group(s).
|
---|
10 | N XMGRP,XMMBR,XMINSTR,XMTSK,XMTO,XMABORT
|
---|
11 | S XMABORT=0
|
---|
12 | D ENGRP(.XMGRP,.XMABORT) Q:XMABORT!'$D(XMGRP) ; select groups
|
---|
13 | D ENUSER(.XMMBR,.XMABORT,.XMXQUSER) Q:XMABORT ; select users
|
---|
14 | D ENCONF(.XMGRP,.XMMBR,.XMABORT) Q:XMABORT ; confirm it
|
---|
15 | D ADD2GRPZ^XMXGRP(.XMGRP,.XMMBR,.XMTO) ; add users to groups
|
---|
16 | W !!,$$EZBLD^DIALOG(38233) ; Users have been added to the mail groups
|
---|
17 | D ENFWD(XMDUZ,.XMINSTR,.XMABORT) Q:XMABORT ; forward msgs?
|
---|
18 | D FAFMSGS^XMXGRP1(XMDUZ,.XMGRP,.XMTO,.XMINSTR,.XMTSK) ; yup.
|
---|
19 | D FWDTSK^XMVGROUP(XMTSK) ; tell the user the task number.
|
---|
20 | Q
|
---|
21 | ENGRP(XMGRP,XMABORT) ;
|
---|
22 | N Y
|
---|
23 | F D Q:Y=-1!XMABORT
|
---|
24 | . N DIC,DIR,X,XMDEL
|
---|
25 | . S DIR("A")=$$EZBLD^DIALOG($S($D(XMGRP):38211,1:38210)) ; Another mail group / Allocate mail group
|
---|
26 | . S DIR("PRE")="I $E(X)=""-"" S XMDEL=1,X=$E(X,2,99)"
|
---|
27 | . D BLD^DIALOG(38213,"","","DIR(""?"")")
|
---|
28 | . ;Enter the name of the mail group you wish to allocate.
|
---|
29 | . ;Precede any mail group name with '-' to remove it.
|
---|
30 | . ;You'll only be able to select mail groups you're authorized to edit.
|
---|
31 | . ;Enter ?? for a list of mail groups you've already selected,
|
---|
32 | . ;and for mail group help.
|
---|
33 | . S DIR("??")="^D HELPGRP^XMVGRP"
|
---|
34 | . S DIR(0)="PO^3.8:FEMQ"
|
---|
35 | . S DIC("S")=$$GRPSCR^XMVGROUP(1)
|
---|
36 | . D ^DIR I $D(DTOUT)!$D(DUOUT) S XMABORT=1 Q
|
---|
37 | . Q:Y=-1
|
---|
38 | . I '$G(XMDEL) S XMGRP($P(Y,U,2))=+Y Q
|
---|
39 | . I '$D(XMGRP($P(Y,U,2))) W $C(7),$$EZBLD^DIALOG(38214) Q ; ?? Not on current list.
|
---|
40 | . K XMGRP($P(Y,U,2))
|
---|
41 | . W $$EZBLD^DIALOG(38215) ; Deleted from current list.
|
---|
42 | Q
|
---|
43 | HELPGRP ;
|
---|
44 | I '$D(XMGRP) W !,$$EZBLD^DIALOG(38216) ; You haven't selected any mail groups yet.
|
---|
45 | E D SHOWGRP
|
---|
46 | N DIR,X,Y,DIRUT,DTOUT,DIRUT
|
---|
47 | S DIR("A")=$$EZBLD^DIALOG(38217) ; Want mail group help
|
---|
48 | S DIR(0)="Y"
|
---|
49 | S DIR("B")=$$EZBLD^DIALOG(39053) ; NO
|
---|
50 | D ^DIR Q:'Y
|
---|
51 | ;D HELP^XMHIG
|
---|
52 | N DIC,X,Y,DLAYGO
|
---|
53 | S DIC(0)="AEQM",DIC="^XMB(3.8,"
|
---|
54 | S DIC("S")=$$GRPSCR^XMVGROUP(1)
|
---|
55 | F W ! D ^DIC Q:Y<0 D
|
---|
56 | . D DISPLAY^XMHIG(+Y)
|
---|
57 | Q
|
---|
58 | SHOWGRP ;
|
---|
59 | N XMI,XMJ,XML,XMLN
|
---|
60 | W !!,$$EZBLD^DIALOG(38218) ; You've selected the following mail groups:
|
---|
61 | S XML=0,XMI="" F S XMI=$O(XMGRP(XMI)) Q:XMI="" I $L(XMI)>XML S XML=$L(XMI)
|
---|
62 | S XML=XML+3,XMLN=80\XML
|
---|
63 | S XMI=""
|
---|
64 | F XMJ=0:1 S XMI=$O(XMGRP(XMI)) Q:XMI="" D
|
---|
65 | . W:'(XMJ#XMLN) ! W ?(XMJ#XMLN*XML),XMI
|
---|
66 | Q
|
---|
67 | ENUSER(XMMBR,XMABORT,XMUSER) ;
|
---|
68 | N XMX,XMDONE
|
---|
69 | W !
|
---|
70 | S XMDONE=0
|
---|
71 | F D Q:XMDONE!XMABORT
|
---|
72 | . N XMDEL
|
---|
73 | . W !,$$EZBLD^DIALOG($S($D(XMMBR):38221,1:38220)) ; Another user: / Add user:
|
---|
74 | . I $G(XMUSER)'="" D
|
---|
75 | . . S XMX=XMUSER
|
---|
76 | . . K XMUSER
|
---|
77 | . . W XMX
|
---|
78 | . E D Q:XMX=""
|
---|
79 | . . R XMX:DTIME S:'$T XMX=U I XMX[U S XMABORT=1 Q
|
---|
80 | . . I XMX="" D Q
|
---|
81 | . . . I $D(XMMBR) S XMDONE=1 Q
|
---|
82 | . . . W $C(7)," ??",!,$$EZBLD^DIALOG(38222) ; You must select a user, or enter ^ to exit.
|
---|
83 | . . I XMX?1."?" D HELPUSR(XMX) S:XMX'="?" XMX="" Q
|
---|
84 | . . I $E(XMX)="-" S XMDEL=1,XMX=$E(XMX,2,99) W:XMX="" " ??",$C(7)
|
---|
85 | . N DIC,D,X,Y,DLAYGO,XMNAME
|
---|
86 | . S X=$$UP^XLFSTR(XMX)
|
---|
87 | . S DIC("S")="I $L($P(^(0),U,3)),$D(^XMB(3.7,+Y,2))" ; User must have an access code & mailbox
|
---|
88 | . S DIC("W")="I Y'=DUZ D USERINFO^XMXADDR1(Y)"
|
---|
89 | . S DIC="^VA(200,"
|
---|
90 | . S DIC(0)="FEMN" ; 'N' means if user enters a DUZ, ask "OK?"
|
---|
91 | . S D="B^BB^C^D" ; name^alias^initial^nickname
|
---|
92 | . D MIX^DIC1 I $D(DTOUT)!$D(DUOUT) S XMABORT=1 Q
|
---|
93 | . I Y<0 W " ??",$C(7) Q
|
---|
94 | . S XMNAME=$$NAME^XMXUTIL(+Y) ; $P(Y,U,2)
|
---|
95 | . I '$G(XMDEL) S XMMBR(XMNAME)=+Y Q
|
---|
96 | . I '$D(XMMBR(XMNAME)) W !,$C(7),$$EZBLD^DIALOG(38214) Q ; ?? Not on current list.
|
---|
97 | . K XMMBR(XMNAME)
|
---|
98 | . W !,$$EZBLD^DIALOG(38215) ; Deleted from current list.
|
---|
99 | Q
|
---|
100 | HELPUSR(XMX) ;
|
---|
101 | I XMX="?" D Q
|
---|
102 | . N XMTEXT
|
---|
103 | . D BLD^DIALOG(38223,"","","XMTEXT","F")
|
---|
104 | . D MSG^DIALOG("WH","","","","XMTEXT")
|
---|
105 | . ;Enter the name of the user you wish to add to the group(s).
|
---|
106 | . ;Precede any user name with '-' to remove it.
|
---|
107 | . ;You'll only be able to select users with mailboxes and access codes.
|
---|
108 | . ;Enter ?? for a list of users you've already selected,
|
---|
109 | . ;and for user help.
|
---|
110 | I '$D(XMMBR) W !,$$EZBLD^DIALOG(38226) ;You haven't selected any users yet.
|
---|
111 | E D SHOWUSR
|
---|
112 | N DIR,X,Y,DIRUT,DTOUT,DIRUT
|
---|
113 | S DIR("A")=$$EZBLD^DIALOG(38224) ; Want user help
|
---|
114 | S DIR(0)="Y"
|
---|
115 | S DIR("B")=$$EZBLD^DIALOG(39053) ; NO
|
---|
116 | D ^DIR Q:'Y
|
---|
117 | D HELP^XMHIU
|
---|
118 | Q
|
---|
119 | SHOWUSR ;
|
---|
120 | N XMI,XMJ,XML,XMLN
|
---|
121 | W !!,$$EZBLD^DIALOG(38225) ; You've selected the following users:
|
---|
122 | S XML=0,XMI="" F S XMI=$O(XMMBR(XMI)) Q:XMI="" I $L(XMI)>XML S XML=$L(XMI)
|
---|
123 | S XML=XML+3,XMLN=80\XML
|
---|
124 | S XMI=""
|
---|
125 | F XMJ=0:1 S XMI=$O(XMMBR(XMI)) Q:XMI="" D
|
---|
126 | . W:'(XMJ#XMLN) ! W ?(XMJ#XMLN*XML),XMI
|
---|
127 | Q
|
---|
128 | ENCONF(XMGRP,XMMBR,XMABORT) ;
|
---|
129 | D SHOWGRP
|
---|
130 | D SHOWUSR
|
---|
131 | W !
|
---|
132 | N DIR,X,Y
|
---|
133 | D BLD^DIALOG(38230,"","","DIR(""A"")") ; You are adding users to mail groups. Do you wish to proceed
|
---|
134 | S DIR(0)="Y"
|
---|
135 | S DIR("B")=$$EZBLD^DIALOG(39054) ; yes
|
---|
136 | D ^DIR I 'Y S XMABORT=1
|
---|
137 | Q
|
---|
138 | ENFWD(XMDUZ,XMINSTR,XMABORT) ;
|
---|
139 | W !
|
---|
140 | N DIR,X,Y
|
---|
141 | D BLD^DIALOG(38231,"","","DIR(""A"")")
|
---|
142 | ;Do you wish to forward past mail group messages
|
---|
143 | ;to the user(s) you just added to the mail group(s)
|
---|
144 | D BLD^DIALOG(38232,"","","DIR(""?"")")
|
---|
145 | ;Answer YES to forward past mail group messages.
|
---|
146 | ;You will be asked for a time frame to search,
|
---|
147 | ;and then MailMan will create a task to find and forward
|
---|
148 | ;existing mail group messages.
|
---|
149 | S DIR(0)="Y"
|
---|
150 | S DIR("B")=$$EZBLD^DIALOG(39053) ; no
|
---|
151 | D ^DIR I $D(DIRUT)!'Y S XMABORT=1 Q
|
---|
152 | D FWDDATES(XMDUZ,.XMINSTR,.XMABORT) Q:XMABORT
|
---|
153 | S XMINSTR("FLAGS")="F"
|
---|
154 | Q
|
---|
155 | FWDDATES(XMDUZ,XMINSTR,XMABORT) ;
|
---|
156 | ; Message sent on or before date
|
---|
157 | N DIR,Y,X,XMOLDEST,XMTEXT
|
---|
158 | ;S XMOLDEST=$O(^XMB(3.9,"C",""))
|
---|
159 | F S XMOLDEST=$O(^XMB(3.9,"C","")) Q:XMOLDEST?1N.N K ^XMB(3.9,"C",XMOLDEST) ; kill bogus nodes
|
---|
160 | ; You will now choose a date range for the messages to be searched
|
---|
161 | ; and forwarded. The oldest message is from XMOLDEST.
|
---|
162 | W !
|
---|
163 | D BLD^DIALOG(38023.5,$$FMTE^XLFDT(XMOLDEST,5),"","XMTEXT","F")
|
---|
164 | D MSG^DIALOG("WM","",IOM,"","XMTEXT")
|
---|
165 | I $P(^XMB(3.7,XMDUZ,0),U,7) D
|
---|
166 | . N XMCUT
|
---|
167 | . S XMCUT=$P(^XMB(3.7,XMDUZ,0),U,7)
|
---|
168 | . Q:XMCUT<XMOLDEST
|
---|
169 | . ; You may not access any message prior to |1| unless someone
|
---|
170 | . ; forwards it to you.
|
---|
171 | . D BLD^DIALOG(37100,$$FMTE^XLFDT(XMCUT,5),"","XMTEXT","F")
|
---|
172 | . D MSG^DIALOG("WE","",IOM,"","XMTEXT")
|
---|
173 | . S XMOLDEST=XMCUT
|
---|
174 | W !
|
---|
175 | S DIR(0)="DO^"_XMOLDEST_":DT:EX"
|
---|
176 | S DIR("A")=$$EZBLD^DIALOG(34444) ; Message sent on or after
|
---|
177 | D BLD^DIALOG(34444.1,"","","DIR(""?"")")
|
---|
178 | ; Enter a date. It must include day, month, and year.
|
---|
179 | S DIR("B")=$$FMTE^XLFDT($$MAX^XLFMTH(XMOLDEST,$$FMADD^XLFDT(DT,-365)),5)
|
---|
180 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
181 | S XMINSTR("FDATE")=Y
|
---|
182 | ; Message sent on or before date
|
---|
183 | I XMINSTR("FDATE")=DT S XMINSTR("TDATE")=DT Q
|
---|
184 | K DIR,Y,X
|
---|
185 | S DIR(0)="DO^"_XMINSTR("FDATE")_":DT:EX"
|
---|
186 | S DIR("A")=$$EZBLD^DIALOG(34445) ; Message sent on or before
|
---|
187 | D BLD^DIALOG(34444.1,"","","DIR(""?"")")
|
---|
188 | ; Enter a date. It must include day, month, and year.
|
---|
189 | S DIR("B")=$$FMTE^XLFDT(DT,5)
|
---|
190 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
191 | S XMINSTR("TDATE")=Y
|
---|
192 | Q
|
---|