mirror of
https://github.com/ansible/awx.git
synced 2026-05-17 22:37:41 -02:30
don't compile html in real time
This commit is contained in:
@@ -6,7 +6,6 @@ import {
|
|||||||
OUTPUT_PAGE_SIZE,
|
OUTPUT_PAGE_SIZE,
|
||||||
} from './constants';
|
} from './constants';
|
||||||
|
|
||||||
let $compile;
|
|
||||||
let $q;
|
let $q;
|
||||||
let $scope;
|
let $scope;
|
||||||
let $state;
|
let $state;
|
||||||
@@ -97,6 +96,7 @@ function firstRange () {
|
|||||||
.then(() => render.pushFront(results));
|
.then(() => render.pushFront(results));
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
lockFollow = false;
|
lockFollow = false;
|
||||||
});
|
});
|
||||||
@@ -124,6 +124,7 @@ function nextRange () {
|
|||||||
.then(() => render.pushFront(results));
|
.then(() => render.pushFront(results));
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
lockFrames = false;
|
lockFrames = false;
|
||||||
|
|
||||||
@@ -162,6 +163,7 @@ function previousRange () {
|
|||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
lockFrames = false;
|
lockFrames = false;
|
||||||
|
|
||||||
@@ -189,6 +191,7 @@ function lastRange () {
|
|||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
|
|
||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
@@ -280,6 +283,7 @@ function firstPage () {
|
|||||||
.then(() => render.pushFront(results));
|
.then(() => render.pushFront(results));
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
|
|
||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
@@ -309,6 +313,7 @@ function lastPage () {
|
|||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
|
|
||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
@@ -330,6 +335,7 @@ function nextPage () {
|
|||||||
.then(() => render.pushFront(results));
|
.then(() => render.pushFront(results));
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -363,6 +369,7 @@ function previousPage () {
|
|||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
render.compile();
|
||||||
scroll.resume();
|
scroll.resume();
|
||||||
|
|
||||||
return $q.resolve();
|
return $q.resolve();
|
||||||
@@ -546,10 +553,6 @@ function toggleTaskCollapse (uuid) {
|
|||||||
render.records[uuid].isCollapsed = !isCollapsed;
|
render.records[uuid].isCollapsed = !isCollapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
function compile (html) {
|
|
||||||
return $compile(html)($scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
function showHostDetails (id, uuid) {
|
function showHostDetails (id, uuid) {
|
||||||
$state.go('output.host-event.json', { eventId: id, taskUuid: uuid });
|
$state.go('output.host-event.json', { eventId: id, taskUuid: uuid });
|
||||||
}
|
}
|
||||||
@@ -599,7 +602,7 @@ function showMissingEvents (uuid) {
|
|||||||
delete render.records[uuid];
|
delete render.records[uuid];
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(() => render.compile(elements))
|
.then(() => render.compile())
|
||||||
.then(() => lines);
|
.then(() => lines);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -709,7 +712,6 @@ function clear () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function OutputIndexController (
|
function OutputIndexController (
|
||||||
_$compile_,
|
|
||||||
_$q_,
|
_$q_,
|
||||||
_$scope_,
|
_$scope_,
|
||||||
_$state_,
|
_$state_,
|
||||||
@@ -727,7 +729,6 @@ function OutputIndexController (
|
|||||||
const { isPanelExpanded, _debug } = $stateParams;
|
const { isPanelExpanded, _debug } = $stateParams;
|
||||||
const isProcessingFinished = !_debug && _resource_.model.get('event_processing_finished');
|
const isProcessingFinished = !_debug && _resource_.model.get('event_processing_finished');
|
||||||
|
|
||||||
$compile = _$compile_;
|
|
||||||
$q = _$q_;
|
$q = _$q_;
|
||||||
$scope = _$scope_;
|
$scope = _$scope_;
|
||||||
$state = _$state_;
|
$state = _$state_;
|
||||||
@@ -765,7 +766,7 @@ function OutputIndexController (
|
|||||||
vm.debug = _debug;
|
vm.debug = _debug;
|
||||||
|
|
||||||
render.requestAnimationFrame(() => {
|
render.requestAnimationFrame(() => {
|
||||||
render.init({ compile, toggles: vm.toggleLineEnabled });
|
render.init($scope, { toggles: vm.toggleLineEnabled });
|
||||||
|
|
||||||
status.init(resource);
|
status.init(resource);
|
||||||
page.init(resource.events);
|
page.init(resource.events);
|
||||||
@@ -815,6 +816,7 @@ function OutputIndexController (
|
|||||||
status.sync();
|
status.sync();
|
||||||
scroll.unlock();
|
scroll.unlock();
|
||||||
scroll.unhide();
|
scroll.unhide();
|
||||||
|
render.compile();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -850,7 +852,6 @@ function OutputIndexController (
|
|||||||
}
|
}
|
||||||
|
|
||||||
OutputIndexController.$inject = [
|
OutputIndexController.$inject = [
|
||||||
'$compile',
|
|
||||||
'$q',
|
'$q',
|
||||||
'$scope',
|
'$scope',
|
||||||
'$state',
|
'$state',
|
||||||
|
|||||||
@@ -33,9 +33,13 @@ const pattern = [
|
|||||||
const re = new RegExp(pattern);
|
const re = new RegExp(pattern);
|
||||||
const hasAnsi = input => re.test(input);
|
const hasAnsi = input => re.test(input);
|
||||||
|
|
||||||
function JobRenderService ($q, $sce, $window) {
|
let $scope;
|
||||||
this.init = ({ compile, toggles }) => {
|
|
||||||
this.hooks = { compile };
|
function JobRenderService ($q, $compile, $sce, $window) {
|
||||||
|
this.init = (_$scope_, { toggles }) => {
|
||||||
|
$scope = _$scope_;
|
||||||
|
this.setScope();
|
||||||
|
|
||||||
this.el = $(OUTPUT_ELEMENT_TBODY);
|
this.el = $(OUTPUT_ELEMENT_TBODY);
|
||||||
this.parent = null;
|
this.parent = null;
|
||||||
|
|
||||||
@@ -434,8 +438,16 @@ function JobRenderService ($q, $sce, $window) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.compile = content => {
|
this.setScope = () => {
|
||||||
this.hooks.compile(content);
|
if (this.scope) this.scope.$destroy();
|
||||||
|
delete this.scope;
|
||||||
|
|
||||||
|
this.scope = $scope.$new();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.compile = () => {
|
||||||
|
this.setScope();
|
||||||
|
$compile(this.el)(this.scope);
|
||||||
|
|
||||||
return this.requestAnimationFrame();
|
return this.requestAnimationFrame();
|
||||||
};
|
};
|
||||||
@@ -471,10 +483,7 @@ function JobRenderService ($q, $sce, $window) {
|
|||||||
const result = this.prependEventGroup(events);
|
const result = this.prependEventGroup(events);
|
||||||
const html = this.trustHtml(result.html);
|
const html = this.trustHtml(result.html);
|
||||||
|
|
||||||
const newElements = angular.element(html);
|
return this.requestAnimationFrame(() => this.el.prepend(html))
|
||||||
|
|
||||||
return this.requestAnimationFrame(() => this.el.prepend(newElements))
|
|
||||||
.then(() => this.compile(newElements))
|
|
||||||
.then(() => result.lines);
|
.then(() => result.lines);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -486,10 +495,7 @@ function JobRenderService ($q, $sce, $window) {
|
|||||||
const result = this.appendEventGroup(events);
|
const result = this.appendEventGroup(events);
|
||||||
const html = this.trustHtml(result.html);
|
const html = this.trustHtml(result.html);
|
||||||
|
|
||||||
const newElements = angular.element(html);
|
return this.requestAnimationFrame(() => this.el.append(html))
|
||||||
|
|
||||||
return this.requestAnimationFrame(() => this.el.append(newElements))
|
|
||||||
.then(() => this.compile(newElements))
|
|
||||||
.then(() => result.lines);
|
.then(() => result.lines);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -600,6 +606,6 @@ function JobRenderService ($q, $sce, $window) {
|
|||||||
this.getCapacity = () => OUTPUT_EVENT_LIMIT - (this.getTailCounter() - this.getHeadCounter());
|
this.getCapacity = () => OUTPUT_EVENT_LIMIT - (this.getTailCounter() - this.getHeadCounter());
|
||||||
}
|
}
|
||||||
|
|
||||||
JobRenderService.$inject = ['$q', '$sce', '$window'];
|
JobRenderService.$inject = ['$q', '$compile', '$sce', '$window'];
|
||||||
|
|
||||||
export default JobRenderService;
|
export default JobRenderService;
|
||||||
|
|||||||
Reference in New Issue
Block a user