From c5c377db9771405c8ca0d763dbce255509521372 Mon Sep 17 00:00:00 2001 From: Karai Csaba Date: Sat, 7 May 2016 15:45:53 +0200 Subject: [PATCH] Added: user pages without checkbox --- examples/dummy-web-server.pl | 62 +++++++++++++++++++++++++++++++++++ examples/web-server/User.html | 22 +++++++++++++ html/userpage.js | 4 +++ 3 files changed, 88 insertions(+) create mode 100644 examples/web-server/User.html diff --git a/examples/dummy-web-server.pl b/examples/dummy-web-server.pl index e492933..9d0189d 100755 --- a/examples/dummy-web-server.pl +++ b/examples/dummy-web-server.pl @@ -13,6 +13,11 @@ my $ledFreq : shared = 10; my @ledHistory : shared; my $startTime : shared = time; my $pattern : shared = "50_50"; +my $userFname : shared; +my $userLname : shared; +my $userAge : shared; +my $userGender : shared; + # auto-flush on socket $| = 1; @@ -353,6 +358,20 @@ sub readUserPages return $add; } +sub jsonString +{ + my ($text) = @_; + return 'null' if ! defined $text; + return "\"$text\""; +} + +sub jsonNumber +{ + my ($num) = @_; + return 'null' if ! defined $num; + return $num + 0; +} + sub led_add_history { my ($msg) = @_; @@ -435,6 +454,44 @@ sub process_user_comm_voltage return content_response($r, $http->{url}); } +sub process_user_comm_user +{ + my ($http) = @_; + + + if( $http->{urlArgs}{reason} eq "submit" ) + { + if( exists $http->{postArgs}{last_name} ) + { + $userLname = $http->{postArgs}{last_name}; + } + if( exists $http->{postArgs}{first_name} ) + { + $userFname = $http->{postArgs}{first_name}; + } + if( exists $http->{postArgs}{age} ) + { + $userAge = $http->{postArgs}{age}; + } + if( exists $http->{postArgs}{gender} ) + { + $userGender = $http->{postArgs}{gender}; + } + return simple_response(204, "OK"); + } + elsif( $http->{urlArgs}{reason} eq "load" ) + { + my $r = '{"last_name": ' . jsonString($userLname) . + ', "first_name": ' . jsonString($userFname) . + ', "age": ' . jsonNumber($userAge) . + ', "gender": ' . jsonString($userGender) . '}'; + + return content_response($r, $http->{url}); + } + + return content_response("{}", $http->{url}); +} + sub process_user_comm() { my ($http) = @_; @@ -448,4 +505,9 @@ sub process_user_comm() { return process_user_comm_voltage($http); } + + if( $http->{url} eq '/User.html.json' ) + { + return process_user_comm_user($http); + } } diff --git a/examples/web-server/User.html b/examples/web-server/User.html new file mode 100644 index 0000000..d4676b9 --- /dev/null +++ b/examples/web-server/User.html @@ -0,0 +1,22 @@ +
+

User setup

+
+ +
+
+ First name:
+ Last name:
+ Age: + + Gender: + +
+ Notifications +
+ +
+
+ diff --git a/html/userpage.js b/html/userpage.js index ca1cbfc..74fc829 100644 --- a/html/userpage.js +++ b/html/userpage.js @@ -23,6 +23,10 @@ function notifyResponse( data ) el.value = data[v]; } } + if(el.tagName == "SELECT") + { + el.value = data[v]; + } } var elem = document.getElementById(v); if( elem != null )