apiParams: '<'
},
require: {
- crmSearchAdmin: '^crmSearchAdmin'
+ crmSearchAdminDisplay: '^crmSearchAdminDisplay'
},
templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayTable.html',
controller: function($scope, searchMeta) {
var ts = $scope.ts = CRM.ts(),
ctrl = this;
-
- function fieldToColumn(fieldExpr) {
- var info = searchMeta.parseExpr(fieldExpr);
- return {
- expr: fieldExpr,
- label: ctrl.getFieldLabel(fieldExpr),
- dataType: (info.fn && info.fn.name === 'COUNT') ? 'Integer' : info.field.data_type
- };
- }
+ this.getFieldLabel = searchMeta.getDefaultLabel;
this.sortableOptions = {
connectWith: '.crm-search-admin-edit-columns',
ctrl.hiddenColumns.splice(index, 1);
};
- this.toggleLink = function(col) {
- col.link = col.link ? '' : (window.location.pathname + window.location.search).replace('civicrm/admin/search', 'civicrm/');
- };
-
this.$onInit = function () {
- ctrl.getFieldLabel = ctrl.crmSearchAdmin.getFieldLabel;
- if (!ctrl.display.settings.columns) {
- ctrl.display.settings.columns = _.transform(ctrl.apiParams.select, function(columns, fieldExpr) {
- columns.push(fieldToColumn(fieldExpr));
- });
- ctrl.hiddenColumns = [];
- } else {
- var activeColumns = _.collect(ctrl.display.settings.columns, 'expr');
- ctrl.hiddenColumns = _.transform(ctrl.apiParams.select, function(hiddenColumns, fieldExpr) {
- if (!_.includes(activeColumns, fieldExpr)) {
- hiddenColumns.push(fieldToColumn(fieldExpr));
- }
- });
- _.each(activeColumns, function(fieldExpr, index) {
- if (!_.includes(ctrl.apiParams.select, fieldExpr)) {
- ctrl.display.settings.columns.splice(index, 1);
- }
- });
+ if (!ctrl.display.settings) {
+ ctrl.display.settings = {
+ limit: 20,
+ pager: true
+ };
}
+ ctrl.hiddenColumns = ctrl.crmSearchAdminDisplay.initColumns();
};
}