diff --git a/platform/commonUI/browse/res/templates/browse.html b/platform/commonUI/browse/res/templates/browse.html index ab3331565b..43c74d0241 100644 --- a/platform/commonUI/browse/res/templates/browse.html +++ b/platform/commonUI/browse/res/templates/browse.html @@ -20,49 +20,29 @@ at runtime from the About dialog for additional information. --> -
- - - - -
- -
- -
+
+ +
+ +
+ + +
- - -
- - - - -
-
- + +
+
+
-
-
@@ -70,4 +50,3 @@
- diff --git a/platform/commonUI/browse/src/BrowseController.js b/platform/commonUI/browse/src/BrowseController.js index 3ec38057fc..b10079a4e8 100644 --- a/platform/commonUI/browse/src/BrowseController.js +++ b/platform/commonUI/browse/src/BrowseController.js @@ -140,7 +140,14 @@ define( $scope.treeModel = { selectedObject: navigationService.getNavigation() }; - + + /* + // Provide a model for the left pane + $scope.paneModel = { + selectedObject: navigationService.getNavigation() + }; + */ + // Listen for changes in navigation state. navigationService.addListener(setNavigation); diff --git a/platform/commonUI/browse/test/BrowseControllerSpec.js b/platform/commonUI/browse/test/BrowseControllerSpec.js index 722b7b4132..ce9296c239 100644 --- a/platform/commonUI/browse/test/BrowseControllerSpec.js +++ b/platform/commonUI/browse/test/BrowseControllerSpec.js @@ -39,9 +39,6 @@ define( mockUrlService, mockDomainObject, mockNextObject, - mockParentContext, - mockParent, - mockGrandparent, controller; function mockPromise(value) { @@ -55,7 +52,7 @@ define( beforeEach(function () { mockScope = jasmine.createSpyObj( "$scope", - [ "$on", "$watch", "treeSlide", "backArrow" ] + [ "$on", "$watch" ] ); mockRoute = { current: { params: {} } }; mockLocation = jasmine.createSpyObj( @@ -91,17 +88,6 @@ define( "nextObject", [ "getId", "getCapability", "getModel", "useCapability" ] ); - - - mockParentContext = jasmine.createSpyObj('context', ['getParent']); - mockParent = jasmine.createSpyObj( - "domainObject", - [ "getId", "getCapability", "getModel", "useCapability" ] - ); - mockGrandparent = jasmine.createSpyObj( - "domainObject", - [ "getId", "getCapability", "getModel", "useCapability" ] - ); mockObjectService.getObjects.andReturn(mockPromise({ ROOT: mockRootObject @@ -159,13 +145,6 @@ define( ); expect(mockScope.navigatedObject).toEqual(mockDomainObject); }); - - // Mocks the tree slide call that - // lets the html code know if the - // tree menu is open. - it("calls the treeSlide function", function () { - mockScope.treeSlide(); - }); it("releases its navigation listener when its scope is destroyed", function () { expect(mockScope.$on).toHaveBeenCalledWith( @@ -258,104 +237,7 @@ define( mockUrlService.urlForLocation(mockMode, mockNextObject) ); }); - - it("checks if the user is current navigated to the root", function () { - var mockContext = jasmine.createSpyObj('context', ['getParent']); - - mockRoute.current.params.ids = "ROOT/mine"; - mockParent.getId.andReturn("ROOT"); - - mockDomainObject.getCapability.andCallFake(function (c) { - return c === 'context' && mockContext; - }); - - mockNavigationService.getNavigation.andReturn(mockDomainObject); - mockContext.getParent.andReturn(mockParent); - mockParent.getCapability.andCallFake(function (c) { - return c === 'context' && mockParentContext; - }); - mockParentContext.getParent.andReturn(mockGrandparent); - - controller = new BrowseController( - mockScope, - mockRoute, - mockLocation, - mockObjectService, - mockNavigationService - ); - - mockScope.checkRoot(); - - mockRoute.current.params.ids = "mine/junk"; - mockParent.getId.andReturn("mine"); - - controller = new BrowseController( - mockScope, - mockRoute, - mockLocation, - mockObjectService, - mockNavigationService - ); - - mockScope.checkRoot(); - }); - - // Mocks the back arrow call that - // lets the html code know the back - // arrow navigation needs to be done - it("calls the backArrow function", function () { - var mockContext = jasmine.createSpyObj('context', ['getParent']); - - mockRoute.current.params.ids = "mine/junk"; - mockParent.getId.andReturn("mine"); - - mockDomainObject.getCapability.andCallFake(function (c) { - return c === 'context' && mockContext; - }); - - mockNavigationService.getNavigation.andReturn(mockDomainObject); - mockContext.getParent.andReturn(mockParent); - mockParent.getCapability.andCallFake(function (c) { - return c === 'context' && mockParentContext; - }); - mockParentContext.getParent.andReturn(mockGrandparent); - - controller = new BrowseController( - mockScope, - mockRoute, - mockLocation, - mockObjectService, - mockNavigationService - ); - - mockScope.backArrow(); - - mockRoute.current.params.ids = "mine/lessjunk/morejunk"; - mockGrandparent.getId.andReturn("mine"); - - controller = new BrowseController( - mockScope, - mockRoute, - mockLocation, - mockObjectService, - mockNavigationService - ); - - mockScope.backArrow(); - - mockRoute.current.params.ids = "ROOT/mine"; - mockParent.getId.andReturn("ROOT"); - - controller = new BrowseController( - mockScope, - mockRoute, - mockLocation, - mockObjectService, - mockNavigationService - ); - - mockScope.backArrow(); - }); + }); } ); diff --git a/platform/commonUI/general/res/sass/mobile/_layout.scss b/platform/commonUI/general/res/sass/mobile/_layout.scss deleted file mode 100644 index 3f4fc062d3..0000000000 --- a/platform/commonUI/general/res/sass/mobile/_layout.scss +++ /dev/null @@ -1,222 +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. - *****************************************************************************/ - -// Wrapper of the entire 2 panes, only enacted on -// phone and tablet. Also for the panes - -.browse-wrapper, -.mobile-pane { - @include phoneandtablet { - position: absolute; - left: 0; top: 0; - right: 0; - white-space: nowrap; - } -} - -// Default views of the panels -// if in desktop browser -.desktop-browse { - @include desktop { - min-width: 150px; - max-width: 800px; - width: $desktopMenuSize; - } -} - -// When the tree is hidden, these are the -// classes used for the left menu and the -// right representation. -.browse-hidetree { - // NOTE: DISABLED SELECTION - // Selection disabled in both panes - // causing cut/copy/paste menu to - // not appear. Should me moved in - // future to properly work - @include phoneandtablet { - @include user-select(none); - } - // Sets the left tree menu when the tree - // is hidden. - .mobile-pane.left-menu { - @include phoneandtablet { - @include trans-prop-nice(opacity, .4s); - opacity: 0; - right: 100% !important; - width: auto !important; - overflow-y: hidden; - overflow-x: hidden; - } - } - - // Sets the right represenation when - // the tree is hidden. - .mobile-pane.right-repr { - @include phoneandtablet { - @include slMenuTransitions; - left: auto !important; - width: 100% !important; - } - } -} - -.mobile-tree-holder { - top: 30px; -} - -// When the tree is shown, these are -// the classes used for the left menu -// and the right menu (for each device & -// orientation combination, separate -// parameters are used) -.browse-showtree { - // NOTE: DISABLED SELECTION - // Selection disabled in both panes - // causing cut/copy/paste menu to - // not appear. Should me moved in - // future to properly work - @include phoneandtablet { - @include user-select(none); - } - // Sets the left tree menu when the tree - // is shown. - .mobile-pane.left-menu { - @include phoneandtablet { - @include trans-prop-nice(opacity, .4s); - opacity: 1; - display: block !important; - width: auto !important; - } - // On both phones and tablets, the amount of - // space allowed for the right pane is specified - @include phonePortrait { - right: $phoneRepSizePortrait !important; - } - @include phoneLandscape { - right: $phoneRepSizeLandscape !important; - } - @include tabletPortrait { - right: $tabletRepSizePortrait !important; - } - @include tabletLandscape { - right: $tabletRepSizeLandscape !important; - } - } - // Sets the right represenation when - // the tree is shown. - .mobile-pane.right-repr { - @include phoneandtablet { - @include slMenuTransitions; - left: auto !important; - } - // On both phones and tablets, the width of - // the right pane is specified - @include phonePortrait { - width: $phoneRepSizePortrait !important; - } - @include phoneLandscape { - width: $phoneRepSizeLandscape !important; - } - @include tabletPortrait { - width: $tabletRepSizePortrait !important; - } - @include tabletLandscape { - width: $tabletRepSizeLandscape !important; - } - } -} - -// Button position is set as absolute with transitions -.button-pos { - @include phoneandtablet { - position: absolute; - } -} - -// Object header must be moved -// over to make space for the -// hamburger icon -.object-header { - @include phoneandtablet { - position: relative; - left: 44px; - .label { - .context-available { - opacity: 1 !important; - } - } - } -} - -.desktop-hide { - @include desktop { - display: none; - } -} - -// Hides objects on phone and tablet -.mobile-hide { - @include phoneandtablet { - display: none; - } -} - -.mobile-important-hide { - @include phoneandtablet { - display: none !important; - } -} - -.mobile-back-hide { - @include phoneandtablet { - pointer-events: none; - @include trans-prop-nice(opacity, .4s); - opacity: 0; - } -} - -// Hides objects on phone and tablet -.mobile-back-unhide { - @include phoneandtablet { - pointer-events: all; - @include trans-prop-nice(opacity, .4s); - opacity: 1; - } -} - -// Hides objects only on the phone -.phone-hide { - @include phone { - display: none; - } -} - -.tree-holder { - @include phoneandtablet { - overflow-x: hidden !important; - } -} -.mobile-disable-select { - @include phoneandtablet { - @include user-select(none); - } -}