mirror of
https://github.com/nasa/openmct.git
synced 2025-04-11 21:31:06 +00:00
[Representation] Prefetch templates
...to ensure that dialogs et al can be displayed, even after loss of network connectivity. https://github.com/nasa/openmctweb/issues/383
This commit is contained in:
parent
ed7e0d8b0a
commit
3498b0a50a
@ -68,6 +68,19 @@
|
||||
"agentService"
|
||||
]
|
||||
}
|
||||
],
|
||||
"runs": [
|
||||
{
|
||||
"priority": "mandatory",
|
||||
"implementation": "TemplatePrefetcher.js",
|
||||
"depends": [
|
||||
"templateLinker",
|
||||
"templates[]",
|
||||
"views[]",
|
||||
"representations[]",
|
||||
"controls[]"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,6 @@ define(
|
||||
* @param {string} the URL for the template
|
||||
* @returns {Promise.<string>} a promise for the HTML content of
|
||||
* the template
|
||||
* @private
|
||||
*/
|
||||
TemplateLinker.prototype.load = function (templateUrl) {
|
||||
return this.$templateRequest(
|
||||
|
49
platform/representation/src/TemplatePrefetcher.js
Normal file
49
platform/representation/src/TemplatePrefetcher.js
Normal file
@ -0,0 +1,49 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
||||
* as represented by the Administrator of the National Aeronautics and Space
|
||||
* Administration. All rights reserved.
|
||||
*
|
||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Open MCT Web includes source code licensed under additional open source
|
||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||
* this source code distribution or the Licensing information page available
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
/*global define,Promise*/
|
||||
|
||||
define(
|
||||
function () {
|
||||
'use strict';
|
||||
|
||||
function concat(a, b) {
|
||||
return a.concat(b);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all templates when the application is started.
|
||||
* @param {platform/representation.TemplateLinker} templateLinker
|
||||
* the `templateLinker` service, used to load and cache
|
||||
* template extensions
|
||||
* @param {...{templateUrl: string}[]} extensions arrays
|
||||
* of template or template-like extensions
|
||||
*/
|
||||
function TemplatePrefetcher(templateLinker, extensions) {
|
||||
Array.prototype.slice.apply(arguments, [1])
|
||||
.reduce(concat, [])
|
||||
.map(templateLinker.getPath.bind(templateLinker))
|
||||
.forEach(templateLinker.load.bind(templateLinker));
|
||||
}
|
||||
|
||||
return TemplatePrefetcher;
|
||||
}
|
||||
);
|
Loading…
x
Reference in New Issue
Block a user