[Search] Remove unnecsissary controller

Removed the SearchItemController, as the logic was simple
enough to be done in one line in the search item
representation html.
This commit is contained in:
slhale 2015-08-18 10:19:20 -07:00
parent 3a932f5443
commit 17aa666519
5 changed files with 8 additions and 148 deletions

View File

@ -20,11 +20,6 @@
"implementation": "controllers/SearchMenuController.js",
"depends": [ "$scope", "types[]" ]
},
{
"key": "SearchItemController",
"implementation": "controllers/SearchItemController.js",
"depends": [ "$scope" ]
},
{
"key": "ClickAwayController",
"implementation": "controllers/ClickAwayController.js",

View File

@ -20,13 +20,11 @@
at runtime from the About dialog for additional information.
-->
<span ng-controller="SearchItemController as controller">
<div class="search-result-item"
ng-class="{selected: controller.isSelected()}">
<mct-representation key="'label'"
mct-object="domainObject"
ng-model="ngModel"
ng-click="ngModel.selectedObject = domainObject">
</mct-representation>
</div>
</span>
<div class="search-result-item"
ng-class="{selected: ngModel.selectedObject.getId() === domainObject.getId()}">
<mct-representation key="'label'"
mct-object="domainObject"
ng-model="ngModel"
ng-click="ngModel.selectedObject = domainObject">
</mct-representation>
</div>

View File

@ -1,60 +0,0 @@
/*****************************************************************************
* 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*/
/**
* Module defining SearchItemController. Created by shale on 07/22/2015.
*/
define(function () {
"use strict";
function SearchItemController($scope) {
var selectedObject = ($scope.ngModel || {}).selectedObject;
// Callback for the selection updates; track the currently
// navigated object and update display parameters as needed.
function setSelection(object) {
selectedObject = object;
}
// Listen for changes which will effect display parameters
$scope.$watch("ngModel.selectedObject", setSelection);
return {
/**
* Check whether or not the domain object represented by
* this search item should be highlighted.
* An object will be highlighted if its ID matches
* ngModel.selectedObject
*
* @returns true if this should be highlighted
*/
isSelected: function () {
// If this object is the same as the model's selected object
// Same being them having the same ID (this allows different
// instances of the same thing to be recognized as the same)
return $scope.ngModel.selectedObject.getId() === $scope.domainObject.getId();
}
};
}
return SearchItemController;
});

View File

@ -1,72 +0,0 @@
/*****************************************************************************
* 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,describe,it,expect,beforeEach,jasmine*/
/**
* SearchSpec. Created by shale on 07/31/2015.
*/
define(
["../../src/controllers/SearchItemController"],
function (SearchItemController) {
"use strict";
describe("The search item controller", function () {
var mockScope,
mockDomainObject1,
mockDomainObject2,
controller;
beforeEach(function () {
mockScope = jasmine.createSpyObj(
"$scope",
[ "$watch" ]
);
mockDomainObject1 = jasmine.createSpyObj(
"domainObject",
[ "getId" ]
);
mockDomainObject1.getId.andReturn("1");
mockDomainObject2 = jasmine.createSpyObj(
"domainObject",
[ "getId" ]
);
mockDomainObject2.getId.andReturn("2");
mockScope.ngModel = {};
mockScope.ngModel.selectedObject = mockDomainObject1;
mockScope.domainObject = mockDomainObject1;
controller = new SearchItemController(mockScope);
});
it("keeps track of object selection", function () {
expect(controller.isSelected()).toBeTruthy();
mockScope.ngModel.selectedObject = mockDomainObject2;
expect(mockScope.$watch).toHaveBeenCalled();
mockScope.$watch.mostRecentCall.args[1](mockDomainObject2);
expect(controller.isSelected()).toBeFalsy();
});
});
}
);

View File

@ -1,7 +1,6 @@
[
"controllers/SearchController",
"controllers/SearchMenuController",
"controllers/SearchItemController",
"controllers/ClickAwayController",
"services/SearchAggregator",
"services/GenericSearchProvider",