2015-10-28 11:10:36 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# DOC HTML ELEMENT MODULE
|
|
|
|
####################################################################################################################################
|
|
|
|
package BackRestDoc::Html::DocHtmlElement;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
|
|
|
|
use Exporter qw(import);
|
|
|
|
our @EXPORT = qw();
|
|
|
|
use Scalar::Util qw(blessed);
|
|
|
|
|
2020-03-10 21:12:44 +02:00
|
|
|
use BackRestDoc::Common::Log;
|
2015-10-28 11:10:36 +02:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Html Element Types
|
|
|
|
####################################################################################################################################
|
|
|
|
use constant HTML_A => 'a';
|
|
|
|
push @EXPORT, qw(HTML_A);
|
|
|
|
use constant HTML_BODY => 'body';
|
|
|
|
push @EXPORT, qw(HTML_BODY);
|
2015-11-22 23:44:01 +02:00
|
|
|
use constant HTML_PRE => 'pre';
|
|
|
|
push @EXPORT, qw(HTML_PRE);
|
2015-10-28 11:10:36 +02:00
|
|
|
use constant HTML_DIV => 'div';
|
|
|
|
push @EXPORT, qw(HTML_DIV);
|
|
|
|
use constant HTML_SPAN => 'span';
|
|
|
|
push @EXPORT, qw(HTML_SPAN);
|
2018-11-11 23:34:15 +02:00
|
|
|
use constant HTML_TABLE => 'table';
|
|
|
|
push @EXPORT, qw(HTML_TABLE);
|
2018-12-20 23:20:54 +02:00
|
|
|
use constant HTML_TABLE_CAPTION => 'caption';
|
|
|
|
push @EXPORT, qw(HTML_TABLE_CAPTION);
|
2018-11-11 23:34:15 +02:00
|
|
|
use constant HTML_TD => 'td';
|
|
|
|
push @EXPORT, qw(HTML_TD);
|
|
|
|
use constant HTML_TH => 'th';
|
|
|
|
push @EXPORT, qw(HTML_TH);
|
|
|
|
use constant HTML_TR => 'tr';
|
|
|
|
push @EXPORT, qw(HTML_TR);
|
2016-05-26 15:34:03 +02:00
|
|
|
use constant HTML_UL => 'ul';
|
|
|
|
push @EXPORT, qw(HTML_UL);
|
|
|
|
use constant HTML_LI => 'li';
|
|
|
|
push @EXPORT, qw(HTML_LI);
|
2015-10-28 11:10:36 +02:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# CONSTRUCTOR
|
|
|
|
####################################################################################################################################
|
|
|
|
sub new
|
|
|
|
{
|
|
|
|
my $class = shift; # Class name
|
|
|
|
|
|
|
|
# Create the class hash
|
|
|
|
my $self = {};
|
|
|
|
bless $self, $class;
|
|
|
|
|
|
|
|
$self->{strClass} = $class;
|
|
|
|
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
(
|
|
|
|
my $strOperation,
|
|
|
|
$self->{strType},
|
|
|
|
$self->{strClass},
|
|
|
|
my $oParam
|
|
|
|
) =
|
|
|
|
logDebugParam
|
|
|
|
(
|
2016-05-26 15:09:42 +02:00
|
|
|
__PACKAGE__ . '->new', \@_,
|
2015-10-28 11:10:36 +02:00
|
|
|
{name => 'strType', trace => true},
|
|
|
|
{name => 'strClass', required => false, trace => true},
|
|
|
|
{name => 'oParam', required => false, trace => true}
|
|
|
|
);
|
|
|
|
|
|
|
|
$self->{oyElement} = [];
|
|
|
|
$self->{strContent} = $$oParam{strContent};
|
|
|
|
$self->{strId} = $$oParam{strId};
|
|
|
|
$self->{strRef} = $$oParam{strRef};
|
2018-11-11 23:34:15 +02:00
|
|
|
$self->{strExtra} = $$oParam{strExtra};
|
2015-11-22 23:44:01 +02:00
|
|
|
$self->{bPre} = $$oParam{bPre};
|
2015-10-28 11:10:36 +02:00
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'self', value => $self}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# addNew
|
|
|
|
#
|
|
|
|
# Create a new element and add it.
|
|
|
|
####################################################################################################################################
|
|
|
|
sub addNew
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
my (
|
|
|
|
$strOperation,
|
|
|
|
$strType,
|
|
|
|
$strClass,
|
|
|
|
$oParam
|
|
|
|
) =
|
|
|
|
logDebugParam
|
|
|
|
(
|
2016-05-26 15:09:42 +02:00
|
|
|
__PACKAGE__ . '->addNew', \@_,
|
2015-10-28 11:10:36 +02:00
|
|
|
{name => 'strType', trace => true},
|
|
|
|
{name => 'strClass', required => false, trace => true},
|
|
|
|
{name => 'oParam', required => false, trace => true}
|
|
|
|
);
|
|
|
|
|
|
|
|
my $oElement = new BackRestDoc::Html::DocHtmlElement($strType, $strClass, $oParam);
|
|
|
|
|
|
|
|
$self->add($oElement);
|
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'oElement', value => $oElement, trace => true}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# add
|
|
|
|
#
|
|
|
|
# Add an element.
|
|
|
|
####################################################################################################################################
|
|
|
|
sub add
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
my (
|
|
|
|
$strOperation,
|
|
|
|
$oElement
|
|
|
|
) =
|
|
|
|
logDebugParam
|
|
|
|
(
|
2016-05-26 15:09:42 +02:00
|
|
|
__PACKAGE__ . '->add', \@_,
|
2015-10-28 11:10:36 +02:00
|
|
|
{name => 'oElement', trace => true}
|
|
|
|
);
|
|
|
|
|
|
|
|
if (!(blessed($oElement) && $oElement->isa('BackRestDoc::Html::DocHtmlElement')))
|
|
|
|
{
|
|
|
|
confess &log(ASSERT, 'oElement must be a valid element object');
|
|
|
|
}
|
|
|
|
|
|
|
|
push(@{$self->{oyElement}}, $oElement);
|
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'oElement', value => $oElement, trace => true}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|