Added SQLReport download and Product AddToGroup handler
This commit is contained in:
parent
03822a9488
commit
6d56df1362
13 changed files with 946 additions and 28 deletions
|
|
@ -12,6 +12,11 @@
|
|||
- fix: Events Calendar: error in "big" template (Martin Kamerbeek / Procolix)
|
||||
- fix: PM task editor not preserving duration
|
||||
- fix: PM project completion percentage updates not working right
|
||||
- Added ability to download an SQLReport in either CSV or as a template.
|
||||
- Added ability for Products to add a user to a group when purchased.
|
||||
- Changed the ?op=editProduct form to a TabForm.
|
||||
- fixed a small error in WebGUI::Group documentation.
|
||||
- Added WebGUI::Text with some CSV functions.
|
||||
|
||||
7.0.9
|
||||
- Removed the need for DateTime::Cron::Simple, which also added the ability
|
||||
|
|
|
|||
129
docs/upgrades/templates-7.1.0/SQLReport-Download.tmpl
Normal file
129
docs/upgrades/templates-7.1.0/SQLReport-Download.tmpl
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
#SQLReportDownload0001
|
||||
#namespace:SQLReport/Download
|
||||
#title:SQLReport Download Default Template
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query2 -->
|
||||
<tmpl_if hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="20"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query2.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query2.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query2.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query3 -->
|
||||
<tmpl_if query2.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query2.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query3.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query3.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query3.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query4 -->
|
||||
<tmpl_if query3.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query3.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query4.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query4.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query4.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
<!-- Handle nested query5 -->
|
||||
<tmpl_if query4.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query4.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query5.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query5.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query5.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tr>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
161
docs/upgrades/templates-7.1.0/SQLReport.tmpl
Normal file
161
docs/upgrades/templates-7.1.0/SQLReport.tmpl
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
#PBtmpl0000000000000059
|
||||
<a name="id<tmpl_var assetId>" id="id<tmpl_var assetId>"></a>
|
||||
|
||||
<tmpl_if session.var.adminOn>
|
||||
<p><tmpl_var controls></p>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if displayTitle>
|
||||
<h2><tmpl_var title></h2>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if description>
|
||||
<tmpl_var description>
|
||||
<p />
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if canDownload>
|
||||
<a href="/<tmpl_var url>?func=download">Download this data</a>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if debugMode>
|
||||
<ul>
|
||||
<tmpl_loop debug_loop>
|
||||
<li><tmpl_var debug.output></li>
|
||||
</tmpl_loop>
|
||||
</ul>
|
||||
</tmpl_if>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query2 -->
|
||||
<tmpl_if hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="20"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query2.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query2.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query2.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query3 -->
|
||||
<tmpl_if query2.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query2.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query3.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query3.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query3.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<!-- Handle nested query4 -->
|
||||
<tmpl_if query3.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query3.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query4.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query4.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query4.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
<!-- Handle nested query5 -->
|
||||
<tmpl_if query4.hasNest>
|
||||
<tr>
|
||||
<td colspan="<tmpl_var query4.columns.count>">
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width:20px;"> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
|
||||
<tr>
|
||||
<tmpl_loop query5.columns_loop>
|
||||
<td class="tableHeader"><tmpl_var column.name></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tmpl_loop query5.rows_loop>
|
||||
<tr>
|
||||
<tmpl_loop query5.row.field_loop>
|
||||
<td class="tableData"><tmpl_var field.value></td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tr>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
|
||||
<tmpl_if pagination.pageCount.isMultiple>
|
||||
<div class="pagination">
|
||||
<tmpl_var pagination.previousPage> <tmpl_var pagination.pageList.upTo20> <tmpl_var pagination.nextPage>
|
||||
</div>
|
||||
</tmpl_if>
|
||||
|
||||
16
docs/upgrades/upgrade_7.0.9-7.1.0.pl
Normal file → Executable file
16
docs/upgrades/upgrade_7.0.9-7.1.0.pl
Normal file → Executable file
|
|
@ -20,6 +20,8 @@ my $quiet; # this line required
|
|||
my $session = start(); # this line required
|
||||
|
||||
recalculateProjectCompletion($session);
|
||||
updateSqlReportTable($session);
|
||||
updateProductsTable($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
|
@ -38,6 +40,20 @@ sub recalculateProjectCompletion {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
sub updateSqlReportTable {
|
||||
my $session = shift;
|
||||
print "\tUpdating SQLReport table structure.\n" unless ($quiet);
|
||||
$session->db->write("alter table `SQLReport` ADD COLUMN ( downloadType varchar(255), downloadFilename varchar(255), downloadTemplateId varchar(22), downloadMimeType varchar(255), downloadUserGroup varchar(22))");
|
||||
}
|
||||
|
||||
|
||||
sub updateProductsTable {
|
||||
my $session = shift;
|
||||
print "\tUpdating products table structure.\n" unless ($quiet);
|
||||
$session->db->write("alter table products add column (groupId varchar(22), groupExpiresOffset varchar(16))");
|
||||
}
|
||||
|
||||
# ---- DO NOT EDIT BELOW THIS LINE ----
|
||||
|
||||
#-------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue