"icon"=>"Admin-Login-icon.jpeg",
"summary"=>"Internet Public Access Gateway",
"description"=><<"HERE",
+<p><b>This product is no longer maintained.</b></p>
<p>User-friendly Internet access gateway providing separate rooms / areas
access control with a single central administration point.</p>
HERE
print <<"HERE";
<h1>@{[ product::Lib->title($ListItem) ]}</h1>
+
+<p><b>This product is no longer maintained.</b></p>
HERE
print rightimg <<"HERE","./rack-1u.jpeg","Rack mountable 1U cased";
HERE
-sub hotel_href($)
-{
-my($content)=@_;
-
- return a_href_cc {""=>'http://www.hotelsevendays.com/',
- "CZ"=>'http://www.hotelsevendays.cz/',
- "RU"=>'http://www.hotelsevendays.ru/'},$content;
-}
-
-print rightimg <<"HERE",hotel_href(img 'hotelsevendays.jpeg','Hotel Seven Days photo');
-<h2>Pilot Deployment</h2>
-<p>The initial pilot deployment of this gateway is running since 2004 in
-@{[ hotel_href 'Hotel Seven Days' ]}.</p>
-HERE
-
exit;
}
"Case"=>"Deployment",
"Screenshot"=>"Screenshots",
"Spec"=>"Specification",
- "Order"=>"Order",
);
while (@sections) {
my $section_path=shift @sections;
cafe.svg \
rooms.svg \
Lib.pm \
- Order.css \
- Order.js \
- rack-1u.jpeg \
- hotelsevendays.jpeg
+ rack-1u.jpeg
MODPERL_PM+= \
Index.pm \
Case.pm \
Spec.pm \
- Order.pm \
- OrderSubmit.pm \
Screenshot.pm
full_svg_DPI=30
+++ /dev/null
-/* $Id$
- * CSS of HotelGate ordering
- * Copyright (C) 2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; exactly version 2 of June 1991 is required
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-.order[-lace-inherit="margin-center"] {}
-table.order td { padding: 5px; }
+++ /dev/null
-/* $Id$
- * HotelGate Order helper.
- * Copyright (C) 2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; exactly version 2 of June 1991 is required
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-// Double-run protection due to the My::Web "text/javascript" compatibility hack.
-if (!window.var_product_hotelgate_Order_done) {
- var var_product_hotelgate_Order_done=1;
-
-function Order_validate(form)
-{
- var e_types_array=form.elements["type"];
- var checked=0;
- for (var typei=0;typei<e_types_array.length;typei++)
- if (e_types_array[typei].checked)
- checked++;
- if (1!=checked) {
- // FIXME: Unify with: $product::hotelgate::Order::error{"type_missing"}
- alert("Please fill in the {Device casing type} field!");
- return false;
- }
- return true;
-}
-
-function Order_error_check()
-{
- var e_error;
- if (document.getElementById)
- e_error=document.getElementById("error");
- if (e_error && e_error.textContent)
- alert(e_error.textContent);
-}
-
-function Order_error_check_delayed()
-{
- // HACK: 0ms - wait for 'css_inherit.js' finalization.
- setTimeout('Order_error_check();',0);
-}
-
-/* Origin: http://simon.incutio.com/archive/2004/05/26/addLoadEvent */
-function addLoadEvent(func)
-{
- var onload_orig=window.onload;
- if (typeof(onload_orig)!='function')
- window.onload = func;
- else
- window.onload = function()
- {
- onload_orig();
- func();
- };
-}
-
-addLoadEvent(Order_error_check_delayed);
-
-}
+++ /dev/null
-# $Id$
-# Ordering form of 'My::Project::hotelgate'
-# Copyright (C) 2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; exactly version 2 of June 1991 is required
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-package product::hotelgate::Order;
-require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
-our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
-our $CVS_ID=q$Id$;
-use strict;
-use warnings;
-
-use My::Web;
-use Hash::Util qw(lock_hash);
-
-
-my %error=(
- "email_missing"=>"Your e-mail address is required, please fill it in.",
- "type_missing"=>"Please fill in the {Device casing type} field.",
- "ok"=>"Order has been accepted. Please wait to be contacted.",
- );
-lock_hash(%error);
-sub error($$)
-{
-my($self,$keyword)=@_;
-
- my $trash=$error{$keyword}; # existence check;
- return $keyword;
-}
-
-sub handler
-{
-Wrequire 'product::hotelgate::Lib';
-my $W=product::hotelgate::Lib->init(
- "title"=>"HotelGate: Order Form",
- "css_push"=>"./Order.css",
- "js_push"=>"./Order.js",
- );
-
-
-my $COLS=50;
-
-print <<"HERE";
-<h1>HotelGate Order</h1>
-
-<p>Price offer will be provided according to your order specification.
-You may also contact us directly at the e-mail address:
-@{[ a_href 'mailto:hotelgate@jankratochvil.net' ]}</p>
-HERE
-
-if (my $error=$W->{"args"}{"error"}) {
- print <<"HERE";
-<p align="center" class="error" id="error">@{[ $error{$error} ]}</p>
-HERE
- }
-
-print <<"HERE";
-<form action="OrderSubmit.pm" @{[ form_method "post" ]} onsubmit="return Order_validate(this);">
- <table border="1" class="order">
- <tr><td>
- Your e-mail contact address (required).
- <br />
- <input type="text" size="@{[ $COLS ]}" name="email" value="@{[ escapeHTML($W->{"args"}{"email"}||"") ]}" />
- </td></tr>
- <tr><td>
- Contact person, shipping address.
- <br />
- <input type="text" size="@{[ $COLS ]}" name="address" value="@{[ escapeHTML($W->{"args"}{"address"}||"") ]}" />
- </td></tr>
- <tr><td>
- Installation location - leave empty if you install the device on your own.<br />
- European facility installations provided by @{[ a_href 'http://www.jklabs.cz/','JK Labs' ]}.
- <br />
- <input type="text" size="@{[ $COLS ]}" name="location" value="@{[ escapeHTML($W->{"args"}{"location"}||"") ]}" />
- </td></tr>
- <tr><td>
- Device casing type and available ports:
-HERE
-
-for (
- { "case"=>"1U","internal"=>1 },
- { "case"=>"4U","internal"=>1 },
- { "case"=>"4U","internal"=>2 },
- { "case"=>"4U","internal"=>3 },
- { "case"=>"4U","internal"=>4 },
- ) {
- print <<"HERE";
- <br />
- <input type="radio" name="type" value="@{[ $_->{"case"} ]}-1+@{[ $_->{"internal"} ]}"
- @{[ ($W->{"args"}{"type"}||"") ne $_->{"case"} ? '' : 'checked="checked"' ]}
- />
- Rack mountable @{[ $_->{"case"} ]}; ethernet ports: 1 external + @{[ $_->{"internal"} ]} internal
-HERE
- }
-
-print <<"HERE";
- </td></tr>
- <tr><td>
- Required internal network port(s).<br />
- Please specify any WiFi 802.11b or 802.11g access points to bundle with.
- <br />
- <textarea rows="4" cols="@{[ $COLS ]}" name="downlink">@{[ escapeHTML($W->{"args"}{"downlink"}||"") ]}</textarea>
- </td></tr>
- <tr><td>
- Available type of the uplink (public Internet) connection:
- <br />
- <textarea rows="2" cols="@{[ $COLS ]}" name="uplink">@{[ escapeHTML($W->{"args"}{"uplink"}||"") ]}</textarea>
- </td></tr>
- <tr><td>
- Additional notes:
- <br />
- <textarea rows="8" cols="@{[ $COLS ]}" name="comment">@{[ escapeHTML($W->{"args"}{"comment"}||"") ]}</textarea>
- </td></tr>
- <tr><td align="center"><input type="submit" value="Send Order" /></td></tr>
- </table>
-</form>
-HERE
-
-
-exit;
-}
-1;
+++ /dev/null
-# $Id$
-# Ordering form processor of 'My::Project::hotelgate'
-# Copyright (C) 2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; exactly version 2 of June 1991 is required
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-package product::hotelgate::OrderSubmit;
-require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
-our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
-our $CVS_ID=q$Id$;
-use strict;
-use warnings;
-
-use My::Web;
-use Apache2::Const qw(HTTP_MOVED_TEMPORARILY);
-use Carp qw(confess cluck);
-require MIME::Entity;
-
-
-my $SENDER='HotelGate of www.jankratochvil.net <project-hotelgate@jankratochvil.net>';
-my $FROM=$SENDER;
-my $TO=$SENDER;
-
-our $HTML_TEST="download";
-our $HTML_TEST_RC=HTTP_MOVED_TEMPORARILY;
-
-sub handler
-{
-my $W=My::Web->init(
- "http_safe"=>0,
- );
-
-
-my @fields=qw(
- email
- address
- location
- type
- downlink
- uplink
- comment
- );
-my %fields=map(($_=>1),@fields);
-
-# Required fields:
-for my $field (qw(
- type
- email
- )) {
- cluck if !$fields{$field};
- next if $W->{"args"}{$field};
- $W->{"args_persistent"}{$_}=1 for @fields;
- My::Web->http_moved("./Order.pm?error=".product::hotelgate::Order->error("${field}_missing"),HTTP_MOVED_TEMPORARILY);
- confess "NOTREACHED";
- }
-
-my $data="";
-$data.=<<"HERE" for @fields;
-$_:
-@{[ $W->{"args"}{$_} ]}
-
-HERE
-for (qw(
- User-Agent
- Referer
- _remote_ip
- X-Forwarded-For
- )) {
- next if !defined $W->{"headers_in"}{$_};
- $data.=<<"HERE"
-headers_in::$_=@{[ $W->{"headers_in"}{$_} ]}
-HERE
- }
-$data.=<<"HERE";
-EOF
-HERE
-
-my $top=MIME::Entity->build(
- "Sender"=>$SENDER,
- "From"=>$FROM,
- "To"=>$TO,
- "Data"=>$data,
- );
-$top->smtpsend();
-
-
-My::Web->http_moved("./Order.pm?error=".product::hotelgate::Order->error("ok"),HTTP_MOVED_TEMPORARILY);
-confess "NOTREACHED";
-}
-1;
"icon"=>"icon.jpeg",
"summary"=>"Alternative center for cheaper mobile phones multimedia messages (MMS)",
"description"=>sub { return <<"HERE"; },
+<p><b>This product is no longer maintained.</b></p>
<p>You can use MMS messages for a price slightly higher than regular SMS
message, depending on the GPRS data price plans of your country.
Service is suitable to coexist with existing GSM networks MMS services.</p>
print <<"HERE";
<h1>@{[ product::Lib->title($ListItem) ]}</h1>
+<p><b>This product is no longer maintained.</b></p>
+
<p>Currently supported client mobile phones of the country: <i>Czech Republic</i></p>
<table border="0" class="margin-center td-center">
<tr><td>@{[