Davide Alberani
852a7a3aa2
* settings: rename service methods rename service methods remove duplicated functions custom columns for persons registered at an event custom fields in person edit form custom fields in persons list
144 lines
8.9 KiB
HTML
144 lines
8.9 KiB
HTML
<!-- show details of an Event -->
|
|
<div class="container">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-7 col-xs-7 vcenter">
|
|
<h1>{{event.title}}
|
|
<button ng-if="event._id" ng-click="$state.go('event.edit', {id: event._id})" class="btn btn-success">
|
|
<span class="glyphicon glyphicon-edit"></span>
|
|
{{'Edit' | translate}}
|
|
</button>
|
|
</h1>
|
|
</div><!--
|
|
--><div class="col-md-5 col-xs-5 vcenter">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h2><div class="label label-warning vcenter">{{'Registered:' | translate}} {{event.persons.length || 0}}</div></h2>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h2><div class="label label-info vcenter">{{'Attendees:' | translate}} {{countAttendees}}</div></h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<div class="panel panel-primary table-striped top5">
|
|
<div class="panel-heading">{{'Persons' | translate}}</div>
|
|
<div class="panel-body">
|
|
<form class="form-inline">
|
|
<div class="form-group">
|
|
<label for="query-persons">{{'Search:' | translate}}</label>
|
|
<input eventman-focus type="text" id="query-persons" class="form-control" placeholder="{{'Name or email' | translate}}" ng-model="query">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="persons-order">{{'Sort by:' | translate}}</label>
|
|
<select id="persons-order" class="form-control" ng-model="personsOrderProp">
|
|
<option value="name" ng-selected="selected">{{'Name' | translate}}</option>
|
|
<option value="-name" ng-selected="selected">{{'Name (descending)' | translate}}</option>
|
|
<option value="surname" ng-selected="selected">{{'Surname' | translate}}</option>
|
|
<option value="-surname" ng-selected="selected">{{'Surname (descending)' | translate}}</option>
|
|
</select>
|
|
</div>
|
|
</form>
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>{{'Person' | translate}}</th>
|
|
<th>{{'Attended' | translate}}</th>
|
|
<td ng-repeat="col in customFields">
|
|
<strong>{{col.label | translate}}</strong>
|
|
</td>
|
|
<th>{{'Delete' | translate}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="person in event.persons | splittedFilter:query | orderBy:personsOrderProp">
|
|
<td>
|
|
<span><strong><a ui-sref="person.info({id: person.person_id})"><span>{{person.name}}</span> <span>{{person.surname}}</span></a></strong></span><span ng-if="person.email"> <{{person.email}}></span>
|
|
<p ng-if="person.company || person.job"><i ng-if="person.job">{{person.job}}</i><span ng-if="person.company && person.job"> @ </span><i ng-if="person.company">{{person.company}}</i></p>
|
|
</td>
|
|
<td>
|
|
<button class="btn btn-link" name="switch-attended" ng-click="setPersonAttribute(person, 'attended', !person.attended)"><span class="glyphicon {{(person.attended) && 'glyphicon-ok-sign text-success' || 'glyphicon-remove-sign text-danger'}}"></span></button>
|
|
</td>
|
|
<td ng-repeat="col in customFields">
|
|
<span ng-if="col.type == 'boolean'">
|
|
<button class="btn btn-link" ng-click="setPersonAttribute(person, col.key, !person[col.key])"><span class="glyphicon {{(person[col.key]) && 'glyphicon-ok-sign text-success' || 'glyphicon-remove-sign text-danger'}}"></span></button>
|
|
</span>
|
|
<span ng-if="col.type != 'boolean'">
|
|
{{person[col.key]}}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<button ng-click="removeAttendee(person)" type="button" class="btn btn-link glyphicon glyphicon-trash"></button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
|
|
<div class="panel panel-info table-striped top5">
|
|
<div class="panel-heading">{{'Quick add' | translate}}</div>
|
|
<div class="panel-body">
|
|
<form>
|
|
<div class="input-group input-group-sm">
|
|
<span class="input-group-addon">{{'Name' | translate}}</span>
|
|
<input type="text" class="form-control" placeholder="{{'Name' | translate}}" ng-model="newPerson.name" ng-required="1">
|
|
</div>
|
|
<div class="input-group input-group-sm top5">
|
|
<span class="input-group-addon">{{'Surname' | translate}}</span>
|
|
<input type="text" class="form-control" placeholder="{{'Surname' | translate}}" ng-model="newPerson.surname">
|
|
</div>
|
|
<div class="input-group top5">
|
|
<span class="input-group-addon">{{'Email' | translate}}</span>
|
|
<input type="email" name="email" class="form-control" placeholder="{{'name.surname@example.com' | translate}}" ng-model="newPerson.email">
|
|
</div>
|
|
<div class="input-group top5">
|
|
<span class="input-group-addon">{{'Company' | translate}}</span>
|
|
<input name="company" class="form-control" placeholder="{{'Acme Corporation' | translate}}" ng-model="newPerson.company">
|
|
</div>
|
|
|
|
<button ng-disabled="!(newPerson.name && newPerson.surname)" ng-click="fastAddPerson(newPerson, true)" class="btn btn-success top5">
|
|
<span class="glyphicon glyphicon-plus-sign"></span>
|
|
{{'Add' | translate}}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-info table-striped top5">
|
|
<div class="panel-heading">{{'Unregistered persons' | translate}}</div>
|
|
<div class="panel-body" style="height:200px;overflow:auto;">
|
|
<table class="table table-striped table-condensed">
|
|
<thead>
|
|
<tr>
|
|
<th>{{'Person' | translate}}</th>
|
|
<th>{{'Add' | translate}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="person in allPersons | splittedFilter:query | personRegistered:{event: event, present: false}">
|
|
<td>
|
|
<strong><a ui-sref="person.info({id: person._id})">{{person.name}} {{person.surname}}</a></strong>
|
|
<br />
|
|
{{person.email}}
|
|
</td>
|
|
<td>
|
|
<button ng-click="fastAddPerson(person)" type="button" class="btn btn-link glyphicon glyphicon-plus-sign"></button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|