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