From ebcc79c304a5526f5ca6a6d61b7796d8be05428c Mon Sep 17 00:00:00 2001 From: Dmitriyff Date: Mon, 8 Feb 2016 16:05:48 +0700 Subject: [PATCH] IGNITE-2562 fixed bs-affix behavior --- .../control-center-web/src/main/js/.eslintrc | 2 +- .../bs-affix-update.directive.js | 34 +++++++++++++++++++ .../src/main/js/app/index.js | 2 ++ .../src/main/js/public/stylesheets/style.scss | 4 +++ .../main/js/views/configuration/caches.jade | 1 + .../main/js/views/configuration/clusters.jade | 1 + .../main/js/views/configuration/domains.jade | 1 + .../src/main/js/views/configuration/igfs.jade | 1 + .../main/js/views/configuration/summary.jade | 1 + .../src/main/js/views/includes/controls.jade | 2 +- 10 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js diff --git a/modules/control-center-web/src/main/js/.eslintrc b/modules/control-center-web/src/main/js/.eslintrc index 6d377eef06840..b18ff6dfd319f 100644 --- a/modules/control-center-web/src/main/js/.eslintrc +++ b/modules/control-center-web/src/main/js/.eslintrc @@ -156,7 +156,7 @@ rules: no-undefined: 2 no-unneeded-ternary: 2 no-unreachable: 2 - no-unused-expressions: 2 + no-unused-expressions: [2, { allowShortCircuit: true }] no-unused-vars: [2, {"vars": "all", "args": "after-used"}] no-use-before-define: 2 no-useless-call: 2 diff --git a/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js new file mode 100644 index 0000000000000..131089d094fd3 --- /dev/null +++ b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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, aither express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import jQuery from 'jquery'; + +export default ['igniteBsAffixUpdate', ['$window', '$timeout', ($window, $timeout) => { + let update = null; + + const link = ({$last}) => { + if ($last) { + update && $timeout.cancel(update); + update = $timeout(() => jQuery($window).trigger('resize'), 1000); + } + }; + + return { + restrict: 'A', + link + }; +}]]; diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js index 4f80de8ba608d..ef7820bf6ff51 100644 --- a/modules/control-center-web/src/main/js/app/index.js +++ b/modules/control-center-web/src/main/js/app/index.js @@ -91,6 +91,7 @@ import igniteUiAcePom from './directives/ui-ace-pom/ui-ace-pom.directive'; import igniteUiAceDocker from './directives/ui-ace-docker/ui-ace-docker.directive'; import igniteUiAcePojos from './directives/ui-ace-pojos/ui-ace-pojos.directive'; import igniteFormFieldJavaClass from './directives/form-field-java-class/form-field-java-class.directive'; +import igniteBsAffixUpdate from './directives/bs-affix-update/bs-affix-update.directive'; // Services. import cleanup from './services/cleanup/cleanup.service'; @@ -142,6 +143,7 @@ angular .directive(...igniteUiAceDocker) .directive(...igniteUiAcePojos) .directive(...igniteFormFieldJavaClass) +.directive(...igniteBsAffixUpdate) // Services. .service(...cleanup) .service(...GeneratorXml) diff --git a/modules/control-center-web/src/main/js/public/stylesheets/style.scss b/modules/control-center-web/src/main/js/public/stylesheets/style.scss index a1c43476b078b..18457080506d7 100644 --- a/modules/control-center-web/src/main/js/public/stylesheets/style.scss +++ b/modules/control-center-web/src/main/js/public/stylesheets/style.scss @@ -948,6 +948,10 @@ button.form-control { } } +.affix + .bs-affix-fix { + height: 78px; +} + .panel-details { margin-top: 5px; padding: 5px; diff --git a/modules/control-center-web/src/main/js/views/configuration/caches.jade b/modules/control-center-web/src/main/js/views/configuration/caches.jade index 518d90ad276f0..ba07ad9163512 100644 --- a/modules/control-center-web/src/main/js/views/configuration/caches.jade +++ b/modules/control-center-web/src/main/js/views/configuration/caches.jade @@ -30,6 +30,7 @@ include ../includes/infos button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cache +save-remove-buttons('cache') hr + .bs-affix-fix form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate) .panel-group(bs-collapse ng-model='ui.activePanels' data-allow-multiple='true') +groups('general', 'backupItem') diff --git a/modules/control-center-web/src/main/js/views/configuration/clusters.jade b/modules/control-center-web/src/main/js/views/configuration/clusters.jade index 01ea9477200fa..e5a3a07514653 100644 --- a/modules/control-center-web/src/main/js/views/configuration/clusters.jade +++ b/modules/control-center-web/src/main/js/views/configuration/clusters.jade @@ -48,6 +48,7 @@ include ../includes/infos .panel-tip-container(ng-show='backupItem') i.btn.btn-primary.fa.fa-undo(id='undo-item' ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && resetAll()' bs-tooltip=undoTip data-placement='bottom' data-trigger='hover') hr + .bs-affix-fix div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels') form.form-horizontal(name='ui.inputForm' ng-show='backupItem' novalidate) .panel-group(ng-click='triggerDigest = true') diff --git a/modules/control-center-web/src/main/js/views/configuration/domains.jade b/modules/control-center-web/src/main/js/views/configuration/domains.jade index 7a43c06b53d06..395ead150f44e 100644 --- a/modules/control-center-web/src/main/js/views/configuration/domains.jade +++ b/modules/control-center-web/src/main/js/views/configuration/domains.jade @@ -59,6 +59,7 @@ include ../includes/infos button.btn.dropdown-toggle.btn-info(id='remove-demo-dropdown' ng-if='hasDemoItems()' data-toggle='dropdown' data-container='body' bs-dropdown='removeDemoDropdown' data-placement='bottom-right') span.caret hr + .bs-affix-fix form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow((displayedRows | domainsValidation:ui.showValid:true), selectedItem)' novalidate) .panel-group(bs-collapse ng-model='ui.activePanels' data-allow-multiple='true') +groups('domainModel', 'backupItem') diff --git a/modules/control-center-web/src/main/js/views/configuration/igfs.jade b/modules/control-center-web/src/main/js/views/configuration/igfs.jade index 7398d45259248..1bbff08700128 100644 --- a/modules/control-center-web/src/main/js/views/configuration/igfs.jade +++ b/modules/control-center-web/src/main/js/views/configuration/igfs.jade @@ -29,6 +29,7 @@ include ../includes/infos button.btn.btn-primary(id='new-item' ng-click='createItem()') Add IGFS +save-remove-buttons('IGFS') hr + .bs-affix-fix form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate) .panel-group(bs-collapse ng-model='ui.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true') +groups('general', 'backupItem') diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade index 59f275cd6d607..e280f2b4ffd39 100644 --- a/modules/control-center-web/src/main/js/views/configuration/summary.jade +++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade @@ -44,6 +44,7 @@ mixin ignite-form-field-tooltip(message) label.tipLabel Project structure button.btn.btn-primary(id='proprietary-jdbc-drivers' ng-if='downloadJdbcDriversVisible()' ng-click='downloadJdbcDrivers()' bs-tooltip='' data-title='Open proprietary JDBC drivers download pages' data-placement='bottom') Download JDBC drivers hr + .bs-affix-fix .panel-group(bs-collapse ng-init='ui.activePanels=[0,1]' ng-model='ui.activePanels' data-allow-multiple='true') .panel.panel-default .panel-heading(role='tab' bs-collapse-toggle) diff --git a/modules/control-center-web/src/main/js/views/includes/controls.jade b/modules/control-center-web/src/main/js/views/includes/controls.jade index 7ce0b5debb1b8..f08c9dd92a94d 100644 --- a/modules/control-center-web/src/main/js/views/includes/controls.jade +++ b/modules/control-center-web/src/main/js/views/includes/controls.jade @@ -536,7 +536,7 @@ mixin main-table(title, rows, focusId, click, rowTemplate, searchField) .scrollable-y(ng-show='displayedRows.length > 0' style='max-height: 200px') table tbody - tr(ng-repeat='row in displayedRows track by row._id') + tr(ng-repeat='row in displayedRows track by row._id' ignite-bs-affix-update) td a(ng-class='{active: row._id == selectedItem._id}' on-click-focus=focusId ng-click=click) #{rowTemplate} label.placeholder(ng-show='displayedRows.length == 0') No #{rows} found