home *** CD-ROM | disk | FTP | other *** search
- {$R-,S-,I-,D-,F+,V-,B-,N- }
- {$M 65500,0,0 }
-
- unit nuv;
-
- interface
-
- uses crt,gentypes,modem,configrt,gensubs,userret,subs1,subs2,textret,flags,mainr1;
-
- procedure nuvit;
- procedure newvotex;
-
- implementation
-
- var cnt,cnt1:integer;
-
- procedure nuvit;
- var n,x:integer;
- u:userrec;
- begin
- for n:=1 to numusers do begin
- seek (ufile,n);
- read (ufile,u);
- for x:=1 to 50 do
- u.newvoteit[x]:=0;
- writeufile (u,n);
- end;
- readurec;
- end;
-
- procedure newvotex;
- var u:userrec;
- q,n:integer;
- c:char;
- unum2:integer;
- cv,alv:boolean;
-
- procedure look;
- var cntz:integer;
- begin
- cnt1:=0;
- alv:=false;
- for cntz:=1 to 50 do begin
- if urec.newvoteit[cntz]=n then begin
- alv:=true;
- cntz:=50;
- end;
- end;
- end;
-
- procedure showuser;
- begin
- look;
- if not alv then begin
- writeln;
- if (ansigraphics in urec.config) then
- write (#27+'[2J') else
- write (^L);
- writeln(^P'┌──────────────┤'^R'FAQ New User Voting'^P'├──────────────┐');
- write (^P'│'^R'Handle'^P': ');
- tab (^S+u.handle,{33}42); writeln (^P'│');
- writeln(^P'├─────────────────────────────────────────────────┤');
- write (^P'│'^R'# of Yes Votes '^P' : ');
- tab (^S+strr(u.newvoteyes),{21}30); writeln (^P'│');
- write (^P'│'^R'# of No Votes '^P' : ');
- tab (^S+strr(u.newvoteno),{21}30); writeln (^P'│');
- write (^P'│'^R'# to be Validated'^P' : ');
- tab (^S+strr(valnu),{21}30); writeln (^P'│');
- write (^P'│'^R'# to be Deleted '^P' : ');
- tab (^S+strr(delnu),{21}30); writeln (^P'│');
- write (^P'│'^R'# Yes Votes Needed'^P': ');
- tab (^S+strr(valnu-u.newvoteyes),{21}30); writeln (^P'│');
- write (^P'│'^R'# No Votes Needed '^P': ');
- tab (^S+strr(delnu-u.newvoteno),{21}30); writeln (^P'│');
- writeln(^P'└─────────────────────────────────────────────────┘');
- writeln;
- writestr (^P'Vote on this user? [y/n]: '^U'*');
- if not yes then alv:=true;
- if not alv then begin
- writestr (^P'Display '+u.handle+'''s infoform? '^U'*');
- if yes then begin {lookinfo(u.handle)} showinfoform(u.handle, 5);
- pause;
- end;
- end;
- end;
- repeat
- if alv then input:='A' else begin
- buflen:=1;
- write(^M^R'Vote on '^S+u.handle+^P': '^S'Y'^R'es '^S'N'^R'o '^S'A'^R'bstain');
- if issysop then write (^S' '^S'V'^R'eto');
- writestr(^S' CR'^P'/'^R'Abstain'^P': '^S'*');
- end;
- if (length(input)<1) then input:=('A');
- input:=upstring(input[1]);
- case input[1] of
- 'Y':begin
- cv:=false;
- cnt:=0;
- seek (ufile,n);
- u.newvoteyes:=u.newvoteyes+1;
- while cnt<=50 do begin
- if urec.newvoteit[cnt]=0 then begin
- urec.newvoteit[cnt]:=n;
- cnt:=50;
- if (u.newvoteyes>=valnu) and (autonuv)
- then begin
- u.level:=volvl;
- u.udlevel:=voflvl;
- u.udpoints:=vofps;
- u.note:='NUV Validated';
- writeufile (u,n);
- nuvit;
- Writeln('User has been auto-validated.');
- end
- else
- Writeln ('Vote: Yes, Answer Entered.');
- cv:=true;
- end;
- cnt:=cnt+1;
- end;
- nnu:=nnu-1;
- end;
-
- 'N':begin
- cv:=false;
- cnt:=0;
- seek (ufile,n);
- u.newvoteno:=u.newvoteno+1;
- while cnt<=50 do begin
- if urec.newvoteit[cnt]=0 then begin
- urec.newvoteit[cnt]:=n;
- cnt:=50;
- if (u.newvoteno>=delnu) and (autonuv)
- then begin
- u.level:=-1;
- u.note:='NUV Deleted';
- writeufile (u,n);
- nuvit;
- Writeln('User has been auto-deleted.');
- end
- else
- Writeln ('Vote: No, Answer Entered.');
- cv:=true;
- end;
- cnt:=cnt+1;
- end;
- nnu:=nnu-1;
- end;
-
- 'A':begin
- cv:=false;
- if not alv then begin
- writeln ('Vote: Abstain, Thank You!');
- end;
- cv:=true;
- end;
- 'V':if issysop then begin
- writestr (^S'V'^R'alidate or '^S'D'^R'elete'^P': '^U'*');
- c:=upcase (input[1]);
- case c of
- 'V':begin
- u.level:=volvl;
- u.udlevel:=voflvl;
- u.udpoints:=vofps;
- u.note:='NUV Validated';
- writeufile (u,n);
- cnt:=cnt+1;
- nnu:=nnu-1;
- nuvit;
- writeln ('User has been validated.'); end;
- 'D':begin
- u.level:=-1;
- u.note:='NUV Deleted';
- writeufile (u,n);
- nuvit;
- cnt:=cnt+1;
- nnu:=nnu-1;
- writeln ('User has been deleted.'); end;
- end; end;
- end;{case}
- until cv;
- end;{showuser}
-
- begin
- writehdr ('New User Voting');
- if urec.level<newvotelvl then exit;
- if (nnu<1) then begin
- Writeln ('No new users on NUV list.');
- end;
- repeat
- q:=menu ('New User Voting','NUV','VLQ?');
- writeln;
- case q of
- 1:begin for n:=1 to numusers do begin
- seek (ufile,n);
- read (ufile,u);
- if (u.level<logonlevel) and (length(u.handle)>0) then showuser;
- end;
- writeurec;
- seek (ufile,n);
- write (ufile,u);
- readurec;
- end;
- 2:begin
- writehdr ('List Pending Users');
- writeln ('Unum Handle');
- if asciigraphics in urec.config then writeln ('──── ──────') else writeln ('---- -----');
- for n:=1 to numusers do begin
- seek (ufile,n);
- read (ufile,u);
- if (u.level=defuserlevel) and (length(u.handle)>0) then begin
- tab (strr(n),6); writeln (u.handle); end;
- end; end;
- 4:begin
- writeln ('C╔═════════════════════════════════════╗Hs');
- writeln ('uC║ New User Voting Section ║Hs');
- writeln ('uC╚═════════════════════════════════════╝HHC╔════s');
- writeln ('u═════════════════════════════════╗HC║ [L] s');
- writeln ('uList Users in NUV ║HC║ [Qs');
- writeln ('u] Quit ║HC║ [s');
- writeln ('uV] Vote on User(s) ║Hs');
- writeln ('uC║ [?] View This Menu s');
- writeln ('u║HC╚═════════════════════════════════════╝');
- writeln;
- pause;
- end;
- end
- until (hungupon) or (q=3);
- end;
-
- procedure deleteuser (n:integer);
- var u:userrec;
- begin
- delallmail (n);
- fillchar (u,sizeof(u),0);
- u.infoform1:=-1;
- u.emailannounce:=-1;
- writeufile (u,n);
- end;
-
- begin
- end.