From ca9673f56231b4cc1178977909ba4103e62508f8 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 15 Jan 2019 15:43:00 +1100 Subject: [PATCH 1/2] Fix Dereferencer service It failed when `object[attr]` was `undefined` instead of `null`. --- .../admin/index_utils/services/dereferencer.js.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/admin/index_utils/services/dereferencer.js.coffee b/app/assets/javascripts/admin/index_utils/services/dereferencer.js.coffee index fba6ef7908..dc4dd66773 100644 --- a/app/assets/javascripts/admin/index_utils/services/dereferencer.js.coffee +++ b/app/assets/javascripts/admin/index_utils/services/dereferencer.js.coffee @@ -9,4 +9,4 @@ angular.module("admin.indexUtils").factory 'Dereferencer', -> dereferenceAttr: (array, attr, data)-> if array for object in array - object[attr] = data[object[attr].id] unless object[attr] == null + object[attr] = data[object[attr].id] if object[attr] From 5a5db3c458ff162111aef79ac60a056a20d683ad Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 15 Jan 2019 15:45:46 +1100 Subject: [PATCH 2/2] Fix state of RequestMonitor `@loading` was set to false when the request with the last id finished. But another request started earlier (having a lower id) could take longer. `@loading` was set to false even though these long requests were still active. --- .../admin/index_utils/services/request_monitor.js.coffee | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/admin/index_utils/services/request_monitor.js.coffee b/app/assets/javascripts/admin/index_utils/services/request_monitor.js.coffee index 2fc5ef9829..79802fc290 100644 --- a/app/assets/javascripts/admin/index_utils/services/request_monitor.js.coffee +++ b/app/assets/javascripts/admin/index_utils/services/request_monitor.js.coffee @@ -1,11 +1,12 @@ angular.module("admin.indexUtils").factory 'RequestMonitor', ($q) -> new class RequestMonitor loadQueue: $q.when([]) - loadId: 0 + requestCount: 0 loading: false load: (promise) -> - loadId = (@loadId += 1) + @requestCount += 1 @loading = true @loadQueue = $q.all([@loadQueue, promise]).then => - @loading = false if @loadId == loadId + @requestCount -= 1 + @loading = false if @requestCount == 0