return links;
}
- function onChange() {
- var val = $('select', $element).val();
- if (val !== ctrl.column.link) {
- var link = ctrl.getLink(val);
- if (link) {
- ctrl.column.link = link.path;
- ctrl.column.title = link.title;
- } else if (val === 'civicrm/') {
+ this.setValue = function(val) {
+ var link = ctrl.getLink(val),
+ oldLink = ctrl.getLink(ctrl.column.link);
+ if (link) {
+ ctrl.column.link = link.path;
+ ctrl.column.title = link.title;
+ } else {
+ if (val === 'civicrm/') {
ctrl.column.link = val;
- $timeout(function() {
- $('input', $element).focus();
+ $timeout(function () {
+ $('input[type=text]', $element).focus();
});
} else {
ctrl.column.link = '';
+ }
+ if (oldLink && ctrl.column.title === oldLink.title) {
ctrl.column.title = '';
}
}
+ };
+
+ function onChange() {
+ var val = $('select', $element).val();
+ if (val !== ctrl.column.link) {
+ ctrl.setValue(val);
+ }
}
this.$onInit = function() {
-<select class="form-control">
- <option value="" ng-selected="!$ctrl.column.link" >{{ ts('None') }}</option>
+<label title="{{ ts('Display as clickable link') }}" >
+ <input type="checkbox" ng-checked="$ctrl.column.link" ng-click="$ctrl.setValue($ctrl.column.link ? '' : ($ctrl.links[0] && $ctrl.links[0].path || 'civicrm/'))" >
+ {{ $ctrl.column.link ? ts('Link:') : ts('Link') }}
+</label>
+<select class="form-control" ng-show="$ctrl.links.length && $ctrl.column.link">
+ <option value="">{{ ts('None') }}</option>
<option ng-repeat="link in $ctrl.links" value="{{ link.path }}" ng-selected="$ctrl.column.link === link.path">
{{ link.title }}
</option>
{{ ts('Other...') }}
</option>
</select>
-<div class="form-group" ng-if="$ctrl.column.link && !$ctrl.getLink($ctrl.column.link)">
- <input class="form-control" type="text" ng-model="$ctrl.column.link" ng-model-options="{updateOn: 'blur'}" />
- <crm-search-admin-token-select api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams" model="$ctrl.column" field="link"></crm-search-admin-token-select>
-</div>
+<input class="form-control" type="text" ng-if="$ctrl.column.link && !$ctrl.getLink($ctrl.column.link)" ng-model="$ctrl.column.link" ng-model-options="{updateOn: 'blur'}" />
+<crm-search-admin-token-select ng-if="$ctrl.column.link && !$ctrl.getLink($ctrl.column.link)" api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams" model="$ctrl.column" field="link"></crm-search-admin-token-select>
-<div class="form-inline">
- <label>{{:: ts('Link:') }}</label>
- <crm-search-admin-link-select column="col" api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams"></crm-search-admin-link-select>
-</div>
-<div class="form-inline">
- <label>{{:: ts('Tooltip:') }}</label>
- <input class="form-control" type="text" ng-model="col.title" />
- <crm-search-admin-token-select api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams" model="col" field="title"></crm-search-admin-token-select>
+<crm-search-admin-link-select class="form-inline crm-search-admin-flex-row" column="col" api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams"></crm-search-admin-link-select>
+<div class="form-inline crm-search-admin-flex-row">
+ <label>
+ <input type="checkbox" ng-checked="col.title" ng-click="col.title = col.title ? null : $ctrl.parent.getFieldLabel(col.key)" >
+ {{ col.title ? ts('Tooltip:') : ts('Tooltip') }}
+ </label>
+ <input class="form-control" type="text" ng-model="col.title" ng-if="col.title" ng-model-options="{updateOn: 'blur'}" />
+ <crm-search-admin-token-select ng-if="col.title" api-entity="$ctrl.apiEntity" api-params="$ctrl.apiParams" model="col" field="title"></crm-search-admin-token-select>
</div>
top: 0;
}
+#bootstrap-theme .crm-search-admin-flex-row {
+ display: flex;
+ align-items: center;
+}
+#bootstrap-theme .crm-search-admin-flex-row > *:not(:first-child) {
+ margin-left: 6px;
+}
+#bootstrap-theme .crm-search-admin-flex-row > input[type=text] {
+ flex: 1;
+}
+
#bootstrap-theme input[type=search]::placeholder {
font-family: FontAwesome;
text-align: right;