| 1 | XMJBU ;ISC-SF/GMB-Basket utilities ;04/06/2002  08:56
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; (ISC-WASH/CAP/THM)
 | 
|---|
| 4 | SELBSKT(XMDUZ,XMPROMPT,XMLAYGO,XMDIC,XMK,XMKN) ; Select a basket (Replaces S^XMA1B)
 | 
|---|
| 5 |  ; XMPROMPT (in) Verbage for prompt
 | 
|---|
| 6 |  ; XMLAYGO  (in) "L" - the user may create a new basket
 | 
|---|
| 7 |  ;               ""  - the user may not create a new basket
 | 
|---|
| 8 |  ; XMK      (out) basket number (=^ if user up-arrows out)
 | 
|---|
| 9 |  ; XMKN     (out) basket name
 | 
|---|
| 10 |  N DIC,DINUM,DA,Y,X
 | 
|---|
| 11 |  I $G(XMLAYGO)["L" D
 | 
|---|
| 12 |  . ; Find the first vacant basket spot.
 | 
|---|
| 13 |  . F DINUM=2:1 Q:'$D(^XMB(3.7,XMDUZ,2,DINUM))
 | 
|---|
| 14 |  . ; Postmaster baskets numbered above 999 are reserved for message queues.
 | 
|---|
| 15 |  . I XMDUZ=.5,DINUM>999 S XMLAYGO=$TR(XMLAYGO,"L")
 | 
|---|
| 16 |  ; Postmaster may not save a queued msg to his own basket. ***
 | 
|---|
| 17 |  S DIC="^XMB(3.7,"_XMDUZ_",2,"
 | 
|---|
| 18 |  S DA(1)=XMDUZ
 | 
|---|
| 19 |  S DIC(0)="AEQ"_$G(XMLAYGO)
 | 
|---|
| 20 |  I $G(XMPROMPT)'="" S DIC("A")=$S(+XMPROMPT=XMPROMPT:$$EZBLD^DIALOG(XMPROMPT),1:XMPROMPT)
 | 
|---|
| 21 |  ; XMDIC("B")="@" means don't give a default
 | 
|---|
| 22 |  I $G(XMDIC("B"))'="@" D
 | 
|---|
| 23 |  . I $D(XMDIC("B")) S DIC("B")=XMDIC("B") Q
 | 
|---|
| 24 |  . I $$BMSGCT^XMXUTIL(XMDUZ,1) S DIC("B")=$$EZBLD^DIALOG(37005) Q  ; IN
 | 
|---|
| 25 |  . W !!,$$EZBLD^DIALOG(34044,$$EZBLD^DIALOG(37005)) ; No messages in 'IN' basket.
 | 
|---|
| 26 |  S:$D(XMDIC("S")) DIC("S")=XMDIC("S")
 | 
|---|
| 27 |  S:$D(XMDIC("W")) DIC("W")=XMDIC("W")
 | 
|---|
| 28 |  D ^DIC I Y=-1 S XMK=U Q
 | 
|---|
| 29 |  S XMK=$P(Y,U,1)
 | 
|---|
| 30 |  S XMKN=$P(Y,U,2)
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | CHKXMKN(X) ; Input transform for file 3.7 (3.701,.01 BASKET)
 | 
|---|
| 33 |  I X=+X,$D(^XMB(3.7,$G(XMDUZ,DUZ),2,X)) S X="`"_X Q
 | 
|---|
| 34 |  K:X[""""!($A(X)=45) X I $D(X) K:$L(X)>30!($L(X)<3) X
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | NAMEBSKT(XMDUZ,XMK,XMKN) ; Rename an existing basket (Replaces REN^XMA11)
 | 
|---|
| 37 |  ; XMK      (in) basket number
 | 
|---|
| 38 |  ; XMKN     (in/out) basket name
 | 
|---|
| 39 |  N DIR,X,XMFDA,XMKX
 | 
|---|
| 40 |  I XMK'>1!(XMDUZ=.5&(XMK>999)) D  Q
 | 
|---|
| 41 |  . W !,$$EZBLD^DIALOG(37201.1) ; The name of this basket may not be changed.
 | 
|---|
| 42 |  ; *** I would rather use a ^DIE call, if I were sure that the user
 | 
|---|
| 43 |  ; *** could not delete the basket or create a duplicate basket name.
 | 
|---|
| 44 |  S DIR("A")=$$EZBLD^DIALOG(34048) ; Enter a new basket name
 | 
|---|
| 45 |  S DIR("B")=XMKN
 | 
|---|
| 46 |  S DIR(0)="3.701,.01"
 | 
|---|
| 47 |  F  D ^DIR Q:$D(DIRUT)  D  Q:$D(X)
 | 
|---|
| 48 |  . I X=XMKN D  Q
 | 
|---|
| 49 |  . . W !,$C(7),$$EZBLD^DIALOG(34048.8) ; That's the same name.
 | 
|---|
| 50 |  . . K X
 | 
|---|
| 51 |  . S XMKX=$$FIND1^DIC(3.701,","_XMDUZ_",","X",X)
 | 
|---|
| 52 |  . I XMKX,XMKX'=XMK D  Q
 | 
|---|
| 53 |  . . W !,$C(7),$$EZBLD^DIALOG(34048.9) ; You already have a basket by this name.
 | 
|---|
| 54 |  . . K X
 | 
|---|
| 55 |  . S XMKN=X
 | 
|---|
| 56 |  . S XMFDA(3.701,XMK_","_XMDUZ_",",.01)=XMKN
 | 
|---|
| 57 |  . D FILE^DIE("","XMFDA")
 | 
|---|
| 58 |  Q
 | 
|---|