Add in chameleon templates for AdminLTE mojo templates
This commit is contained in:
298
Templates/AdminLTE_html_controls.html.ep.xml
Normal file
298
Templates/AdminLTE_html_controls.html.ep.xml
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
<root>
|
||||||
|
<!-- Todo - add password visibility to password type - DONE
|
||||||
|
This is a version for the AdminLTE theme.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Select><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% my @${Name}_options = ${structure:OptionsInPerl};
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%= select_field '${Name}' => @${Name}_options, class => 'input', id => '${Name}_select'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></Select>
|
||||||
|
|
||||||
|
<MultiSelect><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% my @${Name}_options = ${structure:OptionsInPerl};
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%= select_field '${Name}' => @${Name}_options, class => 'input', id => '${Name}_select', multiple => 'multiple'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></MultiSelect>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Textarea><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%= text_area '${Name}', cols=>${cols | 40}, rows=>${rows | 10}, Readonly=>'${Readonly | false}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></Textarea>
|
||||||
|
|
||||||
|
<Date><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
%=date_field '${Name}' =>$$${Name}, pattern=>${regexp | .*}, title =>'Pattern regex mismatch'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></Date>
|
||||||
|
|
||||||
|
<Time><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
%=time_field '${Name}' =>$$${Name}, pattern=>${regexp | .*}, title =>'Pattern regex mismatch'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></Time>
|
||||||
|
|
||||||
|
|
||||||
|
<Text><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%= text_field '${Name}', size => '${size | 50}', class => 'textinput ${Name}' , pattern=>'${regexp | ".*"}' , placeholder=>'${placeholder | Name}', title =>'Pattern regex mismatch', id => '${Name}_text'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></Text>
|
||||||
|
|
||||||
|
<ReadonlyText><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%= text_field '${Name}', size => '${size | 50}', class => 'textinput ${Name}' , pattern=>'${regexp | ".*"}' , placeholder=>'${placeholder | Name}', Readonly=>'true' , title =>'Pattern regex mismatch'
|
||||||
|
</div>
|
||||||
|
</div><br>]]></ReadonlyText>
|
||||||
|
|
||||||
|
<SubHeader><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<h2 class='subh${type_serial}'><%=l('${Value}')%></h2></div><br>]]>
|
||||||
|
</SubHeader>
|
||||||
|
|
||||||
|
<Header><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<h1 class='head${type_serial}'><%=l('${Value}')%></h1></div><br>]]>
|
||||||
|
</Header>
|
||||||
|
|
||||||
|
<Paragraph><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<p class='paragraph para${type_serial}'>
|
||||||
|
%=l('${Value}')
|
||||||
|
|
||||||
|
</div><br>]]></Paragraph>
|
||||||
|
|
||||||
|
<Submit><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
%= submit_button l('${Value}'), class => 'action subm${type_serial}'
|
||||||
|
</div></div><br>]]>
|
||||||
|
</Submit>
|
||||||
|
|
||||||
|
<Search><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${prefix}_${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
%=Search field
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=search_field '${Name}' , class => 'searc${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Search>
|
||||||
|
|
||||||
|
<Url><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=URL_field '${Name}' , class => 'url${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Url>
|
||||||
|
|
||||||
|
<Tel><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=tel_field '${Name}', class => 'tel${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Tel>
|
||||||
|
|
||||||
|
<Email><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=email_field '${Name}', class => 'emai${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Email>
|
||||||
|
|
||||||
|
<Password><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=password_field '${Name}', class => 'pass${type_serial} sme-password', autocomplete => 'off'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Password>
|
||||||
|
|
||||||
|
<Timedate><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=timedate_field '${Name}', class => 'time${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Timedate>
|
||||||
|
|
||||||
|
<Week><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=week_field '${Name}', class => 'week${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Week>
|
||||||
|
|
||||||
|
<Month><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=month_field '${Name}', class => 'mont${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Month>
|
||||||
|
|
||||||
|
<Range><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=range_field '${Name}', class => 'rang${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Range>
|
||||||
|
|
||||||
|
<Radio><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=radio_field '${Name}', class => 'radi${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Radio>
|
||||||
|
|
||||||
|
<Number><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=number_field '${Name}', class => 'numb${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Number>
|
||||||
|
|
||||||
|
<File><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=file_field '${Name}', class => 'file${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</File>
|
||||||
|
|
||||||
|
<Color><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=color_field '${Name}', class => 'colo${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Color>
|
||||||
|
|
||||||
|
<Checkbox><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-md-1">
|
||||||
|
%=l('${Label}')
|
||||||
|
</div><div class="col-auto">
|
||||||
|
% param '${Name}' => $$${prefix}_data->{${Name}} unless param '${Name}';
|
||||||
|
%=checkbox_field '${Name}', class => 'chec${type_serial}'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Checkbox>
|
||||||
|
|
||||||
|
<Table><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<br /><table class="sme-border TableSort sme-table ${classname} ">
|
||||||
|
<thead class='${classname}'>
|
||||||
|
<tr table-head-row><tal:block tal:repeat="ColHead TopHeadings">
|
||||||
|
<th class='sme-border table-head-col table-head-col-${ColHead} '><%=l('${ColHead}')%></th></tal:block>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class='${classname}'>
|
||||||
|
% my $control_data = $c->stash('${TableControl}');
|
||||||
|
% foreach my $row (@$control_data) {
|
||||||
|
<tr class='table-row'><tal:block tal:repeat="ColContent Columns">
|
||||||
|
<td class='sme-border table-col table-col-${ColContent}'><%=$c->render_to_string(inline=>$row->{'${ColContent}'})%></td></tal:block>
|
||||||
|
</tr>
|
||||||
|
%}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div><br>]]>
|
||||||
|
</Table>
|
||||||
|
|
||||||
|
<Preformatted><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<pre class='preformatted pref${type_serial}'>
|
||||||
|
${Value}
|
||||||
|
</pre>
|
||||||
|
</div><br>]]>
|
||||||
|
</Preformatted>
|
||||||
|
|
||||||
|
<Link><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<a href='${structure:href}' class='link link${type_serial}'>
|
||||||
|
%= l('${title}')
|
||||||
|
</a>
|
||||||
|
%#= link_to l('${title}'), '${structure:href}' , class=>'link link${type_serial}'
|
||||||
|
</div><br>]]>
|
||||||
|
</Link>
|
||||||
|
|
||||||
|
<ButtonLink><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<button type='button' href='${structure:href}' class='buttonlink buttonlink${type_serial}'>
|
||||||
|
%= l('${title}')
|
||||||
|
</button>
|
||||||
|
%#= button_to l('${title}'), '${structure:href}' , class=>'buttonlink buttonlink${type_serial}'
|
||||||
|
</div><br>]]>
|
||||||
|
</ButtonLink>
|
||||||
|
|
||||||
|
<Back><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
%= submit_button l('${Value}'), class => 'action back', onclick =>'history.back()'
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Back>
|
||||||
|
|
||||||
|
<Group><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<div ${Value}>
|
||||||
|
</div><br>]]>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Endgroup><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
</div>
|
||||||
|
</div><br>]]>
|
||||||
|
</Endgroup>
|
||||||
|
|
||||||
|
<object><![CDATA[<div class="row g-3 align-items-center">
|
||||||
|
<object data="<%='${url}' %>" title="<%= $c->stash('title') %>" type="text/html" ><%= $c->stash('title') %> not found</object>, id => '${Name}_object
|
||||||
|
</div><br>]]>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
|
||||||
|
</root>
|
53
Templates/AdminLTE_layout.html.ep.tem
Normal file
53
Templates/AdminLTE_layout.html.ep.tem
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
%#
|
||||||
|
%# Generated by ${version}
|
||||||
|
%#
|
||||||
|
%# AdminLTE specific layout
|
||||||
|
%#
|
||||||
|
% layout 'default', title => "Sme server 2 - ${MenuDescription}", share_dir => './';
|
||||||
|
%# css specific to this panel:
|
||||||
|
% content_for 'module' => begin
|
||||||
|
%= stylesheet '/css/${lcPackageName}.css'
|
||||||
|
%= javascript '/js/${lcPackageName}.js'
|
||||||
|
<div id="module" class="card-body module ${PackageName}-panel">
|
||||||
|
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
%= dumper $c->current_route
|
||||||
|
%= dumper $$${prefix}_data->{trt}
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
|
||||||
|
<h1><%=$title%></h1>
|
||||||
|
|
||||||
|
% if ( stash('modul')) {
|
||||||
|
%= $c->render_to_string(inline => stash('modul') );
|
||||||
|
% }
|
||||||
|
|
||||||
|
%if ($c->stash('first')) {
|
||||||
|
<br><div>
|
||||||
|
%=$c->render_to_string(inline =>$c->l($c->stash('first')))
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%} elsif ($c->stash('success')) {
|
||||||
|
<div class='text-success'>
|
||||||
|
%= $c->l($c->stash('success'));
|
||||||
|
</div>
|
||||||
|
|
||||||
|
%} elsif ($c->stash('error')) {
|
||||||
|
<div class='text-danger'>
|
||||||
|
%= $c->l($c->stash('error'));
|
||||||
|
</div>
|
||||||
|
%}
|
||||||
|
|
||||||
|
%#Routing to partials according to trt parameter.
|
||||||
|
%#This ought to be cascading if/then/elsif, but is easier to just stack the if/then's rather like a case statement'
|
||||||
|
<tal:block tal:repeat="condition conditions">
|
||||||
|
<br>
|
||||||
|
% if ($$${prefix}_data->{trt} eq "${condition}") {
|
||||||
|
%= include 'partials/_${prefix}_${condition}'
|
||||||
|
%}
|
||||||
|
</tal:block>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
%end
|
29
Templates/AdminLTE_partial.html.ep.tem
Normal file
29
Templates/AdminLTE_partial.html.ep.tem
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
%#
|
||||||
|
%# Generated by ${version}
|
||||||
|
%#
|
||||||
|
%# Specific for AdminLTE theme
|
||||||
|
%#
|
||||||
|
<div id="${PackageName}-${route}" class="partial ${PackageName}-${route}">
|
||||||
|
%# <script>
|
||||||
|
%# window.onload = function() {
|
||||||
|
%# SelectInput();
|
||||||
|
%# };
|
||||||
|
%# </script>
|
||||||
|
% if (config->{debug} == 1) {
|
||||||
|
<pre>
|
||||||
|
%= dumper $$${prefix}_data
|
||||||
|
</pre>
|
||||||
|
% }
|
||||||
|
% my $btn = l('SAVE');
|
||||||
|
% $c->param(Selected => undef); #This may need deleting for a params panel - only needed for a table
|
||||||
|
|
||||||
|
%= form_for "${lcPackageName}u" => (method => 'POST') => begin
|
||||||
|
% param 'trt' => $$${prefix}_data->{trt} unless param 'trt';
|
||||||
|
%= hidden_field 'trt' => $$${prefix}_data->{trt}
|
||||||
|
%# Inputs etc in here.
|
||||||
|
%# ....
|
||||||
|
%# Probably finally by a submit.
|
||||||
|
%= submit_button $btn, class => 'action'
|
||||||
|
%end
|
||||||
|
<br>
|
||||||
|
</div>
|
Reference in New Issue
Block a user