Report templates ported to ReactJS and Knex.

Does not run yet because reports have dependencies on the old report templates.
This commit is contained in:
Tomas Bures 2017-07-09 15:41:53 +02:00
parent be7da791db
commit d4cea46f07
29 changed files with 807 additions and 688 deletions

View file

@ -1,24 +0,0 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/reports">{{#translate}}Reports{{/translate}}</a></li>
<li><a href="/report-templates">{{#translate}}Templates{{/translate}}</a></li>
<li class="active">{{#translate}}Create Template{{/translate}}</li>
</ol>
<h2>{{#translate}}Create Report Template{{/translate}}</h2>
<hr>
<form class="form-horizontal" method="post" action="/report-templates/create">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
{{> report_template_fields }}
<hr />
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-plus"></i> {{#translate}}Create Template{{/translate}}</button>
</div>
</div>
</form>

View file

@ -1,36 +0,0 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/reports">{{#translate}}Reports{{/translate}}</a></li>
<li><a href="/report-templates">{{#translate}}Templates{{/translate}}</a></li>
<li class="active">{{#translate}}Edit Template{{/translate}}</li>
</ol>
<h2>{{#translate}}Edit Report Template{{/translate}}</h2>
<hr>
<form method="post" class="delete-form" id="report-templates-delete" action="/report-templates/delete">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{id}}" />
</form>
<form class="form-horizontal" method="post" action="/report-templates/edit">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{id}}" />
{{> report_template_fields }}
<hr />
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" form="report-templates-delete" class="btn btn-danger"><i class="glyphicon glyphicon-remove"></i> {{#translate}}Delete Template{{/translate}}</button>
</div>
<button type="submit" name="submit" value="update-and-stay" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> {{#translate}}Update and Stay{{/translate}}</button>
<button type="submit" name="submit" value="update-and-leave" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> {{#translate}}Update and Leave{{/translate}}</button>
</div>
</div>
</form>

View file

@ -1,59 +0,0 @@
<div class="form-group">
<label for="name" class="col-sm-2 control-label">{{#translate}}Name{{/translate}}</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="name" value="{{name}}" placeholder="{{#translate}}Template Name{{/translate}}" autofocus required>
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2 control-label">{{#translate}}Description{{/translate}}</label>
<div class="col-sm-10">
<textarea class="form-control" rows="3" name="description" id="description">{{description}}</textarea>
<span class="help-block">{{#translate}}HTML is allowed{{/translate}}</span>
</div>
</div>
<div class="form-group">
<label for="mimeType" class="col-sm-2 control-label">{{#translate}}Type{{/translate}}</label>
<div class="col-sm-10">
<select name="mimeType" class="form-control">
{{#each mimeTypes}}
<option value="{{key}}" {{#if selected}} selected {{/if}}>{{value}}</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{{#translate}}User selectable fields{{/translate}}</label>
<div class="col-sm-offset-2 col-sm-10">
<div class="help-block" style="margin-top: -8px;">
<small>JSON specification of user selectable fields.</small>
</div>
<div class="code-editor-json" style="height: 250px; border: 1px solid #ccc;"></div>
<input type="hidden" name="userFields" value="{{userFields}}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{{#translate}}Data processing code{{/translate}}</label>
<div class="col-sm-offset-2 col-sm-10">
<div class="help-block" style="margin-top: -8px;">
<small>Write the body of the JavaScript function with signature <code>function(inputs, callback)</code> that returns an object to be rendered by the Handlebars template below.</small>
</div>
<div class="code-editor-javascript" style="height: 700px; border: 1px solid #ccc;"></div>
<input type="hidden" name="js" value="{{js}}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{{#translate}}Rendering template{{/translate}}</label>
<div class="col-sm-offset-2 col-sm-10">
<div class="help-block" style="margin-top: -8px;">
<small>Use HTML with Handlebars syntax. See documentation <a href="http://handlebarsjs.com/">here</a>.</small>
</div>
<div class="code-editor-handlebars" style="height: 700px; border: 1px solid #ccc;"></div>
<input type="hidden" name="hbs" value="{{hbs}}">
</div>
</div>

View file

@ -1,45 +0,0 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/reports">{{#translate}}Reports{{/translate}}</a></li>
<li class="active">{{#translate}}Templates{{/translate}}</li>
</ol>
<div class="pull-right">
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{#translate}}Create Template{{/translate}} <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="/report-templates/create">{{#translate}}Blank{{/translate}}</a></li>
<li><a href="/report-templates/create?type=subscribers-all">{{#translate}}All Subscribers{{/translate}}</a></li>
<li><a href="/report-templates/create?type=subscribers-grouped">{{#translate}}Grouped Subscribers{{/translate}}</a></li>
<li><a href="/report-templates/create?type=export-list-csv">{{#translate}}Export List as CSV{{/translate}}</a></li>
</ul>
</div>
</div>
<h2>{{#translate}}Report Templates{{/translate}}</h2>
<hr>
<div class="table-responsive">
<table data-topic-url="/report-templates" data-sort-column="2" data-sort-order="desc" class="table table-bordered table-hover data-table-ajax display nowrap" width="100%" data-row-sort="0,1,0,1,0">
<thead>
<th class="col-md-1">
#
</th>
<th>
{{#translate}}Name{{/translate}}
</th>
<th>
{{#translate}}Description{{/translate}}
</th>
<th>
{{#translate}}Created{{/translate}}
</th>
<th class="col-md-1">
&nbsp;
</th>
</thead>
</table>
</div>