1
0
Fork 0
fgdata/Phi/topics/Aircraft.js

65 lines
2.1 KiB
JavaScript
Raw Normal View History

2015-01-25 12:02:20 +00:00
define([
'jquery', 'knockout', 'text!./Aircraft.html', './SubtopicViewmodel'
], function(jquery, ko, htmlString, SubtopicViewmodel) {
2015-01-25 12:02:20 +00:00
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/Failures', {
require : 'topics/Aircraft/Failures'
});
2015-02-06 10:36:53 +00:00
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);
}
}
});
}
2015-01-25 12:02:20 +00:00
// Return component definition
return {
viewModel : {
createViewModel : function(params, componentInfo) {
return new Viewmodel([
'Help', 'Mass & Balance', 'Checklists', 'Failures', 'Panel', 'Select'
], "Aircraft", params);
},
},
2015-01-25 12:02:20 +00:00
template : htmlString
};
});