1 <div crm-ui-debug=
"appMetas"></div>
2 <div crm-ui-debug=
"cxns"></div>
3 <div crm-ui-debug=
"alerts"></div>
6 The merits of this layout:
7 * On a fresh install, the available connections show up first.
8 * Once you've made a connection, the extant connections bubble up.
9 * Extant connections can be portrayed as enabled or disabled.
13 <p>{{:: ts('Connections provide a simplified way to link your CiviCRM installation to an external service.') }}
</p>
16 <div ng-show=
"cxns.length > 0">
17 <span crm-ui-order=
"{var: 'cxnOrder', defaults: ['-created_date']}"></span>
18 <h3>{{:: ts('Existing Connections') }}
</h3>
19 <table class=
"display">
22 <th>{{:: ts('Title') }}
</th> <!-- <a crm-ui-order-by="[cxnOrder, 'app_meta.appId']"> -->
23 <th>{{:: ts('Description') }}
</th> <!-- <a crm-ui-order-by="[cxnOrder, 'desc']"> -->
24 <th>{{:: ts('Status') }}
</th>
29 <tr ng-repeat=
"cxn in cxns | orderBy:cxnOrder.get()" ng-class-even=
"'even-row even'" ng-class-odd=
"'odd-row odd'">
31 <a class=
"action-item"
32 crm-confirm='{width:
"65%", resizable: true, title:ts(
"%1: About", {
1: cxn.app_meta.title}), templateUrl:
"~/crmCxn/AboutCtrl.html", export: {appMeta: cxn.app_meta}}'
33 >{{cxn.app_meta.title}}
</a>
35 <td><div ng-bind-html=
"cxn.app_meta.desc"></div></td>
36 <td>{{cxn.is_active==
"1" ? ts('Enabled') : ts('Disabled')}}
</td>
39 <a class=
"action-item crm-hover-button" ng-click=
"openLink(cxn.app_meta, 'settings', {title: ts('%1: Settings (External)', {1: cxn.app_meta.title})})" ng-show=
"cxn.app_meta.links.settings">{{:: ts('Settings') }}
</a>
40 <span class=
"btn-slide crm-hover-button">{{:: ts('more') }}
41 <ul class=
"panel" style=
"display: none;">
42 <li ng-show=
"cxn.app_meta.links.logs">
43 <a class=
"action-item crm-hover-button" ng-click=
"openLink(cxn.app_meta, 'logs', {title: ts('%1: Logs (External)', {1: cxn.app_meta.title})})">
47 <li ng-show=
"cxn.app_meta.links.docs">
48 <a class=
"action-item crm-hover-button" ng-click=
"openLink(cxn.app_meta, 'docs', {title: ts('%1: Documentation (External)', {1: cxn.app_meta.title})})">
52 <li ng-show=
"cxn.app_meta.links.support">
53 <a class=
"action-item crm-hover-button" ng-click=
"openLink(cxn.app_meta, 'support', {title: ts('%1: Support (External)', {1: cxn.app_meta.title})})">
58 <a class=
"action-item crm-hover-button" ng-click=
"toggleCxn(cxn)">{{ cxn.is_active==
"1" ? ts('Disable') : ts('Enable')}}
</a>
61 <a class=
"action-item crm-hover-button"
62 crm-confirm='{width:
"65%", resizable: true, title:ts(
"%1: Reconnect", {
1: cxn.app_meta.title}), templateUrl:
"~/crmCxn/ConfirmReconnectCtrl.html", export: {cxn: cxn, appMeta: findAppByAppId(cxn.app_guid)}}'
63 on-yes=
"reregister(cxn.app_meta)"
64 >{{:: ts('Reconnect') }}
</a>
67 <a class=
"action-item crm-hover-button"
68 crm-confirm='{width:
"65%", resizable: true, title: ts(
"%1: Disconnect", {
1: cxn.app_meta.title}), message: ts(
"Are you sure you want to disconnect \"%
1?\
". Doing so may permanently destroy data linkage.", {
1: cxn.app_meta.title})}'
69 on-yes=
"unregister(cxn.app_meta)">
70 {{:: ts('Disconnect') }}
84 <div ng-show=
"hasAvailApps()">
85 <span crm-ui-order=
"{var: 'availOrder', defaults: ['title']}"></span>
87 <div class=
"crm-content-block crm-block crm-connection-block">
88 <h3>{{:: ts('New Connections') }}
</h3>
89 <table class=
"display">
92 <th><a crm-ui-order-by=
"[availOrder, 'title']">{{:: ts('Title') }}
</a></th>
93 <th><a crm-ui-order-by=
"[availOrder, 'desc']">{{:: ts('Description') }}
</a></th>
98 <tr ng-repeat=
"appMeta in appMetas | orderBy:availOrder.get()" ng-show=
"!findCxnByAppId(appMeta.appId)" ng-class-even=
"'even-row even'" ng-class-odd=
"'odd-row odd'">
100 <a crm-confirm='{width:
"65%", resizable: true, title:ts(
"%1: About", {
1: appMeta.title}), templateUrl:
"~/crmCxn/AboutCtrl.html", export: {appMeta: appMeta}}'
101 >{{appMeta.title}}
</a>
103 <td><div ng-bind-html=
"appMeta.desc"></div></td>
105 <a class=
"action-item crm-hover-button"
106 crm-confirm='{width:
"65%", resizable: true, title:ts(
"%1: Connect", {
1: appMeta.title}), templateUrl:
"~/crmCxn/ConfirmConnectCtrl.html", export: {appMeta: appMeta}}'
107 on-yes=
"register(appMeta)"
108 >{{:: ts('Connect') }}
</a>
117 <div ng-show=
"appMetas.length === 0" class=
"messages status no-popup">
118 <i class=
"crm-i fa-info-circle" aria-hidden=
"true"></i>
119 {{:: ts('No available applications') }}