initial commit of file from CVS for e-smith-starterwebsite on Wed 12 Jul 09:09:54 BST 2023

This commit is contained in:
Brian Read
2023-07-12 09:09:54 +01:00
parent 89670074b1
commit 88fe861508
10 changed files with 979 additions and 2 deletions

View File

@@ -0,0 +1,85 @@
<lexicon lang="en-us">
<entry>
<base>FORM_TITLE</base>
<trans>Create a starter website</trans>
</entry>
<entry>
<base>SUCCESS</base>
<trans>Successfully created starter web site (wrote file index.htm).
You can visit your new website at the address below:</trans>
</entry>
<entry>
<base>DESCRIPTION</base>
<trans><![CDATA[
<p>
To create a simple web page for your company, fill
in the fields below and click on <b>Create</b>.
</p>
<p>
You can leave any field blank if you do not need it.
</p>
<p>
The text that you enter below will be line wrapped
for a nicer appearance in your web page. Leave a blank line
whenever you want to start a new paragraph. If you need
to force a line break without starting a new paragraph (for
example after each line of a mailing address), then type
the four-character sequence
<blockquote>&lt;BR&gt;</blockquote>
where you would like each line break.
</p>
<p>
<em>Do not use this option</em>
if you have already customized your web site, since it will
overwrite the "index.htm" file in your web site directory.
</p>
]]>
</trans>
</entry>
<entry>
<base>LABEL_COMPANYNAME</base>
<trans>Company name</trans>
</entry>
<entry>
<base>DESC_HEADER1</base>
<trans>
First header, typically used for short phrases such
as "Leader in the field of textile manufacturing"
</trans>
</entry>
<entry>
<base>DESC_TEXT1</base>
<trans>
Text following first header, typically used for a
paragraph of marketing information.
</trans>
</entry>
<entry>
<base>DESC_HEADER2</base>
<trans>
Second header, typically used for short phrases such
as "For more information" or "To order our products":
</trans>
</entry>
<entry>
<base>DESC_TEXT2</base>
<trans>
Text following second header, typically used for contact
or ordering information:
</trans>
</entry>
<entry>
<base>DESC_SUBMIT</base>
<trans><![CDATA[
<p>When you create this web page, the file
"index.htm" will be overwritten
in your web site directory.</p>
<p>Do you wish to proceed?</p>
]]></trans>
</entry>
<entry>
<base>Create starter web site</base>
<trans>Create starter web site</trans>
</entry>
</lexicon>

View File

@@ -0,0 +1,134 @@
#!/usr/bin/perl -wT
#----------------------------------------------------------------------
# heading : Miscellaneous
# description : Create starter web site
# navigation : 7000 7100
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# copyright (C) 2002 Mitel Networks Corporation
#
# 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; either version 2 of the License, or
# (at your option) any later version.
#
# 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
#
# Technical support for this program is available from Mitel Networks
# Please visit our web site www.mitel.com/sme/ for details.
#----------------------------------------------------------------------
use strict;
use esmith::FormMagick::Panel::starterwebsite;
my $f = esmith::FormMagick::Panel::starterwebsite->new();
$f->display();
=head1 TESTING
=begin testing
use esmith::FormMagick::Tester;
use esmith::TestUtils;
use esmith::ConfigDB;
my $panel = 'starterwebsite';
my $panel_path = "/etc/e-smith/web/functions/".$panel;
my $ua = esmith::FormMagick::Tester->new();
is (mode($panel_path), '4750', "Check permissions on script");
my @stat = stat($panel_path);
is (getpwuid($stat[4]), 'root', "File is owned by root");
is (getgrgid($stat[5]), 'admin', "File is owned by group admin");
ok ($ua->get_panel($panel), "ABOUT TO RUN L10N TESTS");
is ($ua->{status}, 200, "200 OK");
like($ua->{content}, qr/FORM_TITLE/, "Saw untranslated form title");
ok ($ua->set_language("en-us"), "Set language to U.S. English");
ok ($ua->get_panel($panel), "Get panel");
is ($ua->{status}, 200, "200 OK");
like($ua->{content}, qr/Create a starter website/, "Saw translated form title");
# Testing changes
ok ($ua->get_panel($panel), "Testing panel retrieval");
can_ok($ua, "field");
ok ($ua->{form}->find_input('text1'), 'Finding the text1 field');
ok ($ua->{form}->find_input('text2'), 'Finding the text2 field');
ok ($ua->{form}->find_input('companyName'), 'Finding the companyName field');
ok ($ua->{form}->find_input('header1'), 'Finding the header1 field');
ok ($ua->{form}->find_input('header2'), 'Finding the header2 field');
$ua->field('text1' => 'We build widgets. You know?');
$ua->field('text2' => 'We can build widgets for you');
$ua->field('companyName' => 'FooCorp');
$ua->field('header1' => 'Widget Makers');
$ua->field('header2' => 'Contact us');
ok ($ua->click("Save"), "Click Save");
is ($ua->{status}, 200, "200 OK");
like($ua->{content}, qr/Successfully created/, "Saw validation messages");
ok(open(FILE,"</home/e-smith/files/primary/html/index.htm"), 'Opened the new sample webpage');
my @content = <FILE>;
my $content = join('',@content);
close(FILE);
like ($content, qr'We build widgets. You know?', 'Validated value for text1');
like ($content, qr'We can build widgets for you', 'Validated value for text2');
like ($content, qr'FooCorp', 'Validated value for companyName');
like ($content, qr'Widget Makers', 'Validated value for header1');
like ($content, qr'Contact us', 'Validated value for header2');
# Gotta open this later, so we don't cache stale data
=end testing
=cut
__DATA__
<form title="FORM_TITLE" header="/etc/e-smith/web/common/head.tmpl"
footer="/etc/e-smith/web/common/foot.tmpl">
<page name="First" post-event="change_settings()" pre-event="turn_off_buttons()">
<description>DESCRIPTION</description>
<field type="text" id="companyName" size="48">
<label>LABEL_COMPANYNAME</label>
</field>
<field type="text" id="header1" size="48">
<description>DESC_HEADER1</description>
</field>
<field type="textarea" id="text1" size="16">
<description>DESC_TEXT1</description>
</field>
<field type="text" id="header2" size="48">
<description>DESC_HEADER2</description>
</field>
<field type="textarea" id="text2" size="16">
<description>DESC_TEXT2</description>
</field>
<subroutine src="print_message('DESC_SUBMIT')"/>
<subroutine src="print_button('CREATE')"/>
</page>
<page name="Done" pre-event="turn_off_buttons">
<description>SUCCESS</description>
<subroutine src="print_homepage_url()" />
</page>
</form>

View File

