github.com/ferranbt/nomad@v0.9.3-0.20190607002617-85c449b7667c/ui/app/templates/jobs/index.hbs (about) 1 <section class="section"> 2 {{#if isForbidden}} 3 {{partial "partials/forbidden-message"}} 4 {{else}} 5 <div class="toolbar"> 6 <div class="toolbar-item"> 7 {{#if visibleJobs.length}} 8 {{search-box 9 data-test-jobs-search 10 searchTerm=(mut searchTerm) 11 onChange=(action resetPagination) 12 placeholder="Search jobs..."}} 13 {{/if}} 14 </div> 15 {{#if (media "isMobile")}} 16 <div class="toolbar-item is-right-aligned"> 17 {{#link-to "jobs.run" data-test-run-job class="button is-primary"}}Run Job{{/link-to}} 18 </div> 19 {{/if}} 20 <div class="toolbar-item is-right-aligned is-mobile-full-width"> 21 <div class="button-bar"> 22 {{multi-select-dropdown 23 data-test-type-facet 24 label="Type" 25 options=optionsType 26 selection=selectionType 27 onSelect=(action setFacetQueryParam "qpType")}} 28 {{multi-select-dropdown 29 data-test-status-facet 30 label="Status" 31 options=optionsStatus 32 selection=selectionStatus 33 onSelect=(action setFacetQueryParam "qpStatus")}} 34 {{multi-select-dropdown 35 data-test-datacenter-facet 36 label="Datacenter" 37 options=optionsDatacenter 38 selection=selectionDatacenter 39 onSelect=(action setFacetQueryParam "qpDatacenter")}} 40 {{multi-select-dropdown 41 data-test-prefix-facet 42 label="Prefix" 43 options=optionsPrefix 44 selection=selectionPrefix 45 onSelect=(action setFacetQueryParam "qpPrefix")}} 46 </div> 47 </div> 48 {{#if (not (media "isMobile"))}} 49 <div class="toolbar-item is-right-aligned"> 50 {{#link-to "jobs.run" data-test-run-job class="button is-primary"}}Run Job{{/link-to}} 51 </div> 52 {{/if}} 53 </div> 54 {{#list-pagination 55 source=sortedJobs 56 size=pageSize 57 page=currentPage as |p|}} 58 {{#list-table 59 source=p.list 60 sortProperty=sortProperty 61 sortDescending=sortDescending 62 class="with-foot" as |t|}} 63 {{#t.head}} 64 {{#t.sort-by prop="name"}}Name{{/t.sort-by}} 65 {{#t.sort-by prop="status"}}Status{{/t.sort-by}} 66 {{#t.sort-by prop="type"}}Type{{/t.sort-by}} 67 {{#t.sort-by prop="priority"}}Priority{{/t.sort-by}} 68 <th>Groups</th> 69 <th class="is-3">Summary</th> 70 {{/t.head}} 71 {{#t.body key="model.id" as |row|}} 72 {{job-row data-test-job-row=row.model.plainId job=row.model onClick=(action "gotoJob" row.model)}} 73 {{/t.body}} 74 {{/list-table}} 75 <div class="table-foot"> 76 <nav class="pagination"> 77 <div class="pagination-numbers"> 78 {{p.startsAt}}–{{p.endsAt}} of {{sortedJobs.length}} 79 {{#if searchTerm}} 80 <em>({{dec sortedJobs.length filteredJobs.length}} hidden by search term)</em> 81 {{/if}} 82 </div> 83 {{#p.prev class="pagination-previous"}} < {{/p.prev}} 84 {{#p.next class="pagination-next"}} > {{/p.next}} 85 <ul class="pagination-list"></ul> 86 </nav> 87 </div> 88 {{else}} 89 <div data-test-empty-jobs-list class="empty-message"> 90 {{#if (eq visibleJobs.length 0)}} 91 <h3 data-test-empty-jobs-list-headline class="empty-message-headline">No Jobs</h3> 92 <p class="empty-message-body"> 93 The cluster is currently empty. 94 </p> 95 {{else if (eq filteredJobs.length 0)}} 96 <h3 data-test-empty-jobs-list-headline class="empty-message-headline">No Matches</h3> 97 <p class="empty-message-body"> 98 No jobs match your current filter selection. 99 </p> 100 {{else if searchTerm}} 101 <h3 data-test-empty-jobs-list-headline class="empty-message-headline">No Matches</h3> 102 <p class="empty-message-body">No jobs match the term <strong>{{searchTerm}}</strong></p> 103 {{/if}} 104 </div> 105 {{/list-pagination}} 106 {{/if}} 107 </section>