Merge branch 'master' into open199

This commit is contained in:
Henry 2015-12-08 15:42:37 -08:00
commit b5c741c911
8 changed files with 162 additions and 6 deletions

View File

@ -229,10 +229,6 @@
"templateUrl": "templates/subtree.html",
"uses": [ "composition" ]
},
{
"key": "test",
"templateUrl": "templates/test.html"
},
{
"key": "tree-node",
"templateUrl": "templates/tree-node.html",

View File

@ -85,6 +85,8 @@ define(
$scope.commit("Dropped a frame.");
}
// Populate template-facing position for this id
self.rawPositions[id] =
$scope.configuration.panels[id];
self.populatePosition(id);
// Layout may contain embedded views which will
// listen for drops, so call preventDefault() so

View File

@ -274,6 +274,23 @@ define(
expect(parseInt(style.width, 10)).toBeGreaterThan(63);
expect(parseInt(style.height, 10)).toBeGreaterThan(31);
});
it("updates positions of existing objects on a drop", function () {
var oldStyle;
mockScope.$watchCollection.mostRecentCall.args[1]();
oldStyle = controller.getFrameStyle("b");
expect(oldStyle).toBeDefined();
// ...drop event...
mockScope.$on.mostRecentCall
.args[1](mockEvent, 'b', { x: 300, y: 100 });
expect(controller.getFrameStyle("b"))
.not.toEqual(oldStyle);
});
});
}
);

View File

@ -70,6 +70,20 @@
"agentService"
]
}
],
"runs": [
{
"priority": "mandatory",
"implementation": "TemplatePrefetcher.js",
"depends": [
"templateLinker",
"templates[]",
"views[]",
"representations[]",
"controls[]",
"containers[]"
]
}
]
}
}

View File

@ -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(

View File

@ -0,0 +1,51 @@
/*****************************************************************************
* 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';
/**
* 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(function (a, b) {
return a.concat(b);
}, [])
.map(function (ext) {
return templateLinker.getPath(ext);
})
.forEach(function (path) {
templateLinker.load(path);
});
}
return TemplatePrefetcher;
}
);

View File

@ -0,0 +1,76 @@
/*****************************************************************************
* 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,describe,it,expect,beforeEach,waitsFor,jasmine*/
define(
["../src/TemplatePrefetcher"],
function (TemplatePrefetcher) {
'use strict';
describe("TemplatePrefetcher", function () {
var mockTemplateLinker,
testExtensions,
testPathPrefix,
prefetcher;
beforeEach(function () {
testPathPrefix = "some/path/";
mockTemplateLinker = jasmine.createSpyObj(
'templateLinker',
[ 'getPath', 'load' ]
);
mockTemplateLinker.getPath.andCallFake(function (ext) {
return testPathPrefix + ext.templateUrl;
});
testExtensions = ['a', 'b', 'c'].map(function (category) {
return ['x', 'y', 'z'].map(function (ext) {
return {
templateUrl: category + '/' + ext + '.html'
};
});
});
prefetcher = new TemplatePrefetcher(
mockTemplateLinker,
testExtensions[0],
testExtensions[1],
testExtensions[2]
);
});
it("loads all templates when run", function () {
testExtensions.forEach(function (category) {
category.forEach(function (extension) {
expect(mockTemplateLinker.load).toHaveBeenCalledWith(
mockTemplateLinker.getPath(extension)
);
});
});
});
});
}
);

View File

@ -8,5 +8,6 @@
"services/DndService",
"MCTInclude",
"MCTRepresentation",
"TemplateLinker"
"TemplateLinker",
"TemplatePrefetcher"
]