Added initial support for trigger based automation

This commit is contained in:
Andris Reinman 2016-06-03 13:15:33 +03:00
parent cc1c70d57f
commit b16209f23e
36 changed files with 2025 additions and 263 deletions

View file

@ -0,0 +1,33 @@
<ol class="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/triggers/">Automation Triggers</a></li>
<li class="active">Create Trigger</li>
</ol>
<h2>Create Trigger <small>Select a list for the trigger</small></h2>
<hr>
<form class="form-horizontal" method="post" action="/triggers/create-select">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<div class="form-group">
<label for="group" class="col-sm-2 control-label">List</label>
<div class="col-sm-10">
<select class="form-control" name="list" required>
<option value=""> Select </option>
{{#each listItems}}
<option value="{{id}}">
{{name}} <span class="text-muted"> &mdash; {{subscribers}} subscribers</span>
</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-triangle-right"></i> Next</button>
</div>
</div>
</form>

162
views/triggers/create.hbs Normal file
View file

@ -0,0 +1,162 @@
<ol class="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/triggers/">Automation Triggers</a></li>
<li class="active">Create Trigger</li>
</ol>
<h2>Create Trigger</h2>
<hr>
<form class="form-horizontal" method="post" action="/triggers/create">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="list" value="{{list.id}}">
<div class="form-group">
<label for="trigger-name" class="col-sm-2 control-label">Trigger name</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="trigger-name" value="{{name}}" placeholder="Name for this trigger, eg. &quot;Inactive subscribers&quot;" required autofocus>
</div>
</div>
<div class="form-group">
<label for="trigger-description" class="col-sm-2 control-label">Description</label>
<div class="col-sm-10">
<textarea class="form-control" id="trigger-description" name="description" rows="3" placeholder="Optional comments about this trigger">{{description}}</textarea>
<span class="help-block">HTML is allowed</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">List</label>
<div class="col-sm-10">
<p class="form-control-static"><a href="/lists/view/{{list.id}}">{{list.name}}</a> <span class="text-muted"> {{list.subscribers}} subscribers</span></p>
</div>
</div>
<fieldset>
<legend>
Trigger rule
</legend>
<div class="form-group">
<label for="trigger-days" class="col-sm-2 control-label">Trigger fires</label>
<div class="col-sm-1">
<input type="number" class="form-control" name="days" id="trigger-days" value="{{days}}" placeholder="1" required>
</div>
<div class="col-sm-1">
<p class="form-control-static">days after:</p>
</div>
</div>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="rule" value="subscription" {{#if isSubscription}} checked {{/if}}> Subscription
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="column" class="col-sm-2 control-label">Event</label>
<div class="col-sm-10">
<select name="column" class="form-control">
<option value="">
Select
</option>
{{#each columns}}
<option value="{{column}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="rule" value="campaign" {{#if isCampaign}} checked {{/if}}> Campaign
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="source-campaign" class="col-sm-2 control-label">Campaign</label>
<div class="col-sm-10">
<select name="source-campaign" class="form-control">
<option value="">
Select
</option>
{{#each sourceCampaigns}}
<option value="{{id}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group">
<label for="campaign-option" class="col-sm-2 control-label">Event</label>
<div class="col-sm-10">
<select name="campaign-option" id="campaign-option" class="form-control">
<option value="">
Select
</option>
{{#each campaignOptions}}
<option value="{{option}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
</fieldset>
<fieldset>
<legend>
Trigger action
</legend>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="action" value="send" {{#if isSend}} checked {{/if}}> Send campaign
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="dest-campaign" class="col-sm-2 control-label">Campaign</label>
<div class="col-sm-10">
<select name="dest-campaign" class="form-control" required>
<option value="">
Select
</option>
{{#each destCampaigns}}
<option value="{{id}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
</fieldset>
<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> Create Trigger</button>
</div>
</div>
</form>

177
views/triggers/edit.hbs Normal file
View file

@ -0,0 +1,177 @@
<ol class="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/triggers/">Automation Triggers</a></li>
<li class="active">Edit Trigger</li>
</ol>
<h2>Edit Trigger <a class="btn btn-default btn-xs" href="/triggers/" role="button"><span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> Back to triggers</a></h2>
<hr>
<form method="post" class="delete-form" id="triggers-delete" action="/triggers/delete">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{id}}" />
</form>
<form class="form-horizontal" method="post" action="/triggers/edit">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{id}}" />
<div class="form-group">
<label for="trigger-name" class="col-sm-2 control-label">Trigger name</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="trigger-name" value="{{name}}" placeholder="Name for this trigger, eg. &quot;Inactive subscribers&quot;" required autofocus>
</div>
</div>
<div class="form-group">
<label for="trigger-description" class="col-sm-2 control-label">Description</label>
<div class="col-sm-10">
<textarea class="form-control" id="trigger-description" name="description" rows="3" placeholder="Optional comments about this trigger">{{description}}</textarea>
<span class="help-block">HTML is allowed</span>
</div>
</div>
<div class="col-sm-offset-2">
<div class="checkbox">
<label>
<input type="checkbox" name="enabled" value="1" {{#if enabled}} checked {{/if}}> Trigger is enabled
</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">List</label>
<div class="col-sm-10">
<p class="form-control-static"><a href="/lists/view/{{list.id}}">{{list.name}}</a> <span class="text-muted"> {{list.subscribers}} subscribers</span></p>
</div>
</div>
<fieldset>
<legend>
Trigger rule
</legend>
<div class="form-group">
<label for="trigger-days" class="col-sm-2 control-label">Trigger fires</label>
<div class="col-sm-1">
<input type="number" class="form-control" name="days" id="trigger-days" value="{{days}}" placeholder="1" required>
</div>
<div class="col-sm-1">
<p class="form-control-static">days after:</p>
</div>
</div>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="rule" value="subscription" {{#if isSubscription}} checked {{/if}}> Subscription
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="column" class="col-sm-2 control-label">Event</label>
<div class="col-sm-10">
<select name="column" class="form-control">
<option value="">
Select
</option>
{{#each columns}}
<option value="{{column}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="rule" value="campaign" {{#if isCampaign}} checked {{/if}}> Campaign
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="source-campaign" class="col-sm-2 control-label">Campaign</label>
<div class="col-sm-10">
<select name="source-campaign" class="form-control">
<option value="">
Select
</option>
{{#each sourceCampaigns}}
<option value="{{id}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group">
<label for="campaign-option" class="col-sm-2 control-label">Event</label>
<div class="col-sm-10">
<select name="campaign-option" id="campaign-option" class="form-control">
<option value="">
Select
</option>
{{#each campaignOptions}}
<option value="{{option}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
</fieldset>
<fieldset>
<legend>
Trigger action
</legend>
<div class="col-sm-offset-2 panel panel-default">
<div class="panel-heading">
<div class="radio">
<label>
<input type="radio" name="action" value="send" {{#if isSend}} checked {{/if}}> Send campaign
</label>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label for="dest-campaign" class="col-sm-2 control-label">Campaign</label>
<div class="col-sm-10">
<select name="dest-campaign" class="form-control" required>
<option value="">
Select
</option>
{{#each destCampaigns}}
<option value="{{id}}" {{#if selected}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
</fieldset>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" form="triggers-delete" class="btn btn-danger"><i class="glyphicon glyphicon-remove"></i> Delete Trigger</button>
</div>
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> Update</button>
</div>
</div>
</form>

View file

@ -0,0 +1,83 @@
<ol class="breadcrumb">
<li><a href="/">Home</a></li>
<li class="active">Automation Triggers</li>
</ol>
<div class="pull-right">
<a class="btn btn-primary" href="/triggers/create-select" role="button"><i class="glyphicon glyphicon-plus"></i> Create Trigger</a>
</div>
<h2>Automation Triggers</h2>
<hr>
<div class="table-responsive">
<table class="table table-bordered table-hover data-table display nowrap" width="100%" data-row-sort="0,1,1,0,1,0,1,0">
<thead>
<th class="col-md-1">
#
</th>
<th>
Name
</th>
<th>
Status
</th>
<th>
Description
</th>
<th>
List
</th>
<th>
Trigger
</th>
<th>
Target Campaign
</th>
<th class="col-md-1">
&nbsp;
</th>
</thead>
{{#if rows}}
<tbody>
{{#each rows}}
<tr>
<th scope="row">
{{index}}
</th>
<td>
<span class="glyphicon glyphicon-console" aria-hidden="true"></span> {{name}}
</td>
<td>
{{#if enabled}}
<span class="label label-success">Enabled</span>
{{else}}
<span class="label label-default">Disabled</span>
{{/if}}
</td>
<td class="text-muted">
{{description}}
</td>
<td class="text-info">
<a href="/lists/view/{{list}}">{{listName}}</a>
</td>
<td class="text-info">
{{{formatted}}}
</td>
<td class="text-info">
<a href="/campaigns/view/{{destCampaign}}">{{destCampaignName}}</a>
</td>
<td>
<span class="glyphicon glyphicon-wrench" aria-hidden="true"></span>
<a href="/triggers/edit/{{id}}">
Edit
</a>
</td>
</tr>
{{/each}}
</tbody>
{{/if}}
</table>
</div>