From: Will Budic Date: Sat, 23 Sep 2023 01:09:50 +0000 (+1000) Subject: CGI module changes. X-Git-Url: https://lifelog.hopto.org/gitweb/?a=commitdiff_plain;h=60191d98fc836c3b4cb1bb573ed1e3b8d5869e8d;p=LifeLog.git CGI module changes. --- diff --git a/htdocs/cgi-bin/CNFServices.cgi b/htdocs/cgi-bin/CNFServices.cgi index b6ab00e..651e8aa 100755 --- a/htdocs/cgi-bin/CNFServices.cgi +++ b/htdocs/cgi-bin/CNFServices.cgi @@ -7,8 +7,9 @@ use strict; use warnings; use Exception::Class ('CNFHTMLServiceError'); use Syntax::Keyword::Try; -use CGI; -use CGI::Session '-ip_match'; +use utf8; +use CGI::Tiny; +use Path::Tiny; no warnings qw(experimental::signatures); use feature qw(signatures); ## @@ -17,15 +18,10 @@ use feature qw(signatures); ## use CGI::Carp qw(fatalsToBrowser set_message); -BEGIN { - sub handle_errors { - my $err = shift; - say "

Server Error

$err"; - } - set_message(\&handle_errors); -} - -use lib "system/modules"; +## +# This is a entry point script (main). +## +use lib::relative "system/modules"; require CNFParser; require CNFNode; @@ -43,24 +39,44 @@ use constant LOG_Settings =>q( >> ); -exit &CNFHTMLService; +cgi { + my $cgi = $_; + $cgi->set_error_handler( + sub { + my ($cgi, $error, $rendered) = @_; + chomp $error; + $cgi->render(text=>qq(You have unfortunately hit an cgi-bin::CNFHTMLServiceError +
$error

+ + ) + ); + } + ); + exit CNFHTMLService($cgi); +}; + sub CNFHTMLService { - my ($cgi,$ptr) = (CGI -> new(),undef); + + my ($cgi,$ptr) = (shift, undef); my $cnf = CNFParser -> new (undef,{ DO_ENABLED => 1, HAS_EXTENSIONS=>1, ANONS_ARE_PUBLIC => 1, CGI=>$cgi }); $cnf->parse(undef,_getServiceScript($cgi)); $ptr = $cnf->data(); $ptr = $ptr->{'PAGE'}; - say $$ptr if $ptr; + #say $$ptr if $ptr; + $cgi -> render(text=>$$ptr); return 0 } sub _getServiceScript($cgi) { - my $service = $cgi->param('service'); $service = "undef" if not $service; + my $service = $cgi->param('service'); + unless ($service){ + $cgi->set_response_status(404); + CNFHTMLServiceError->throw(error=>'The Service parameter \'service\' is not set!', show_trace=>1); + } if($service eq 'feeds'){ return _CNF_Script_For_Feeds(); } - CNFHTMLServiceError->throw(error=>"UNKNOWN SERVICE -> $service", show_trace=>1) } sub _CNF_Script_For_Feeds { diff --git a/htdocs/cgi-bin/index.cnf b/htdocs/cgi-bin/index.cnf index 655f5ca..9051ad3 100644 --- a/htdocs/cgi-bin/index.cnf +++ b/htdocs/cgi-bin/index.cnf @@ -33,7 +33,7 @@ #header { border: 1px solid gray; - background: rgba(128,128,128,0.2); + background: rgba(0, 223, 246, 0.13); margin:5px; } diff --git a/htdocs/cgi-bin/wsrc/feeds.js b/htdocs/cgi-bin/wsrc/feeds.js index 1e0ea9b..d10a759 100644 --- a/htdocs/cgi-bin/wsrc/feeds.js +++ b/htdocs/cgi-bin/wsrc/feeds.js @@ -9,7 +9,10 @@ function fetchFeeds(id){ pnl.css('visibility','visible'); $(document).scrollTop( $("#rss_anchor").offset().top ); $.post('CNFServices.cgi', {service:'feeds',action:'list'}, displayFeeds).fail( - function(response) {pnl.html("Service Error: "+response.status,response.responseText);pnl.fadeOut(10000);} + function(response) { + pnl.html(response.responseText); + pnl.fadeOut(10000); + } ); } function fetchFeed(feed) { @@ -21,7 +24,10 @@ function fetchFeed(feed) { pnl.show(); pnl.css('visibility','visible'); $.post('CNFServices.cgi', {service:'feeds', action:'read', feed:feed}, displayFeeds).fail( - function(response) {pnl.html("Service Error: "+response.status,response.responseText);pnl.fadeOut(10000);} + function(response) { + pnl.html(response.responseText); + pnl.fadeOut(20000); + } ); } function displayFeeds(content){ diff --git a/htdocs/cgi-bin/wsrc/main_sun.css b/htdocs/cgi-bin/wsrc/main_sun.css index 26a76bc..2f8b5ef 100644 --- a/htdocs/cgi-bin/wsrc/main_sun.css +++ b/htdocs/cgi-bin/wsrc/main_sun.css @@ -148,9 +148,10 @@ th, .login { vertical-align: middle; text-align:center; width: 60% !important; - background:#b2f8ef url('images/Sun-Rotating.gif'); - background-repeat: repeat; - background2:#ffd9007a; + background:black url('images/Sun-Rotating.gif'); + background-repeat: no-repeat; + background-repeat: space; + background-position-x: right; } div#rz { border: 1px solid black;