| 1 | <table> |
| 2 | <thead> |
| 3 | <tr> |
| 4 | <th>{{:: ts('Entity') }}</th> |
| 5 | <th>{{:: ts('Action(s)') }}</th> |
| 6 | <th>{{:: ts('Filter(s)') }}</th> |
| 7 | <th>{{:: ts('Field(s)') }}</th> |
| 8 | </tr> |
| 9 | </thead> |
| 10 | <tbody> |
| 11 | <tr ng-repeat="api in perm.api" |
| 12 | ng-class-even="'even-row even'" |
| 13 | ng-class-odd="'odd-row odd'"> |
| 14 | <td> |
| 15 | <em ng-show="api.entity == '*'">{{:: ts('Any') }}</em> |
| 16 | <code ng-hide="api.entity == '*'">{{api.entity}}</code> |
| 17 | </td> |
| 18 | <td> |
| 19 | <div ng-switch="isString(api.actions)"> |
| 20 | <span ng-switch-when="true"> |
| 21 | <em ng-show="api.actions == '*'">{{:: ts('Any') }}</em> |
| 22 | <code ng-hide="api.actions == '*'">{{api.actions}}</code> |
| 23 | </span> |
| 24 | <span ng-switch-default=""> |
| 25 | <span ng-repeat="action in api.actions"><code>{{action}}</code><span ng-show="!$last">, </span></span> |
| 26 | </span> |
| 27 | </div> |
| 28 | </td> |
| 29 | <td> |
| 30 | <em ng-show="!hasRequiredFilters(api)">{{:: ts('Any') }}</em> |
| 31 | <div ng-repeat="(field,value) in api.required"><code>{{field}}</code> = "<code>{{value}}</code>"<span ng-show="!$last">, </span></div> |
| 32 | </td> |
| 33 | <td> |
| 34 | <em ng-show="api.fields == '*'">{{:: ts('Any') }}</em> |
| 35 | <span ng-hide="api.fields == '*'" ng-repeat="field in api.fields"><code>{{field}}</code><span ng-show="!$last">, </span></span> |
| 36 | </td> |
| 37 | </tr> |
| 38 | </tbody> |
| 39 | </table> |
| 40 | <div class="crmCxn-footer"> |
| 41 | <em ng-bind-html="ts('For in-depth details about entities and actions, see the <a href=\'%1\' target=\'%2\'>API Explorer</a>.', {1: apiExplorerUrl, 2: '_blank'})"></em> |
| 42 | </div> |