events-list.html 7.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <!-- show the list of Events -->
  2. <div class="container">
  3. <div class="panel panel-primary table-striped top5">
  4. <div class="panel-heading">
  5. <h1>{{'Events' | translate}}
  6. <button ng-click="$state.go('event.new')" class="btn btn-success" ng-if="hasPermission('event|create')">
  7. <span class="fa fa-calendar vcenter"></span>
  8. {{'Add event' | translate}}
  9. </button>
  10. </h1>
  11. </div>
  12. <div class="panel-body">
  13. <form class="form-inline">
  14. <div class="form-group">
  15. <label for="query-events">{{'Search:' | translate}}</label>
  16. <input eventman-focus type="text" id="query-events" class="form-control" placeholder="{{'Event title' | translate}}" ng-model="query" ng-model-options="{debounce: 350}">
  17. </div>
  18. <div class="form-group">
  19. <label for="events-order">Sort by:</label>
  20. <select id="events-order" class="form-control" ng-model="eventsOrderProp">
  21. <option value="title">{{'Title' | translate}}</option>
  22. <option value="-title">{{'Title (descending)' | translate}}</option>
  23. <option value="begin_date">{{'Date' | translate}}</option>
  24. <option value="-begin_date">{{'Date (descending)' | translate}}</option>
  25. </select>
  26. </div>
  27. </form>
  28. <div ng-include=" 'modal-confirm-action.html' " class="hidden"></div>
  29. <table class="table table-striped">
  30. <thead>
  31. <tr>
  32. <th><strong>{{'Event' | translate}}</strong></th>
  33. <th ng-if="hasPermission('event|update')" class="hcenter"><strong>{{'Attendees / Registered' | translate}}</strong></th>
  34. <th class="hcenter"><strong>{{'Tickets' | translate}}</strong></th>
  35. <th ng-if="hasPermission('event|update') || hasPermission('event|delete')" class="hcenter"><strong>{{'Actions' | translate}}</strong></th>
  36. </tr>
  37. </thead>
  38. <tbody>
  39. <tr ng-repeat="event in events | splittedFilter:query | orderBy:eventsOrderProp">
  40. <td class="vtop">
  41. <span class="vtop">
  42. <h2 class="vtop">
  43. <a ui-sref="event.edit({id: event._id})" ng-if="hasPermission('event|update')">{{event.title}}</a>
  44. <a ui-sref="event.view({id: event._id})" ng-if="!hasPermission('event|update')">{{event.title}}</a>
  45. </h2>
  46. </span>
  47. <div ng-if="event.tagline"><em>{{event.tagline}}</em></div>
  48. <div ng-if="event.summary"><em>{{event.summary}}</em></div>
  49. <div ng-if="event.begin_date || event.end_date || event.where" class="top5">
  50. <div ng-if="event.where">{{event.where}}</div>
  51. <span ng-if="event.begin_date">{{'Begins:' | translate}} {{event.begin_date | date:'fullDate'}} {{event.begin_time | date:'HH:mm'}}<br/></span>
  52. <span ng-if="event.end_date">{{'Ends:' | translate}} {{event.end_date | date:'fullDate'}} {{event.end_time | date:'HH:mm'}}</span>
  53. </div>
  54. </td>
  55. <td ng-if="hasPermission('event:tickets-all|read')" class="hcenter">
  56. <p><span ng-init="attendeesNr = event.total_attendees || 0">{{attendeesNr}}</span> / {{event.tickets_sold || 0}} ({{((attendeesNr / (event.tickets_sold || 0) * 100) || 0).toFixed()}}%)</p>
  57. </td>
  58. <td class="vtop">
  59. <div ng-if="hasPermission('event:tickets-all|create')" class="top5 hcenter"><button ng-click="$state.go('event.ticket.new', {id: event._id})" ng-class="{min150: true, btn: true, 'btn-success': true, disabled: event.no_tickets_for_sale}" type="button" title="{{'Join this event' | translate}}"><span class="fa fa-user-plus vcenter"></span> {{'Join this event' | translate}}</button></div>
  60. <div ng-if="hasPermission('ticket|update')" class="top5 hcenter"><button ng-click="$state.go('event.tickets', {id: event._id})" class="min150 btn btn-primary" type="button" title="{{'Manage tickets' | translate}}"><span class="fa fa-ticket"></span> {{'Manage tickets' | translate}}</button></div>
  61. <div class="top5 hcenter" ng-if="event.number_of_tickets">{{event.number_of_tickets}} {{'tickets' | translate}}, {{event.number_of_tickets - (event.tickets_sold || 0)}} {{'still available' | translate}}</div>
  62. <div class="top5 hcenter" ng-if="event.ticket_sales_begin_date || event.ticket_sales_end_date || event.ticket_sales_begin_time || event.ticket_sales_end_time">
  63. <strong>{{'Tickets for sale:' | translate}}</strong>
  64. <span ng-if="event.ticket_sales_begin_date || event.ticket_sales_begin_time">
  65. <br />
  66. {{'from' | translate}}<span ng-if="event.ticket_sales_begin_date"> {{event.ticket_sales_begin_date | date:'fullDate'}}</span><span ng-if="event.ticket_sales_begin_time"> {{event.ticket_sales_begin_time | date:'HH:mm'}}</span>
  67. </span>
  68. <span ng-if="event.ticket_sales_end_date || event.ticket_sales_end_time">
  69. <br />
  70. {{'until' | translate}}<span ng-if="event.ticket_sales_end_date"> {{event.ticket_sales_end_date | date:'fullDate'}}</span><span ng-if="event.ticket_sales_end_time"> {{event.ticket_sales_end_time | date:'HH:mm'}}</span>
  71. </span>
  72. </div>
  73. </td>
  74. <td ng-if="hasPermission('event|update') || hasPermission('event|delete')" class="vtop">
  75. <div ng-if="hasPermission('event|update')" class="top5 hcenter"><button ng-click="$state.go('event.edit', {id: event._id})" type="button" class="min150 btn btn-warning" title="{{'Edit event' | translate}}"><span class="fa fa-cog"></span> {{'Edit event' | translate}}</button></div>
  76. <div ng-if="hasPermission('event|delete')" class="top5 hcenter bottom5" id="delete-event" uib-dropdown>
  77. <button type="button" class="min150 btn btn-danger" title="{{'Delete' | translate}}" uib-dropdown-toggle>
  78. <span class="fa fa-trash"></span> {{'Delete' | translate}} <span class="caret"></span>
  79. </button>
  80. <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="delete-event">
  81. <li role="menuitem"><a href="#" ng-click="deleteEvent(event._id)">{{'Delete event' | translate}}</a></li>
  82. <li role="menuitem"><a href="#" ng-click="deleteAllTickets(event._id)">{{'Delete all tickets in event' | translate}}</a></li>
  83. </ul>
  84. </div>
  85. </td>
  86. </tr>
  87. </tbody>
  88. </table>
  89. </div>
  90. </div>
  91. </div>