Spaces:
Running
Running
| /* app-dataset.js - demo dataset loader for the Bergamo FSR demo */ | |
| (function () { | |
| 'use strict'; | |
| var FSR = window.FSR = window.FSR || {}; | |
| FSR.createDemoDataController = function (options) { | |
| var utils = options.utils; | |
| var selectedId = 'STANDARD'; | |
| var catalog = { defaultId: selectedId, availableIds: [selectedId] }; | |
| var loading = false; | |
| var el = document.createDocumentFragment(); | |
| return { | |
| bootstrap: bootstrap, | |
| el: el, | |
| getCatalog: function () { return catalog; }, | |
| getSelectedId: function () { return selectedId; }, | |
| isLoading: function () { return loading; }, | |
| resolvePlan: resolvePlan, | |
| }; | |
| function bootstrap() { | |
| setLoading(true); | |
| notifyCatalog(); | |
| return utils.fetchDemoPlan(selectedId) | |
| .then(function (plan) { notifyPlan(plan); }) | |
| .catch(function (err) { notifyError(err); }) | |
| .finally(function () { setLoading(false); }); | |
| } | |
| function resolvePlan() { | |
| var currentPlan = options.getCurrentPlan(); | |
| if (currentPlan) return Promise.resolve(utils.clonePlan(currentPlan)); | |
| return utils.fetchDemoPlan(selectedId); | |
| } | |
| function setLoading(nextLoading) { | |
| loading = nextLoading; | |
| if (options.onLoadingChange) options.onLoadingChange(loading); | |
| } | |
| function notifyCatalog() { | |
| if (options.onCatalog) options.onCatalog(catalog, selectedId); | |
| } | |
| function notifyPlan(plan) { | |
| if (options.onPlan) options.onPlan(plan, selectedId); | |
| } | |
| function notifyError(err) { | |
| if (options.onError) options.onError(err); | |
| } | |
| }; | |
| })(); | |