mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 03:10:42 -03:30
Add logic to unset watchers using scope on destroy
This commit is contained in:
parent
5d9f27db62
commit
d4addb83df
@ -7,7 +7,7 @@
|
||||
import jobSubCredListController from './job-sub-cred-list.controller';
|
||||
|
||||
export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$compile', 'CredentialList',
|
||||
function(templateUrl, qs, GetBasePath, GenerateList, $compile, CredentialList) {
|
||||
(templateUrl, qs, GetBasePath, GenerateList, $compile, CredentialList) => {
|
||||
return {
|
||||
scope: {
|
||||
selectedCredential: '='
|
||||
@ -15,7 +15,9 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
templateUrl: templateUrl('job-submission/lists/credential/job-sub-cred-list'),
|
||||
controller: jobSubCredListController,
|
||||
restrict: 'E',
|
||||
link: function(scope) {
|
||||
link: scope => {
|
||||
let toDestroy = [];
|
||||
|
||||
scope.credential_default_params = {
|
||||
order_by: 'name',
|
||||
page_size: 5,
|
||||
@ -30,11 +32,11 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
|
||||
// Fire off the initial search
|
||||
qs.search(GetBasePath('credentials'), scope.credential_default_params)
|
||||
.then(function(res) {
|
||||
.then(res => {
|
||||
scope.credential_dataset = res.data;
|
||||
scope.credentials = scope.credential_dataset.results;
|
||||
|
||||
var credList = _.cloneDeep(CredentialList);
|
||||
let credList = _.cloneDeep(CredentialList);
|
||||
let html = GenerateList.build({
|
||||
list: credList,
|
||||
input_type: 'radio',
|
||||
@ -45,10 +47,10 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
|
||||
$('#job-submission-credential-lookup').append($compile(html)(scope));
|
||||
|
||||
scope.$watchCollection('selectedCredential', function () {
|
||||
toDestroy.push(scope.$watchCollection('selectedCredential', () => {
|
||||
if(scope.selectedCredential) {
|
||||
// Loop across the inventories and see if one of them should be "checked"
|
||||
scope.credentials.forEach(function(row, i) {
|
||||
scope.credentials.forEach((row, i) => {
|
||||
if (row.id === scope.selectedCredential.id) {
|
||||
scope.credentials[i].checked = 1;
|
||||
}
|
||||
@ -57,8 +59,10 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
scope.$on('$destroy', () => toDestroy.forEach(watcher => watcher()));
|
||||
}
|
||||
};
|
||||
}];
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
import jobSubInvListController from './job-sub-inv-list.controller';
|
||||
|
||||
export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$compile', 'InventoryList',
|
||||
function(templateUrl, qs, GetBasePath, GenerateList, $compile, InventoryList) {
|
||||
(templateUrl, qs, GetBasePath, GenerateList, $compile, InventoryList) => {
|
||||
return {
|
||||
scope: {
|
||||
selectedInventory: '='
|
||||
@ -15,7 +15,9 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
templateUrl: templateUrl('job-submission/lists/inventory/job-sub-inv-list'),
|
||||
controller: jobSubInvListController,
|
||||
restrict: 'E',
|
||||
link: function(scope) {
|
||||
link: scope => {
|
||||
let toDestroy = [];
|
||||
|
||||
scope.inventory_default_params = {
|
||||
order_by: 'name',
|
||||
page_size: 5
|
||||
@ -28,11 +30,11 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
|
||||
// Fire off the initial search
|
||||
qs.search(GetBasePath('inventory'), scope.inventory_default_params)
|
||||
.then(function(res) {
|
||||
.then(res => {
|
||||
scope.inventory_dataset = res.data;
|
||||
scope.inventories = scope.inventory_dataset.results;
|
||||
|
||||
var invList = _.cloneDeep(InventoryList);
|
||||
let invList = _.cloneDeep(InventoryList);
|
||||
let html = GenerateList.build({
|
||||
list: invList,
|
||||
input_type: 'radio',
|
||||
@ -43,10 +45,10 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
|
||||
$('#job-submission-inventory-lookup').append($compile(html)(scope));
|
||||
|
||||
scope.$watchCollection('selectedInventory', function () {
|
||||
toDestroy.push(scope.$watchCollection('selectedInventory', () => {
|
||||
if(scope.selectedInventory) {
|
||||
// Loop across the inventories and see if one of them should be "checked"
|
||||
scope.inventories.forEach(function(row, i) {
|
||||
scope.inventories.forEach((row, i) => {
|
||||
if (row.id === scope.selectedInventory.id) {
|
||||
scope.inventories[i].checked = 1;
|
||||
}
|
||||
@ -55,8 +57,10 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
scope.$on('$destory', () => toDestroy.forEach(watcher => watcher()));
|
||||
}
|
||||
};
|
||||
}];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user