• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

RoundingWell / care-ops-frontend / 7a9e0dfe-a1cb-47f6-baca-e6adf9c664aa

06 Aug 2025 08:26PM UTC coverage: 89.726% (-10.3%) from 100.0%
7a9e0dfe-a1cb-47f6-baca-e6adf9c664aa

push

circleci

web-flow
Merge pull request #1485 from RoundingWell/pt-search-updates

Implement `match` object in patient search api response data

1589 of 1839 branches covered (86.41%)

Branch coverage included in aggregate %.

5616 of 6191 relevant lines covered (90.71%)

202.72 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.71
/src/js/views/programs/programs-all_views.js
1
import Radio from 'backbone.radio';
2
import hbs from 'handlebars-inline-precompile';
3
import { View, CollectionView } from 'marionette';
4

5
import { alphaSort } from 'js/utils/sorting';
6

7
import PreloadRegion from 'js/regions/preload_region';
8

9
import 'scss/modules/list-pages.scss';
10
import 'scss/modules/table-list.scss';
11
import './programs-list.scss';
12

13
const EmptyView = View.extend({
134✔
14
  tagName: 'tr',
15
  template: hbs`
16
    <td class="table-empty-list">
17
      <h2>{{ @intl.programs.programsAllViews.emptyView }}</h2>
18
    </td>
19
  `,
20
});
21

22
const ItemView = View.extend({
134✔
23
  className: 'table-list__item',
24
  tagName: 'tr',
25
  template: hbs`
26
    <td class="table-list__cell w-60">{{ name }}</td>
27
    <td class="table-list__cell w-20 programs-list__published{{#if published}} is-published{{/if}}">
28
      {{#if published}}{{fas "toggle-on"}}{{else}}{{far "toggle-off"}}{{/if}}
29
      {{formatMessage (intlGet "programs.programsAllViews.itemView.published") published=published}}
30
    </td>
31
    <td class="table-list__cell w-20 programs-list__updated-ts">{{formatDateTime updated_at "TIME_OR_DAY"}}</td>
32
  `,
33
  templateContext() {
34
    return {
18✔
35
      published: !!this.model.get('published_at'),
36
    };
37
  },
38
  triggers: {
39
    'click': 'click',
40
  },
41
  onClick() {
42
    Radio.trigger('event-router', 'program:details', this.model.id);
×
43
  },
44
});
45

46
const LayoutView = View.extend({
134✔
47
  className: 'flex-region',
48
  template: hbs`
49
    <div class="list-page__header">
50
      <div class="flex list-page__title">
51
        <div class="flex list-page__title-filter">
52
          <span class="list-page__title-icon">{{far "screwdriver-wrench"}}</span>{{ @intl.programs.programsAllViews.layoutView.title }}
53
        </div>
54
      </div>
55
      <button class="u-margin--b-16 button-primary js-add">{{far "circle-plus"}}<span>{{ @intl.programs.programsAllViews.addProgramBtn }}</span></button>
56
    </div>
57
    <div class="flex-region list-page__list">
58
      <table class="w-100"><tr>
59
        <td class="table-list__header w-60">{{ @intl.programs.programsAllViews.layoutView.programHeader }}</td>
60
        <td class="table-list__header w-20">{{ @intl.programs.programsAllViews.layoutView.stateHeader }}</td>
61
        <td class="table-list__header w-20">{{ @intl.programs.programsAllViews.layoutView.updatedHeader }}</td>
62
      </tr></table>
63
      <div class="flex-region" data-list-region></div>
64
    </div>
65
  `,
66
  regions: {
67
    list: {
68
      el: '[data-list-region]',
69
      regionClass: PreloadRegion,
70
    },
71
  },
72
  triggers: {
73
    'click .js-add': 'click:add',
74
  },
75
});
76

77
const ListView = CollectionView.extend({
134✔
78
  className: 'table-list',
79
  tagName: 'table',
80
  childView: ItemView,
81
  viewComparator(viewA, viewB) {
82
    return alphaSort('desc', viewA.model.get('updated_at'), viewB.model.get('updated_at'));
15✔
83
  },
84
  emptyView: EmptyView,
85
});
86

87
export {
88
  LayoutView,
89
  ListView,
90
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc