mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 06:35:56 +08:00
Add report templates loader and move out templates from the main source tree [SCI-5664]
This commit is contained in:
parent
57c90a60c4
commit
96f85aeb3c
|
@ -1,321 +0,0 @@
|
|||
|
||||
<div class="report-template-index">
|
||||
<style type="text/css" scoped>
|
||||
.report-template-index .template-table {
|
||||
height: 297mm;
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.report-template-index .template-checkbox {
|
||||
border: 1px solid black;
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
margin-bottom: -3px;
|
||||
margin-right: .25em;
|
||||
position: relative;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.report-template-index .template-checkbox.selected {
|
||||
background: black;
|
||||
}
|
||||
|
||||
.report-template-index .template-table > tbody > tr > td {
|
||||
border: 2px solid black;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.report-template-index .cell-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.report-template-index .template-table > tbody > tr > td.title {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.report-template-index tr.fixed-height {
|
||||
height: 5em;
|
||||
}
|
||||
|
||||
.report-template-index .seals-table {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.report-template-index .seals-table td {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.report-template-index .net-contents-table {
|
||||
font-size: 12px;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.report-template-index .template-table > tbody > tr > td.pagination-cell {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<table class="template-table">
|
||||
<tr class="fixed-height">
|
||||
<td colspan=4 class="title">
|
||||
ANALYST WORKSHEET
|
||||
</td>
|
||||
<td colspan=7>
|
||||
<div class="cell-label">
|
||||
1. PRODUCT
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<% report_experiment_descriptions(report).each do |description| %>
|
||||
<%= description %>
|
||||
<br>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=5>
|
||||
<div class="cell-label">
|
||||
2. SAMPLE NUMBER
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= assigned_to_report_repository_items(report, 'Samples').pluck(:name).join(', ') %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=4>
|
||||
<table class="seals-table">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="cell-label">
|
||||
3. SEALS
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<%= render Reports::MultiCheckboxInputComponent.new(
|
||||
report: report,
|
||||
name: :seals,
|
||||
label: 'Seals',
|
||||
items: {
|
||||
intact: 'INTACT',
|
||||
broken: 'BROKEN',
|
||||
none: 'NONE'
|
||||
}
|
||||
) %>
|
||||
</tr>
|
||||
<tr></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td colspan=3>
|
||||
<div class="cell-label">
|
||||
4. DATE RECEIVED
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :date_recieved, label: 'Date recieved', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=4>
|
||||
<div class="cell-label">
|
||||
5.RECEIVED FROM
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :recieved_from, label: 'Received from', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=5>
|
||||
<div class="cell-label">
|
||||
6. DISTRICT OR LABORATORY
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :district_laboratory, label: 'District or laboratory', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=16>
|
||||
<div class="cell-label">
|
||||
7. DESCRIPTION OF SAMPLE
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :sample_description, label: 'Descripton of sample', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=2>
|
||||
<div class="cell-label">
|
||||
8. NET CONTENTS
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=7>
|
||||
<table class="net-contents-table">
|
||||
<tr>
|
||||
<td>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :not_applicable, label: 'Not applicable', editing: false) %>
|
||||
NOT APPLICABLE
|
||||
</td>
|
||||
<td>
|
||||
DECLARE/UNIT <b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :declare_unit, label: 'Declare unit', editing: false) %>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :not_determined, label: 'Not determined', editing: false) %>
|
||||
NOT DETERMINED
|
||||
</td>
|
||||
<td>AMOUNT FOUND
|
||||
<b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :amount_found, label: 'Amount found', editing: false) %>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :units_examined, label: 'Units examined', editing: false) %>
|
||||
</b> UNITS EXAMINED
|
||||
</td>
|
||||
<td>% of DECLARED
|
||||
<b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :percent_of_declared, label: 'Percent of declared', editing: false) %>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td colspan=2>
|
||||
<div class="cell-label">
|
||||
9. LABELING
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=5>
|
||||
<table class="net-contents-table">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :originals_submitted, label: 'Original(s) submitted', editing: false) %>
|
||||
</b> ORIGINAL(S) SUBMITTED
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :copies_submitted, label: 'Copies submitted', editing: false) %>
|
||||
</b> COPIES SUBMITTED
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :labeling_none, label: 'None', editing: false) %>
|
||||
NONE
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=16>
|
||||
<div class="cell-label">
|
||||
10. SUMMARY OF ANALYSIS
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :analysis_summary, label: 'Summary of analysis', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=16>
|
||||
<div class="cell-label">
|
||||
11. RESERVE SAMPLE
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :reserve_sample, label: 'Reserve sample', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=8 rowspan=2>
|
||||
<div class="cell-label">
|
||||
12. a. ANALYST SIGNATURE (Broke Seal <%= render Reports::CheckboxInputComponent.new(report: report, name: :analyst_signature_broke, label: 'Broke seal', editing: false) %>)
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_a, label: 'Analyst signature A', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=3 rowspan=2>
|
||||
<div class="cell-label">
|
||||
13. WORKSHEET CHECK
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=5>
|
||||
<div class="cell-label">
|
||||
a. BY
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :worksheet_check_by, label: 'Worksheet check by', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=5>
|
||||
<div class="cell-label">
|
||||
b. DATE
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :worksheet_check_date, label: 'Worksheet check date', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=8>
|
||||
<div class="cell-label">
|
||||
b.
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_b, label: 'Analyst signature B', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=8>
|
||||
<div class="cell-label">
|
||||
13. DATE REPORTED
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :date_reported, label: 'Date reported', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="fixed-height">
|
||||
<td colspan=8>
|
||||
<div class="cell-label">
|
||||
c.
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_c, label: 'Analyst signature C', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=8 class="pagination-cell">
|
||||
PAGE 1 OF <%= total_pages + 1 %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -1,43 +0,0 @@
|
|||
<% content_for :cover do %>
|
||||
<%= render Reports::MultiCheckboxInputComponent.new(
|
||||
report: report,
|
||||
name: :seals,
|
||||
label: 'Seals',
|
||||
items: {
|
||||
intact: 'Intact',
|
||||
broken: 'Broken',
|
||||
none: 'None'
|
||||
}
|
||||
) %>
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :date_recieved, label: 'Date recieved') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :recieved_from, label: 'Received from') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :district_laboratory, label: 'District or laboratory') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :sample_description, label: 'Descripton of sample') %>
|
||||
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :units_examined, label: 'Units examined') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :declare_unit, label: 'Declare unit') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :amount_found, label: 'Amount found') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :percent_of_declared, label: 'Percent of declared') %>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :not_applicable, label: 'Not applicable') %>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :not_determined, label: 'Not determined') %>
|
||||
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :originals_submitted, label: 'Original(s) submitted') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :copies_submitted, label: 'Copies submitted') %>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :labeling_none, label: 'None') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :analysis_summary, label: 'Summary of analysis') %>
|
||||
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :reserve_sample, label: 'Reserve sample') %>
|
||||
<%= render Reports::CheckboxInputComponent.new(report: report, name: :analyst_signature_broke, label: 'Broke seal') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_a, label: 'Analyst signature A') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_b, label: 'Analyst signature B') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :analyst_signature_c, label: 'Analyst signature C') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :worksheet_check_by, label: 'Worksheet check by') %>
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :worksheet_check_date, label: 'Worksheet check date') %>
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :date_reported, label: 'Date reported') %>
|
||||
<% end %>
|
||||
|
||||
<% content_for :footer do %>
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :analyst, label: 'Analyst') %>
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :analyst_number, label: 'Employee number', displayed_field: :external_id) %>
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :checked_by, label: 'Checked by') %>
|
||||
<% end %>
|
|
@ -1,73 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
border: 2px solid black;
|
||||
font-size: 12px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td.pagination {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.info-row {
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
.info-row td {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=3>
|
||||
<div class="cell-label">
|
||||
<b>ANALYST(S)</b>
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :analyst, label: 'Analyst', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=2>
|
||||
<div class="cell-label">
|
||||
<b>ANALYST EMPLOYEE NO.</b>
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :analyst_number, label: 'Employee number', editing: false, displayed_field: :external_id) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=3>
|
||||
<div class="cell-label">
|
||||
<b>CHECKED BY:</b>
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::ProjectMembersInputComponent.new(report: report, name: :checked_by, label: 'Checked by', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan=2 class="pagination" data-page-offset="1">
|
||||
PAGE <span class="page"></span> OF <span class="topage" ></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="info-row">
|
||||
<td colspan="10">Single-Sided</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,52 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
border: 2px solid black;
|
||||
font-size: 12px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td.title {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="title " class="topage">
|
||||
GENERAL CONTINUATION SHEET
|
||||
</td>
|
||||
<td>
|
||||
<div class="cell-label">
|
||||
<b>PRODUCT</b>
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :product, label: 'Product', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="cell-label">
|
||||
<b>SAMPLE NUMBER</b>
|
||||
</div>
|
||||
<div class="cell-value">
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :sample_number, label: 'Sample number', editing: false) %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,118 +0,0 @@
|
|||
<div class="report-template-index">
|
||||
<style type="text/css" scoped>
|
||||
.report-template-index .template-table {
|
||||
height: 297mm;
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.executive-summary {
|
||||
height: 170mm;
|
||||
}
|
||||
|
||||
.table-of-contents {
|
||||
height: 250mm;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
padding: .5em 0;
|
||||
}
|
||||
|
||||
.divider {
|
||||
height: 4px;
|
||||
background: black;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<table class="template-table">
|
||||
<tr>
|
||||
<td colspan=2 class="logo"></td>
|
||||
<td colspan=2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4 class="align-center"><b>Technical Report</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4><div class="divider"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Date:</b></td>
|
||||
<td colspan=3><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>From:</b> </td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_from, label: 'From', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Through:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_through, label: 'Through', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>To:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_to, label: 'To', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Subject:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_subject, label: 'Subject', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4><div class="divider"></div></td>
|
||||
</tr>
|
||||
<tr class="executive-summary">
|
||||
<td colspan=4 style="vertical-align: top;">
|
||||
<b>EXECUTIVE SUMMARY</b>
|
||||
<ul>
|
||||
<li><b>Report file name: </b><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></li>
|
||||
<li><b>Personnel: </b><%= render Reports::TextInputComponent.new(report: report, name: :report_from, label: 'From', editing: false) %></li>
|
||||
<li><b>Associated Protocol: </b><%= render Reports::TextInputComponent.new(report: report, name: :associated_protocol, label: 'Associated Protocol', editing: false) %></li>
|
||||
<li><b>Background: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :report_background, label: 'Summary background', editing: false) %></li>
|
||||
<li><b>Outcome/Impact: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Outcome/Impact', editing: false) %></li>
|
||||
<li><b>Conclusion: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Conclusion', editing: false) %></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 30px">
|
||||
<td colspan=1><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></td>
|
||||
<td colspan=2 class="align-center"><b>Page 1 of <%= total_pages + 2 %></b></td>
|
||||
<td colspan=1><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="page-break-before: always"></div>
|
||||
<table class="template-table">
|
||||
<tr>
|
||||
<td colspan=2 class="logo"></td>
|
||||
<td colspan=2></td>
|
||||
</tr>
|
||||
<tr class="table-of-contents">
|
||||
<td colspan=4 style="vertical-align: top;">
|
||||
<ul>
|
||||
<li><b>Objective </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :objective, label: 'Objective', editing: false) %></li>
|
||||
<li><b>Background </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :background, label: 'Background ', editing: false) %></li>
|
||||
<li><b>Materials and Methods </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :materials_and_methods, label: 'Materials and Methods', editing: false) %></li>
|
||||
<li><b>Results and Discussion </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :results, label: 'Results and Discussion', editing: false) %></li>
|
||||
<li><b>References </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :references, label: 'References', editing: false) %></li>
|
||||
<li><b>Records Management Project Name: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :management_project_name, label: 'Records Management Project Name', editing: false) %></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=1><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></td>
|
||||
<td colspan=2 class="align-center"><b>Page 2 of <%= total_pages + 2 %></b></td>
|
||||
<td colspan=1><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -1,18 +0,0 @@
|
|||
<% content_for :cover do %>
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_from, label: 'From') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_through, label: 'Through') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_to, label: 'To') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_subject, label: 'Subject') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :associated_protocol, label: 'Associated Protocol') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :report_background, label: 'Summary background') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Outcome/Impact') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Conclusion') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :objective, label: 'Objective') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :background, label: 'Background ') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :materials_and_methods, label: 'Materials and Methods') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :results, label: 'Results and Discussion') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :references, label: 'References') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :management_project_name, label: 'Records Management Project Name') %>
|
||||
<% end %>
|
|
@ -1,36 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
font-size: 16px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table td.pagination {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=1><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></td>
|
||||
<td colspan=2 class="pagination" data-page-offset="2">Page <span class="page"></span> of <span class="topage"></span></td>
|
||||
<td colspan=1><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,26 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
font-size: 16px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=2 class="logo"></td>
|
||||
<td colspan=2></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,90 +0,0 @@
|
|||
<div class="report-template-index">
|
||||
<style type="text/css" scoped>
|
||||
.report-template-index .template-table {
|
||||
height: 297mm;
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.executive-summary {
|
||||
height: 170mm;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
padding: .5em 0;
|
||||
}
|
||||
|
||||
.divider {
|
||||
height: 4px;
|
||||
background: black;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<table class="template-table">
|
||||
<tr>
|
||||
<td colspan=2 class="logo"></td>
|
||||
<td colspan=2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4 class="align-center"><b>OTR-Short Form Report</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4><div class="divider"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Date:</b></td>
|
||||
<td colspan=3><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>From:</b> </td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_from, label: 'From', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Through:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_through, label: 'Through', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>To:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_to, label: 'To', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Subject:</b></td>
|
||||
<td colspan=3><%= render Reports::TextInputComponent.new(report: report, name: :report_subject, label: 'Subject', editing: false) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=4><div class="divider"></div></td>
|
||||
</tr>
|
||||
<tr class="executive-summary">
|
||||
<td colspan=4 style="vertical-align: top;">
|
||||
<ul>
|
||||
<li><b>Report file name: </b><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></li>
|
||||
<li><b>Associated Protocol: </b><%= render Reports::TextInputComponent.new(report: report, name: :associated_protocol, label: 'Associated Protocol', editing: false) %></li>
|
||||
<li><b>Background: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :report_background, label: 'Background', editing: false) %></li>
|
||||
<li><b>Conclusions: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Conclusions', editing: false) %></li>
|
||||
<li><b>Results and Discussion </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :results, label: 'Results and Discussion', editing: false) %></li>
|
||||
<li><b>References (if needed) </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :references, label: 'References (if needed)', editing: false) %></li>
|
||||
<li><b>Records Management Project Name: </b><%= render Reports::LargeTextInputComponent.new(report: report, name: :management_project_name, label: 'Records Management Project Name', editing: false) %></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 30px">
|
||||
<td colspan=1><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></td>
|
||||
<td colspan=2 class="align-center">Page 1 of <%= total_pages + 1 %></td>
|
||||
<td colspan=1><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -1,14 +0,0 @@
|
|||
<% content_for :cover do %>
|
||||
<%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_from, label: 'From') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_through, label: 'Through') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_to, label: 'To') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_subject, label: 'Subject') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :associated_protocol, label: 'Associated Protocol') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :report_background, label: 'Background') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :outcome_impact, label: 'Conclusions') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :results, label: 'Results and Discussion') %>
|
||||
<%= render Reports::LargeTextInputComponent.new(report: report, name: :references, label: 'References (if needed)') %>
|
||||
<%= render Reports::TextInputComponent.new(report: report, name: :management_project_name, label: 'Records Management Project Name') %>
|
||||
<% end %>
|
|
@ -1,36 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
font-size: 16px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table td.pagination {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=1><%= render Reports::TextInputComponent.new(report: report, name: :report_file_name, label: 'Report file name', editing: false) %></td>
|
||||
<td colspan=2 class="pagination" data-page-offset="1">Page <span class="page"></span> of <span class="topage"></span></td>
|
||||
<td colspan=1><%= render Reports::DateInputComponent.new(report: report, name: :report_date, label: 'Date', editing: false) %></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,26 +0,0 @@
|
|||
<style>
|
||||
body {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
height: 80px;
|
||||
table-layout: fixed;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
table td {
|
||||
font-size: 16px;
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=2 class="logo"></td>
|
||||
<td colspan=2></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -420,10 +420,5 @@ class Extends
|
|||
{ name: 'Completed', color: '#00b900', consequences: ['MyModuleStatusConsequences::Completion'] }
|
||||
]
|
||||
|
||||
REPORT_TEMPLATES = {
|
||||
scinote_template: 'scinote_template',
|
||||
template_1: 'template_1',
|
||||
template_2: 'template_2',
|
||||
template_3: 'template_3'
|
||||
}
|
||||
REPORT_TEMPLATES = {}
|
||||
end
|
||||
|
|
15
config/initializers/report_templates.rb
Normal file
15
config/initializers/report_templates.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
Dir.chdir(Rails.root.join('app/views/reports/templates')) do
|
||||
templates = Dir.glob('*').select { |entry| File.directory?(entry) }
|
||||
templates.each do |template|
|
||||
next if Extends::REPORT_TEMPLATES[template.to_sym].present?
|
||||
|
||||
Extends::REPORT_TEMPLATES[template.to_sym] =
|
||||
if File.file?("#{template}/name.txt")
|
||||
File.open("#{template}/name.txt").read.strip
|
||||
else
|
||||
template
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue