this.preview = this.stale = false;
+ this.sortableOptions = {
+ connectWith: '.crm-search-admin-edit-columns',
+ containment: '.crm-search-admin-edit-columns-wrapper'
+ };
+
+ this.removeCol = function(index) {
+ ctrl.hiddenColumns.push(ctrl.display.settings.columns[index]);
+ ctrl.display.settings.columns.splice(index, 1);
+ };
+
+ this.restoreCol = function(index) {
+ ctrl.display.settings.columns.push(ctrl.hiddenColumns[index]);
+ ctrl.hiddenColumns.splice(index, 1);
+ };
+
function fieldToColumn(fieldExpr) {
var info = searchMeta.parseExpr(fieldExpr);
return {
ctrl.display.settings.columns = _.transform(ctrl.savedSearch.api_params.select, function(columns, fieldExpr) {
columns.push(fieldToColumn(fieldExpr));
});
- return [];
+ ctrl.hiddenColumns = [];
} else {
- var activeColumns = _.collect(ctrl.display.settings.columns, 'expr'),
- hiddenColumns = _.transform(ctrl.savedSearch.api_params.select, function(hiddenColumns, fieldExpr) {
+ var activeColumns = _.collect(ctrl.display.settings.columns, 'expr');
+ ctrl.hiddenColumns = _.transform(ctrl.savedSearch.api_params.select, function(hiddenColumns, fieldExpr) {
if (!_.includes(activeColumns, fieldExpr)) {
hiddenColumns.push(fieldToColumn(fieldExpr));
}
ctrl.display.settings.columns.splice(index, 1);
}
});
- return hiddenColumns;
}
};
<div class="form-inline" ng-repeat="sort in $ctrl.display.settings.sort">
<label for="crm-search-display-sort-{{$index}}">{{ $index ? ts('Also by:') : ts('Sort by:') }}</label>
- <input id="crm-search-display-sort-{{$index}}" class="form-control huge" ng-model="sort[0]" crm-ui-select="{data: $ctrl.crmSearchAdminDisplay.fieldsForSort}" />
+ <input id="crm-search-display-sort-{{$index}}" class="form-control huge" ng-model="sort[0]" crm-ui-select="{data: $ctrl.parent.fieldsForSort}" />
<select class="form-control" ng-model="sort[1]">
<option value="ASC">{{ ts('Ascending') }}</option>
<option value="DESC">{{ ts('Descending') }}</option>
</div>
<div class="form-inline">
<label for="crm-search-display-add-sort">{{ $ctrl.display.settings.sort.length ? ts('Also by:') : ts('Sort by:') }}</label>
- <input id="crm-search-display-add-sort" class="form-control crm-action-menu fa-plus huge" ng-model="controls.sort" crm-ui-select="{placeholder: ts('Select field'), data: $ctrl.crmSearchAdminDisplay.fieldsForSort}" ng-change="$ctrl.crmSearchAdminDisplay.pushSetting('sort', [controls.sort, 'ASC']); controls.sort = '';"/>
+ <input id="crm-search-display-add-sort" class="form-control crm-action-menu fa-plus huge" ng-model="controls.sort" crm-ui-select="{placeholder: ts('Select field'), data: $ctrl.parent.fieldsForSort}" ng-change="$ctrl.parent.pushSetting('sort', [controls.sort, 'ASC']); controls.sort = '';"/>
</div>
apiParams: '<'
},
require: {
- crmSearchAdminDisplay: '^crmSearchAdminDisplay'
+ parent: '^crmSearchAdminDisplay'
},
templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayList.html',
controller: function($scope, searchMeta) {
ctrl = this;
this.getFieldLabel = searchMeta.getDefaultLabel;
- this.sortableOptions = {
- connectWith: '.crm-search-admin-edit-columns',
- containment: '.crm-search-admin-edit-columns-wrapper'
- };
-
- this.removeCol = function(index) {
- ctrl.hiddenColumns.push(ctrl.display.settings.columns[index]);
- ctrl.display.settings.columns.splice(index, 1);
- };
-
- this.restoreCol = function(index) {
- ctrl.display.settings.columns.push(ctrl.hiddenColumns[index]);
- ctrl.hiddenColumns.splice(index, 1);
- };
-
this.symbols = {
ul: [
{char: '', label: ts('Default')},
pager: true
};
}
- ctrl.hiddenColumns = ctrl.crmSearchAdminDisplay.initColumns();
+ ctrl.parent.initColumns();
};
}
</div>
</fieldset>
<div class="crm-flex-box crm-search-admin-edit-columns-wrapper">
- <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.sortableOptions">
+ <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.parent.sortableOptions">
<legend>{{:: ts('Fields') }}</legend>
<fieldset ng-repeat="col in $ctrl.display.settings.columns" class="crm-draggable">
<legend>{{ $ctrl.getFieldLabel(col.expr) }}</legend>
<div class="form-control checkbox-inline" ng-show="col.label.length" title="{{:: ts('Show label for every record even when this field is blank') }}">
<label><input type="checkbox" ng-model="col.forceLabel"> <span>{{:: ts('Always show') }}</span></label>
</div>
- <button class="btn-xs pull-right" ng-click="$ctrl.removeCol($index)" title="{{:: ts('Hide') }}">
+ <button class="btn-xs pull-right" ng-click="$ctrl.parent.removeCol($index)" title="{{:: ts('Hide') }}">
<i class="crm-i fa-ban"></i>
</button>
</div>
</div>
</fieldset>
</fieldset>
- <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.hiddenColumns" ui-sortable="$ctrl.sortableOptions">
+ <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.parent.hiddenColumns" ui-sortable="$ctrl.parent.sortableOptions">
<legend>{{:: ts('Hidden Fields') }}</legend>
- <fieldset ng-repeat="col in $ctrl.hiddenColumns" class="crm-draggable">
+ <fieldset ng-repeat="col in $ctrl.parent.hiddenColumns" class="crm-draggable">
<legend>{{ $ctrl.getFieldLabel(col.expr) }}</legend>
<div class="form-inline">
<label>{{:: ts('Label:') }}</label> <input disabled class="form-control" type="text" ng-model="col.label" />
- <button class="btn-xs pull-right" ng-click="$ctrl.restoreCol($index)" title="{{:: ts('Show') }}">
+ <button class="btn-xs pull-right" ng-click="$ctrl.parent.restoreCol($index)" title="{{:: ts('Show') }}">
<i class="crm-i fa-undo"></i>
</button>
</div>
apiParams: '<'
},
require: {
- crmSearchAdminDisplay: '^crmSearchAdminDisplay'
+ parent: '^crmSearchAdminDisplay'
},
templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayTable.html',
controller: function($scope, searchMeta) {
ctrl = this;
this.getFieldLabel = searchMeta.getDefaultLabel;
- this.sortableOptions = {
- connectWith: '.crm-search-admin-edit-columns',
- containment: '.crm-search-admin-edit-columns-wrapper'
- };
-
- this.removeCol = function(index) {
- ctrl.hiddenColumns.push(ctrl.display.settings.columns[index]);
- ctrl.display.settings.columns.splice(index, 1);
- };
-
- this.restoreCol = function(index) {
- ctrl.display.settings.columns.push(ctrl.hiddenColumns[index]);
- ctrl.hiddenColumns.splice(index, 1);
- };
-
this.$onInit = function () {
if (!ctrl.display.settings) {
ctrl.display.settings = {
pager: true
};
}
- ctrl.hiddenColumns = ctrl.crmSearchAdminDisplay.initColumns();
+ ctrl.parent.initColumns();
};
}
</div>
</fieldset>
<div class="crm-flex-box crm-search-admin-edit-columns-wrapper">
- <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.sortableOptions">
+ <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.display.settings.columns" ui-sortable="$ctrl.parent.sortableOptions">
<legend>{{:: ts('Columns') }}</legend>
<fieldset ng-repeat="col in $ctrl.display.settings.columns" class="crm-draggable">
<legend>{{ $ctrl.getFieldLabel(col.expr) }}</legend>
<div class="form-inline">
<label>{{:: ts('Label:') }}</label> <input class="form-control" type="text" ng-model="col.label" />
- <button class="btn-xs pull-right" ng-click="$ctrl.removeCol($index)" title="{{:: ts('Hide') }}">
+ <button class="btn-xs pull-right" ng-click="$ctrl.parent.removeCol($index)" title="{{:: ts('Hide') }}">
<i class="crm-i fa-ban"></i>
</button>
</div>
</div>
</fieldset>
</fieldset>
- <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.hiddenColumns" ui-sortable="$ctrl.sortableOptions">
+ <fieldset class="crm-search-admin-edit-columns" ng-model="$ctrl.parent.hiddenColumns" ui-sortable="$ctrl.parent.sortableOptions">
<legend>{{:: ts('Hidden Columns') }}</legend>
- <fieldset ng-repeat="col in $ctrl.hiddenColumns" class="crm-draggable">
+ <fieldset ng-repeat="col in $ctrl.parent.hiddenColumns" class="crm-draggable">
<legend>{{ $ctrl.getFieldLabel(col.expr) }}</legend>
<div class="form-inline">
<label>{{:: ts('Label:') }}</label> <input disabled class="form-control" type="text" ng-model="col.label" />
- <button class="btn-xs pull-right" ng-click="$ctrl.restoreCol($index)" title="{{:: ts('Show') }}">
+ <button class="btn-xs pull-right" ng-click="$ctrl.parent.restoreCol($index)" title="{{:: ts('Show') }}">
<i class="crm-i fa-undo"></i>
</button>
</div>