1 (function(angular
, $, _
) {
5 angular
.module('crmSearchPage', CRM
.angRequires('crmSearchPage'))
7 .config(function($routeProvider
) {
8 // Load & render a SearchDisplay
9 $routeProvider
.when('/display/:savedSearchName/:displayName', {
10 controller
: 'crmSearchPageDisplay',
11 // Dynamic template generates the directive for each display type
12 template: function() {
14 '<h1 crm-page-title>{{:: $ctrl.display.label }}</h1>\n' +
15 '<div ng-switch="$ctrl.display.type" id="bootstrap-theme">\n';
16 _
.each(CRM
.crmSearchPage
.displayTypes
, function(type
) {
18 ' <div ng-switch-when="' + type
.name
+ '">\n' +
19 ' <crm-search-display-' + type
.name
+ ' api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams" settings="$ctrl.display.settings"></crm-search-display-' + type
.name
+ '>\n' +
26 // Load saved search display
27 display: function($route
, crmApi4
) {
28 var params
= $route
.current
.params
;
29 return crmApi4('SearchDisplay', 'get', {
30 where
: [['name', '=', params
.displayName
], ['saved_search.name', '=', params
.savedSearchName
]],
31 select
: ['*', 'saved_search.api_entity', 'saved_search.api_params']
38 // Controller for displaying a search
39 .controller('crmSearchPageDisplay', function($scope
, $routeParams
, $location
, display
) {
40 this.display
= display
;
41 this.apiEntity
= display
['saved_search.api_entity'];
42 this.apiParams
= display
['saved_search.api_params'];
46 })(angular
, CRM
.$, CRM
._
);