60 lines
2 KiB
JavaScript
60 lines
2 KiB
JavaScript
define([
|
|
'jquery', 'knockout', 'text!./Aircraft.html', './SubtopicViewmodel'
|
|
], function(jquery, ko, htmlString, SubtopicViewmodel) {
|
|
ko.components.register('Aircraft/Select', {
|
|
require : 'topics/Aircraft/Select'
|
|
});
|
|
|
|
ko.components.register('Aircraft/Mass & Balance', {
|
|
require : 'topics/Aircraft/MassBalance'
|
|
});
|
|
|
|
ko.components.register('Aircraft/Checklists', {
|
|
require : 'topics/Aircraft/Checklists'
|
|
});
|
|
|
|
ko.components.register('Aircraft/Help', {
|
|
require : 'topics/Aircraft/Help'
|
|
});
|
|
|
|
ko.components.register('Aircraft/Panel', {
|
|
require : 'topics/Aircraft/Panel'
|
|
});
|
|
|
|
function Viewmodel(topics, prefix, params) {
|
|
var self = this;
|
|
SubtopicViewmodel.call(self, topics, prefix, params);
|
|
|
|
self.config = ko.observable({});
|
|
|
|
self.thumbnailUrl = "/aircraft-dir/thumbnail.jpg?N=" + Date.now();
|
|
|
|
jquery.get('/aircraft-dir/Phi/config.json', null, function(config) {
|
|
self.config(config);
|
|
|
|
if (config && config.plugins && config.plugins.Aircraft) {
|
|
for ( var p in config.plugins.Aircraft) {
|
|
var plugin = config.plugins.Aircraft[p];
|
|
if (plugin.component && plugin.component.key && plugin.component.lib) {
|
|
if (false == ko.components.isRegistered(plugin.component.key)) {
|
|
ko.components.register(plugin.component.key, { require: plugin.component.lib });
|
|
}
|
|
}
|
|
self.topics.push(p);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// Return component definition
|
|
return {
|
|
viewModel : {
|
|
createViewModel : function(params, componentInfo) {
|
|
return new Viewmodel([
|
|
'Help', 'Mass & Balance', 'Checklists', 'Failures', 'Panel', 'Select'
|
|
], "Aircraft", params);
|
|
},
|
|
},
|
|
template : htmlString
|
|
};
|
|
});
|