@@ -0,0 +1,238 @@
#!/usr/bin/perl -w
#----------------------------------------------------------------------
# $Id: starterwebsite.pm,v 1.2 2002/04/04 05:16:28 gordonr Exp $
#----------------------------------------------------------------------
# copyright (C) 2002 Mitel Networks Corporation
#
# 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; either version 2 of the License, or
# (at your option) any later version.
#
# 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
#
# Technical support for this program is available from Mitel Networks
# Please visit our web site www.e-smith.com for details.
#----------------------------------------------------------------------
package esmith::FormMagick::Panel::starterwebsite;
use strict;
use esmith::FormMagick;
use esmith::util;
use esmith::ConfigDB;
use File::Basename;
use Exporter;
use Carp;
our @ISA = qw(esmith::FormMagick Exporter);
our @EXPORT = qw( change_settings print_homepage_url print_message);
our $VERSION = sprintf '%d.%03d', q$Revision: 1.2 $ =~ /: (\d+).(\d+)/;
our $db = esmith::ConfigDB->open;
# {{{ header
=pod
=head1 NAME
esmith::FormMagick::Panels::starterwebsite - useful panel functions
=head1 SYNOPSIS
use esmith::FormMagick::Panels::starterwebsite;
my $panel = esmith::FormMagick::Panel::starterwebsite->new();
$panel->display();
=head1 DESCRIPTION
=cut
# {{{ new
=head2 new();
Exactly as for esmith::FormMagick
=begin testing
use_ok('esmith::FormMagick::Panel::starterwebsite');
use vars qw($panel);
ok($panel = esmith::FormMagick::Panel::starterwebsite->new(), "Create panel object");
isa_ok($panel, 'esmith::FormMagick::Panel::starterwebsite');
=end testing
=cut
sub new {
shift;
my $self = esmith::FormMagick->new();
$self->{calling_package} = (caller)[0];
bless $self;
return $self;
}
# }}}
=head2 print_message
Prints an arbitrary message in the context of the form
=cut
sub print_message {
my ($fm, $word) = @_;
$word = $fm->localise($word);
print qq(<tr><td colspan=2>$word</td></tr>);
return undef;
}
=head2 print_homepage_url
returns the url for this e-smith server\'s default website as an href
=cut
sub print_homepage_url {
my $fm = shift;
my $url = "http://www.". $db->get('DomainName')->value();
my $href = "<a href=\"$url\">$url</a>";
return (print_message($fm, $href))
}
=head1 ACTION
=head2 change_settings
Build the new default web page
=cut
sub change_settings {
my ($fm) = @_;
my $q = $fm->{'cgi'};
my $primary_location = '/home/e-smith/files/ibays/Primary/html/index.htm';
if (! open (WR, ">$primary_location"))
{
$fm->{cgi}->param( -name => 'initial_message', -value => 'OPEN_INDEX_FAIL');
$fm->{cgi}->param( -name => 'wherenext', -value => 'Done' );
# Tell the user something bad has happened
return;
}
my $companyName = $q->param ('companyName');
my $header1 = $q->param ('header1');
my $text1 = $q->param ('text1');
my $header2 = $q->param ('header2');
my $text2 = $q->param ('text2');
# make sure company name is not blank
if ($companyName =~ /^\s*$/s) {
$companyName = "&nbsp;"
}
print WR "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n";
print WR "\n";
print WR "<HTML>\n";
print WR "\n";
print WR "<HEAD>\n";
print WR "<TITLE>$companyName</TITLE>\n";
print WR "<META HTTP-EQUIV=\"Expires\" CONTENT=\"0\">\n";
print WR "</HEAD>\n";
print WR "\n";
print WR "<BODY BGCOLOR=\"#FFFFFF\" MARGINWIDTH=\"0\" MARGINHEIGHT=\"0\" LEFTMARGIN=\"0\" TOPMARGIN=\"0\">\n";
print WR "\n";
print WR "<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"10\" WIDTH=\"100%\">\n";
print WR "\n";
print WR "<TR>\n";
print WR "<TD BGCOLOR=\"#290099\" COLSPAN=\"2\"><FONT COLOR=\"#F7E0B5\"><H1>$companyName</H1></FONT></TD>\n";
print WR "</TR>\n";
print WR "\n";
print WR "<TR>\n";
print WR "<TD BGCOLOR=\"#F7E0B5\" WIDTH=\"15%\">&nbsp;</TD>\n";
print WR "<TD BGCOLOR=\"#FFFFFF\" WIDTH=\"85%\">\n";
print WR "\n";
if ($header1 !~ /^\s*$/s)
{
print WR "<FONT COLOR=\"#000000\"><H2>$header1</H2></FONT>\n";
print WR "\n";
}
if ($text1 !~ /^\s*$/s)
{
$text1 =~ s/^\s*(.*?)\s*$/$1/s;
$text1 =~ s/\r\s*\r/<P>/sg;
print WR "<FONT COLOR=\"#290099\">\n";
print WR "<P>\n";
print WR "$text1\n";
print WR "</P>\n";
print WR "</FONT>\n";
print WR "\n";
}
if ($header2 !~ /^\s*$/s)
{
print WR "<FONT COLOR=\"#000000\"><H2>$header2</H2></FONT>\n";
print WR "\n";
}
if ($text2 !~ /^\s*$/s)
{
$text2 =~ s/^\s*(.*?)\s*$/$1/s;
$text2 =~ s/\r\s*\r/<P>/sg;
print WR "<FONT COLOR=\"#290099\">\n";
print WR "<P>\n";
print WR "$text2\n";
print WR "</P>\n";
print WR "</FONT>\n";
print WR "\n";
}
print WR "\n";
print WR "</TD>\n";
print WR "</TR>\n";
print WR "</TABLE>\n";
print WR "</BODY>\n";
print WR "</HTML>\n";
close WR;
esmith::util::chownFile("admin", "shared",
$primary_location);
chmod 0640, $primary_location;
#$fm->{cgi}->param( -name => 'initial_message', -value => 'CHANGE_SUCCEEDED');
$fm->{cgi}->param( -name => 'wherenext', -value => 'Done' );
}
1;