This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
vsc e5f4633c39 This commit was generated by cvs2svn to compensate for changes in r4,
which included commits to RCS files with non-trunk default branches.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@5 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2001-04-09 19:54:03 +00:00

92 lines
2.7 KiB
Prolog

% #!/bin/sh
% exec /usr/local/bin/ciao_shell $0 $*
:- use_package(pillow).
:- use_module(library(aggregates)).
main :-
get_form_input(Info),
get_form_value(Info,mood,Mood0),
get_form_value(Info,potatoes,Potatoes),
get_form_value(Info,pizza,Pizza),
get_form_value(Info,coke,Coke),
get_form_value(Info,pass,Password),
get_form_value(Info,text,Text),
get_form_value(Info,menu1,Number),
findall(Color,member(menu2=Color,Info),Colors),
compute_reply(Mood0,Potatoes,Pizza,Coke,Password,Text,Number,Colors,Reply),
form_default(Mood0,happy,Mood),
output_html([
cgi_reply,
start,
title('Sample Form generated from Prolog'),
h1('Sample HTML form'),
Reply,
--,
h2('This is a form:'),
start_form,
'Please select mood:',
radio(mood,happy,Mood),nl,
image('http://www.clip.dia.fi.upm.es/images/smile.happy.gif',
[align=middle]),
nl,
radio(mood,sad,Mood),nl,
image('http://www.clip.dia.fi.upm.es/images/smile.sad.gif',
[align=middle]),
$,
'What ',strong(do),' you want?',\\,
checkbox(potatoes,Potatoes), 'Potato(e)s',\\,
checkbox(pizza,Pizza), 'Pizza',\\,
checkbox(coke,Coke), 'Coke',
$,
'Write here a password:',nl,
input(password,[name=pass,size=9,maxlength=8]),$,
textinput(text,[rows=5,cols=20],"Write here something"),$,
'You can choose here: ', menu(menu1,[],[one,$two,three]),nl,
'Also here: ', menu(menu2,[multiple],[$red,$green,blue]),$,
input(submit,[value='Send values']),nl,
input(reset,[value='Reset values']),
end_form,
--,
address('clip@dia.fi.upm.es'),
end]).
compute_reply('',_,_,_,_,_,_,_,'') :- !.
compute_reply(Mood,Potatoes,Pizza,Coke,Passwd0,Text0,Number,Colors0,Reply) :-
compute_food(Potatoes,Pizza,Coke,Food),
compute_text(Text0,Text),
compute_password(Passwd0,Passwd),
compute_colors(Colors0,Colors),
Reply = [
--,
heading(2,'Submitted data:'),
'You are ',strong(Mood),'.',\\,
'You want ',strong(Food),\\,
'The password is ',tt(verbatim(Passwd)),'.',\\,
'In the text area you wrote: ',Text,$,
'You chose number ',tt(Number),' and color(s):',
preformatted(Colors)].
compute_food('','','','no food.').
compute_food(on,'','','potatoes.').
compute_food('',on,'','pizza.').
compute_food('','',on,'coke.').
compute_food(on,on,'','potatoes and pizza.').
compute_food('',on,on,'pizza with coke.').
compute_food(on,'',on,'potatoes with coke.').
compute_food(on,on,on,'potatoes and pizza with coke.').
compute_text(T0,T) :-
form_empty_value(T0), !,
T = '{Nothing}'.
compute_text(T,preformatted(T)).
compute_password(P0,P) :-
P0 = '$empty' -> P = '{none}'; P = P0.
compute_colors(C0,C) :-
C0 = [] -> C = [none] ; C = C0.