mirror of
https://github.com/ansible/awx.git
synced 2026-03-07 19:51:08 -03:30
Adds toggle for all/root groups to inventory groups view
This commit is contained in:
@@ -219,7 +219,7 @@ table, tbody {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.List-actionHolder--leftAlign {
|
.List-actionHolder--leftAlign {
|
||||||
margin-left: 52%;
|
margin-left: 50%;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
button {
|
button {
|
||||||
height: 34px;
|
height: 34px;
|
||||||
@@ -230,6 +230,15 @@ table, tbody {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: -34px;
|
margin-bottom: -34px;
|
||||||
|
|
||||||
|
.List-buttonDefault {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.List-toggleButton {
|
||||||
|
height: 30px;
|
||||||
|
line-height: 14px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.List-auxAction {
|
.List-auxAction {
|
||||||
@@ -272,6 +281,10 @@ table, tbody {
|
|||||||
opacity: 0.65;
|
opacity: 0.65;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.List-actionButton {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.List-searchDropdown {
|
.List-searchDropdown {
|
||||||
border-top-left-radius: 5px!important;
|
border-top-left-radius: 5px!important;
|
||||||
border-bottom-left-radius: 5px!important;
|
border-bottom-left-radius: 5px!important;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
*
|
*
|
||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
import { N_ } from '../../i18n';
|
||||||
|
|
||||||
import adhoc from './adhoc/main';
|
import adhoc from './adhoc/main';
|
||||||
import group from './related/groups/main';
|
import group from './related/groups/main';
|
||||||
@@ -294,6 +295,78 @@ angular.module('inventory', [
|
|||||||
let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute);
|
let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute);
|
||||||
relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs';
|
relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs';
|
||||||
|
|
||||||
|
let inventoryRootGroupsList = _.cloneDeep(inventoryGroupsList);
|
||||||
|
inventoryRootGroupsList.name = "inventories.edit.rootGroups";
|
||||||
|
inventoryRootGroupsList.url = "/root_groups?{group_search:queryset}",
|
||||||
|
inventoryRootGroupsList.ncyBreadcrumb.label = N_("ROOT GROUPS");// jshint ignore:line
|
||||||
|
inventoryRootGroupsList.resolve.listDefinition = ['GroupList', (list) => {
|
||||||
|
const rootGroupList = _.cloneDeep(list);
|
||||||
|
rootGroupList.basePath = 'api/v2/inventories/{{$stateParams.inventory_id}}/root_groups/';
|
||||||
|
rootGroupList.fields.name.uiSref = "inventories.edit.rootGroups.edit({group_id:group.id})";
|
||||||
|
return rootGroupList;
|
||||||
|
}];
|
||||||
|
|
||||||
|
let inventoryRootGroupsAdd = _.cloneDeep(inventoryGroupsAdd);
|
||||||
|
inventoryRootGroupsAdd.name = "inventories.edit.rootGroups.add";
|
||||||
|
inventoryRootGroupsAdd.ncyBreadcrumb.parent = "inventories.edit.rootGroups";
|
||||||
|
|
||||||
|
let inventoryRootGroupsEdit = _.cloneDeep(inventoryGroupsEdit);
|
||||||
|
inventoryRootGroupsEdit.name = "inventories.edit.rootGroups.edit";
|
||||||
|
inventoryRootGroupsEdit.ncyBreadcrumb.parent = "inventories.edit.rootGroups";
|
||||||
|
inventoryRootGroupsEdit.views = {
|
||||||
|
'groupForm@inventories': {
|
||||||
|
templateProvider: function(GenerateForm, GroupForm) {
|
||||||
|
let form = _.cloneDeep(GroupForm);
|
||||||
|
form.activeEditState = 'inventories.edit.rootGroups.edit';
|
||||||
|
form.detailsClick = "$state.go('inventories.edit.rootGroups.edit')";
|
||||||
|
form.parent = 'inventories.edit.rootGroups';
|
||||||
|
form.related.nested_groups.ngClick = "$state.go('inventories.edit.rootGroups.edit.nested_groups')";
|
||||||
|
form.related.nested_hosts.ngClick = "$state.go('inventories.edit.rootGroups.edit.nested_hosts')";
|
||||||
|
|
||||||
|
return GenerateForm.buildHTML(form, {
|
||||||
|
mode: 'edit',
|
||||||
|
related: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
controller: 'GroupEditController'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
inventoryGroupsEdit.views = {
|
||||||
|
'groupForm@inventories': {
|
||||||
|
templateProvider: function(GenerateForm, GroupForm) {
|
||||||
|
let form = GroupForm;
|
||||||
|
|
||||||
|
return GenerateForm.buildHTML(form, {
|
||||||
|
mode: 'edit',
|
||||||
|
related: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
controller: 'GroupEditController'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let rootGroupNestedGroupsRoute = _.cloneDeep(groupNestedGroupsRoute);
|
||||||
|
rootGroupNestedGroupsRoute.name = 'inventories.edit.rootGroups.edit.nested_groups';
|
||||||
|
rootGroupNestedGroupsRoute.ncyBreadcrumb.parent = "inventories.edit.rootGroups.edit";
|
||||||
|
|
||||||
|
let rootNestedGroupsAdd = _.cloneDeep(nestedGroupsAdd);
|
||||||
|
rootNestedGroupsAdd.name = "inventories.edit.rootGroups.edit.nested_groups.add";
|
||||||
|
rootNestedGroupsAdd.ncyBreadcrumb.parent = "inventories.edit.groups.edit.nested_groups";
|
||||||
|
|
||||||
|
let rootGroupNestedGroupsAssociateRoute = _.cloneDeep(groupNestedGroupsAssociateRoute);
|
||||||
|
rootGroupNestedGroupsAssociateRoute.name = 'inventories.edit.rootGroups.edit.nested_groups.associate';
|
||||||
|
|
||||||
|
let rootGroupNestedHostsRoute = _.cloneDeep(nestedHostsRoute);
|
||||||
|
rootGroupNestedHostsRoute.name = 'inventories.edit.rootGroups.edit.nested_hosts';
|
||||||
|
rootGroupNestedHostsRoute.ncyBreadcrumb.parent = "inventories.edit.rootGroups.edit";
|
||||||
|
|
||||||
|
let rootNestedHostsAdd = _.cloneDeep(nestedHostsAddRoute);
|
||||||
|
rootNestedHostsAdd.name = "inventories.edit.rootGroups.edit.nested_hosts.add";
|
||||||
|
rootNestedHostsAdd.ncyBreadcrumb.parent = "inventories.edit.rootGroups.edit.nested_hosts";
|
||||||
|
|
||||||
|
let rootGroupNestedHostsAssociateRoute = _.cloneDeep(nestedHostsAssociateRoute);
|
||||||
|
rootGroupNestedHostsAssociateRoute.name = 'inventories.edit.rootGroups.edit.nested_hosts.associate';
|
||||||
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
standardInventoryAdd,
|
standardInventoryAdd,
|
||||||
standardInventoryEdit,
|
standardInventoryEdit,
|
||||||
@@ -315,10 +388,16 @@ angular.module('inventory', [
|
|||||||
stateExtender.buildDefinition(relatedHostsAnsibleFacts),
|
stateExtender.buildDefinition(relatedHostsAnsibleFacts),
|
||||||
stateExtender.buildDefinition(relatedHostsInsights),
|
stateExtender.buildDefinition(relatedHostsInsights),
|
||||||
stateExtender.buildDefinition(inventoryGroupsList),
|
stateExtender.buildDefinition(inventoryGroupsList),
|
||||||
|
stateExtender.buildDefinition(inventoryRootGroupsList),
|
||||||
stateExtender.buildDefinition(inventoryGroupsAdd),
|
stateExtender.buildDefinition(inventoryGroupsAdd),
|
||||||
|
stateExtender.buildDefinition(rootNestedGroupsAdd),
|
||||||
|
stateExtender.buildDefinition(inventoryRootGroupsAdd),
|
||||||
stateExtender.buildDefinition(inventoryGroupsEdit),
|
stateExtender.buildDefinition(inventoryGroupsEdit),
|
||||||
|
stateExtender.buildDefinition(inventoryRootGroupsEdit),
|
||||||
stateExtender.buildDefinition(groupNestedGroupsRoute),
|
stateExtender.buildDefinition(groupNestedGroupsRoute),
|
||||||
|
stateExtender.buildDefinition(rootGroupNestedGroupsRoute),
|
||||||
stateExtender.buildDefinition(nestedHostsRoute),
|
stateExtender.buildDefinition(nestedHostsRoute),
|
||||||
|
stateExtender.buildDefinition(rootGroupNestedHostsRoute),
|
||||||
stateExtender.buildDefinition(inventoryHosts),
|
stateExtender.buildDefinition(inventoryHosts),
|
||||||
stateExtender.buildDefinition(smartInventoryHosts),
|
stateExtender.buildDefinition(smartInventoryHosts),
|
||||||
stateExtender.buildDefinition(inventoryHostsAdd),
|
stateExtender.buildDefinition(inventoryHostsAdd),
|
||||||
@@ -338,10 +417,13 @@ angular.module('inventory', [
|
|||||||
stateExtender.buildDefinition(addSourceProject),
|
stateExtender.buildDefinition(addSourceProject),
|
||||||
stateExtender.buildDefinition(editSourceProject),
|
stateExtender.buildDefinition(editSourceProject),
|
||||||
stateExtender.buildDefinition(groupNestedGroupsAssociateRoute),
|
stateExtender.buildDefinition(groupNestedGroupsAssociateRoute),
|
||||||
|
stateExtender.buildDefinition(rootGroupNestedGroupsAssociateRoute),
|
||||||
stateExtender.buildDefinition(hostNestedGroupsAssociateRoute),
|
stateExtender.buildDefinition(hostNestedGroupsAssociateRoute),
|
||||||
stateExtender.buildDefinition(nestedHostsAssociateRoute),
|
stateExtender.buildDefinition(nestedHostsAssociateRoute),
|
||||||
|
stateExtender.buildDefinition(rootGroupNestedHostsAssociateRoute),
|
||||||
stateExtender.buildDefinition(nestedGroupsAdd),
|
stateExtender.buildDefinition(nestedGroupsAdd),
|
||||||
stateExtender.buildDefinition(nestedHostsAddRoute),
|
stateExtender.buildDefinition(nestedHostsAddRoute),
|
||||||
|
stateExtender.buildDefinition(rootNestedHostsAdd),
|
||||||
stateExtender.buildDefinition(relatedHostCompletedJobs)
|
stateExtender.buildDefinition(relatedHostCompletedJobs)
|
||||||
])
|
])
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,18 +5,6 @@ export default {
|
|||||||
parent: "inventories.edit.groups",
|
parent: "inventories.edit.groups",
|
||||||
label: "{{breadcrumb.group_name}}"
|
label: "{{breadcrumb.group_name}}"
|
||||||
},
|
},
|
||||||
views: {
|
|
||||||
'groupForm@inventories': {
|
|
||||||
templateProvider: function(GenerateForm, GroupForm) {
|
|
||||||
let form = GroupForm;
|
|
||||||
return GenerateForm.buildHTML(form, {
|
|
||||||
mode: 'edit',
|
|
||||||
related: false
|
|
||||||
});
|
|
||||||
},
|
|
||||||
controller: 'GroupEditController'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
resolve: {
|
resolve: {
|
||||||
groupData: ['$stateParams', 'GroupsService', function($stateParams, GroupsService) {
|
groupData: ['$stateParams', 'GroupsService', function($stateParams, GroupsService) {
|
||||||
return GroupsService.get({ id: $stateParams.group_id }).then(response => response.data.results[0]);
|
return GroupsService.get({ id: $stateParams.group_id }).then(response => response.data.results[0]);
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ function(i18n){
|
|||||||
title: i18n._('Hosts'),
|
title: i18n._('Hosts'),
|
||||||
iterator: 'nested_hosts'
|
iterator: 'nested_hosts'
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}];
|
}];
|
||||||
|
|||||||
@@ -52,6 +52,22 @@
|
|||||||
actionClass: 'btn List-buttonDefault',
|
actionClass: 'btn List-buttonDefault',
|
||||||
buttonContent: i18n._('REFRESH')
|
buttonContent: i18n._('REFRESH')
|
||||||
},
|
},
|
||||||
|
groupsToggle: {
|
||||||
|
mode: 'all',
|
||||||
|
type: 'toggle',
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
text: i18n._('ALL GROUPS'),
|
||||||
|
ngClick: "$state.go('inventories.edit.groups')",
|
||||||
|
ngClass: "{'btn-primary': $state.includes('inventories.edit.groups'), 'Button-primary--hollow': $state.includes('inventories.edit.rootGroups')}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: i18n._('ROOT GROUPS'),
|
||||||
|
ngClick: "$state.go('inventories.edit.rootGroups')",
|
||||||
|
ngClass: "{'btn-primary': $state.includes('inventories.edit.rootGroups'), 'Button-primary--hollow': $state.includes('inventories.edit.groups')}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
launch: {
|
launch: {
|
||||||
mode: 'all',
|
mode: 'all',
|
||||||
ngDisabled: '!groupsSelected',
|
ngDisabled: '!groupsSelected',
|
||||||
|
|||||||
@@ -4,20 +4,21 @@
|
|||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*************************************************/
|
*************************************************/
|
||||||
export default
|
export default
|
||||||
['$scope', '$rootScope', '$state', '$stateParams', 'GroupList', 'InventoryUpdate',
|
['$scope', '$state', '$stateParams', 'listDefinition', 'InventoryUpdate',
|
||||||
'GroupsService', 'CancelSourceUpdate', 'rbacUiControlService', 'GetBasePath',
|
'GroupsService', 'CancelSourceUpdate',
|
||||||
'GetHostsStatusMsg', 'Dataset', 'Find', 'QuerySet', 'inventoryData', 'canAdd',
|
'GetHostsStatusMsg', 'Dataset', 'inventoryData', 'canAdd',
|
||||||
'InventoryHostsStrings', '$transitions',
|
'InventoryHostsStrings', '$transitions',
|
||||||
function($scope, $rootScope, $state, $stateParams, GroupList, InventoryUpdate,
|
function($scope, $state, $stateParams, listDefinition, InventoryUpdate,
|
||||||
GroupsService, CancelSourceUpdate, rbacUiControlService, GetBasePath,
|
GroupsService, CancelSourceUpdate,
|
||||||
GetHostsStatusMsg, Dataset, Find, qs, inventoryData, canAdd,
|
GetHostsStatusMsg, Dataset, inventoryData, canAdd,
|
||||||
InventoryHostsStrings, $transitions){
|
InventoryHostsStrings, $transitions){
|
||||||
|
|
||||||
let list = GroupList;
|
let list = listDefinition;
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
|
$scope.showOnlyRootGroups = true;
|
||||||
$scope.inventory_id = $stateParams.inventory_id;
|
$scope.inventory_id = $stateParams.inventory_id;
|
||||||
$scope.canAdhoc = inventoryData.summary_fields.user_capabilities.adhoc;
|
$scope.canAdhoc = inventoryData.summary_fields.user_capabilities.adhoc;
|
||||||
$scope.canAdd = canAdd;
|
$scope.canAdd = canAdd;
|
||||||
@@ -85,10 +86,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.createGroup = function(){
|
$scope.createGroup = function(){
|
||||||
$state.go('inventories.edit.groups.add');
|
if ($state.includes('inventories.edit.groups')) {
|
||||||
|
$state.go('inventories.edit.groups.add');
|
||||||
|
} else if ($state.includes('inventories.edit.rootGroups')) {
|
||||||
|
$state.go('inventories.edit.rootGroups.add');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
$scope.editGroup = function(id){
|
$scope.editGroup = function(id){
|
||||||
$state.go('inventories.edit.groups.edit', {group_id: id});
|
if ($state.includes('inventories.edit.groups')) {
|
||||||
|
$state.go('inventories.edit.groups.edit', {group_id: id});
|
||||||
|
} else if ($state.includes('inventories.edit.rootGroups')) {
|
||||||
|
$state.go('inventories.edit.rootGroups.edit', {group_id: id});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
$scope.goToGroupGroups = function(id){
|
$scope.goToGroupGroups = function(id){
|
||||||
$state.go('inventories.edit.groups.edit.nested_groups', {group_id: id});
|
$state.go('inventories.edit.groups.edit.nested_groups', {group_id: id});
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ export default {
|
|||||||
name: "inventories.edit.groups",
|
name: "inventories.edit.groups",
|
||||||
url: "/groups?{group_search:queryset}",
|
url: "/groups?{group_search:queryset}",
|
||||||
resolve: {
|
resolve: {
|
||||||
Dataset: ['GroupList', 'QuerySet', '$stateParams', 'GetBasePath', '$interpolate', '$rootScope',
|
listDefinition: ['GroupList', (list) => list],
|
||||||
|
Dataset: ['listDefinition', 'QuerySet', '$stateParams', 'GetBasePath', '$interpolate', '$rootScope',
|
||||||
(list, qs, $stateParams, GetBasePath, $interpolate, $rootScope) => {
|
(list, qs, $stateParams, GetBasePath, $interpolate, $rootScope) => {
|
||||||
// allow related list definitions to use interpolated $rootScope / $stateParams in basePath field
|
// allow related list definitions to use interpolated $rootScope / $stateParams in basePath field
|
||||||
let path, interpolator;
|
let path, interpolator;
|
||||||
@@ -43,12 +44,12 @@ export default {
|
|||||||
},
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
parent: "inventories.edit",
|
parent: "inventories.edit",
|
||||||
label: N_("GROUPS")
|
label: N_("ALL GROUPS")
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'related': {
|
'related': {
|
||||||
templateProvider: function(GroupList, generateList, $templateRequest, $stateParams, GetBasePath) {
|
templateProvider: function(listDefinition, generateList, $templateRequest, $stateParams, GetBasePath) {
|
||||||
let list = _.cloneDeep(GroupList);
|
let list = _.cloneDeep(listDefinition);
|
||||||
if($stateParams && $stateParams.group) {
|
if($stateParams && $stateParams.group) {
|
||||||
list.basePath = GetBasePath('groups') + _.last($stateParams.group) + '/children';
|
list.basePath = GetBasePath('groups') + _.last($stateParams.group) + '/children';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default {
|
|||||||
skip:true
|
skip:true
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'modal@inventories.edit.groups.edit': {
|
'modal@^.^': {
|
||||||
templateProvider: function() {
|
templateProvider: function() {
|
||||||
return `<associate-groups save-function="associateGroups(selectedItems)"></associate-groups>`;
|
return `<associate-groups save-function="associateGroups(selectedItems)"></associate-groups>`;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -127,7 +127,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.editGroup = function(id){
|
$scope.editGroup = function(id){
|
||||||
$state.go('inventories.edit.groups.edit', {group_id: id});
|
if ($state.includes('inventories.edit.groups')) {
|
||||||
|
$state.go('inventories.edit.groups.edit', {group_id: id});
|
||||||
|
} else if ($state.includes('inventories.edit.rootGroups')) {
|
||||||
|
$state.go('inventories.edit.rootGroups.edit', {group_id: id});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.goToGroupGroups = function(id){
|
$scope.goToGroupGroups = function(id){
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default {
|
|||||||
skip:true
|
skip:true
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'modal@inventories.edit.groups.edit': {
|
'modal@^.^': {
|
||||||
templateProvider: function() {
|
templateProvider: function() {
|
||||||
return `<associate-hosts save-function="associateHosts(selectedItems)"></associate-hosts>`;
|
return `<associate-hosts save-function="associateHosts(selectedItems)"></associate-hosts>`;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ function(i18n) {
|
|||||||
include: "GroupList",
|
include: "GroupList",
|
||||||
title: i18n._('Groups'),
|
title: i18n._('Groups'),
|
||||||
iterator: 'group',
|
iterator: 'group',
|
||||||
|
tabSelected: `$state.includes('inventories.edit.groups') || $state.includes('inventories.edit.rootGroups')`,
|
||||||
skipGenerator: true
|
skipGenerator: true
|
||||||
},
|
},
|
||||||
hosts: {
|
hosts: {
|
||||||
|
|||||||
@@ -1469,7 +1469,13 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
|
|||||||
`aw-tip-placement="${collection.dataPlacement}" ` +
|
`aw-tip-placement="${collection.dataPlacement}" ` +
|
||||||
`data-tip-watch="${collection.dataTipWatch}" `;
|
`data-tip-watch="${collection.dataTipWatch}" `;
|
||||||
}
|
}
|
||||||
let relatedTabSelected = this.form.activeEditState ? `$state.includes('${this.form.activeEditState}.${itm}') || $state.includes('${this.form.stateTree}.edit.${itm}')` : `$state.includes('${this.form.stateTree}.edit.${itm}')`;
|
let relatedTabSelected;
|
||||||
|
if (this.form.related[itm].tabSelected) {
|
||||||
|
relatedTabSelected = this.form.related[itm].tabSelected;
|
||||||
|
} else {
|
||||||
|
relatedTabSelected = this.form.activeEditState ? `$state.includes('${this.form.activeEditState}.${itm}') || $state.includes('${this.form.stateTree}.edit.${itm}')` : `$state.includes('${this.form.stateTree}.edit.${itm}')`;
|
||||||
|
}
|
||||||
|
|
||||||
html += `ng-class="{'is-selected' : ${relatedTabSelected}` ;
|
html += `ng-class="{'is-selected' : ${relatedTabSelected}` ;
|
||||||
if(this.form.related[itm].disabled){
|
if(this.form.related[itm].disabled){
|
||||||
html += `, 'Form-tab--disabled' : ${this.form.related[itm].disabled }`;
|
html += `, 'Form-tab--disabled' : ${this.form.related[itm].disabled }`;
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<span ng-repeat="(name, options) in list.actions" class="List-action" ng-hide="isHiddenByOptions(options) ||
|
<span ng-repeat="(name, options) in list.actions" class="List-action" ng-if="!isHiddenByOptions(options) &&
|
||||||
hiddenOnCurrentPage(options.basePaths) ||
|
!hiddenOnCurrentPage(options.basePaths) &&
|
||||||
hiddenInCurrentMode(options.mode)">
|
!hiddenInCurrentMode(options.mode)">
|
||||||
|
<div class="btn-group" ng-if="options.type && options.type === 'toggle'">
|
||||||
|
<button ng-repeat="button in options.buttons" class="btn List-toggleButton" ng-class="{{button.ngClass}}" ng-click="$eval(button.ngClick)">{{button.text}}</button>
|
||||||
|
</div>
|
||||||
<div ng-if="options.type && options.type === 'template'" ng-include="options.template" ng-show="{{options.ngShow}}"></div>
|
<div ng-if="options.type && options.type === 'template'" ng-include="options.template" ng-show="{{options.ngShow}}"></div>
|
||||||
<div class="List-action--showTooltipOnDisabled" ng-if="options.showTipWhenDisabled" aw-tool-tip="{{options.awToolTip}}" data-tip-watch="{{options.dataTipWatch}}" data-placement="{{options.dataPlacement}}" data-container="{{options.dataContainer}}" data-title="{{options.dataTitle}}" data-tooltip-inner-class="{{options.tooltipInnerClass}}">
|
<div class="List-action--showTooltipOnDisabled" ng-if="options.showTipWhenDisabled" aw-tool-tip="{{options.awToolTip}}" data-tip-watch="{{options.dataTipWatch}}" data-placement="{{options.dataPlacement}}" data-container="{{options.dataContainer}}" data-title="{{options.dataTitle}}" data-tooltip-inner-class="{{options.tooltipInnerClass}}">
|
||||||
<div class="btn-group" ng-if="options.type === 'buttonDropdown'" ng-disabled="{{options.ngDisabled}}">
|
<div class="btn-group" ng-if="options.type === 'buttonDropdown'" ng-disabled="{{options.ngDisabled}}">
|
||||||
|
|||||||
Reference in New Issue
Block a user