Add debounce function to preview list to reduce overhead

This commit is contained in:
Marliana Lara
2018-02-16 10:52:02 -05:00
parent e0cfd18aac
commit b9a2f7a87e
3 changed files with 28 additions and 26 deletions

View File

@@ -308,6 +308,27 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
} }
}); });
} }
let previewList = _.debounce(function(req) {
$http.post('/api/v2/schedules/preview/', {'rrule': req})
.then(({data}) => {
$scope.preview_list = data;
for (let tz in data) {
$scope.preview_list.isEmpty = data[tz].length === 0;
$scope.preview_list[tz] = data[tz].map(function(date) {
date = date.replace(/Z/, '');
return moment.parseZone(date).format("MM-DD-YYYY HH:mm:ss");
});
}
});
}, 300);
$scope.$on("setPreviewPane", (event) => {
let rrule = event.currentScope.rrule.toString();
let req = RRuleToAPI(rrule, $scope);
previewList(req);
});
scheduler.inject('form-container', false); scheduler.inject('form-container', false);
scheduler.injectDetail('occurrences', false); scheduler.injectDetail('occurrences', false);
scheduler.clear(); scheduler.clear();
@@ -316,22 +337,6 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
$scope.$on("formUpdated", function() { $scope.$on("formUpdated", function() {
$rootScope.$broadcast("loadSchedulerDetailPane"); $rootScope.$broadcast("loadSchedulerDetailPane");
}); });
$scope.$on("setPreviewPane", (event) => {
let rrule = event.currentScope.rrule.toString();
let req = RRuleToAPI(rrule, $scope);
$http.post('/api/v2/schedules/preview/', {'rrule': req})
.then(({data}) => {
$scope.preview_list = data;
for (let tz in data) {
$scope.preview_list.isEmpty = data[tz].length === 0;
$scope.preview_list[tz] = data[tz].map(function(date) {
date = date.replace(/Z/, '');
return moment.parseZone(date).format("MM-DD-YYYY HH:mm:ss");
});
}
});
});
$scope.$watchGroup(["schedulerName", $scope.$watchGroup(["schedulerName",
"schedulerStartDt", "schedulerStartDt",
"schedulerStartHour", "schedulerStartHour",

View File

@@ -85,10 +85,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
callSelect2(); callSelect2();
}); });
$scope.$on("setPreviewPane", (event) => { let previewList = _.debounce(function(req) {
let rrule = event.currentScope.rrule.toString();
let req = RRuleToAPI(rrule, $scope);
$http.post('/api/v2/schedules/preview/', {'rrule': req}) $http.post('/api/v2/schedules/preview/', {'rrule': req})
.then(({data}) => { .then(({data}) => {
$scope.preview_list = data; $scope.preview_list = data;
@@ -100,6 +97,12 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
}); });
} }
}); });
}, 300);
$scope.$on("setPreviewPane", (event) => {
let rrule = event.currentScope.rrule.toString();
let req = RRuleToAPI(rrule, $scope);
previewList(req);
}); });
Wait('start'); Wait('start');

View File

@@ -28,12 +28,6 @@
name="schedulerName" name="schedulerName"
id="schedulerName" id="schedulerName"
ng-model="schedulerName" required ng-model="schedulerName" required
ng-model-options="{
'updateOn': 'default blur',
'debounce': {
'default': 300,
'blur': 0
}}"
ng-disabled="!(schedule_obj.summary_fields.user_capabilities.edit || canAdd)" ng-disabled="!(schedule_obj.summary_fields.user_capabilities.edit || canAdd)"
placeholder="Schedule name"> placeholder="Schedule name">
<div class="error" <div class="error"