IGNITE-5863 Web Console: Implemented component for showing table totals.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2cbc0491 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2cbc0491 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2cbc0491 Branch: refs/heads/master Commit: 2cbc049172c47a77e2b9dcdbda09161ef54ad102 Parents: a57a851 Author: Dmitriy Shabalin <[email protected]> Authored: Fri Jul 28 18:05:16 2017 +0700 Committer: Andrey Novikov <[email protected]> Committed: Fri Jul 28 18:05:16 2017 +0700 ---------------------------------------------------------------------- modules/web-console/frontend/app/app.js | 2 ++ .../components/grid-item-selected/component.js | 28 +++++++++++++++ .../components/grid-item-selected/controller.js | 38 ++++++++++++++++++++ .../app/components/grid-item-selected/index.js | 24 +++++++++++++ .../components/grid-item-selected/template.pug | 17 +++++++++ .../list-of-registered-users.tpl.pug | 2 +- 6 files changed, 110 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/app.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/app.js b/modules/web-console/frontend/app/app.js index e2d609a..a322ff7 100644 --- a/modules/web-console/frontend/app/app.js +++ b/modules/web-console/frontend/app/app.js @@ -125,6 +125,7 @@ import pageConfigure from './components/page-configure'; import pageConfigureBasic from './components/page-configure-basic'; import pageConfigureAdvanced from './components/page-configure-advanced'; import gridColumnSelector from './components/grid-column-selector'; +import gridItemSelected from './components/grid-item-selected'; import bsSelectMenu from './components/bs-select-menu'; import protectFromBsSelectRender from './components/protect-from-bs-select-render'; @@ -193,6 +194,7 @@ angular.module('ignite-console', [ pageConfigureBasic.name, pageConfigureAdvanced.name, gridColumnSelector.name, + gridItemSelected.name, bsSelectMenu.name, protectFromBsSelectRender.name, AngularStrapTooltip.name, http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/components/grid-item-selected/component.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/grid-item-selected/component.js b/modules/web-console/frontend/app/components/grid-item-selected/component.js new file mode 100644 index 0000000..d25ad74 --- /dev/null +++ b/modules/web-console/frontend/app/components/grid-item-selected/component.js @@ -0,0 +1,28 @@ +/* + * 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, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import template from './template.pug'; +import controller from './controller.js'; + +export default { + template, + controller, + transclude: true, + bindings: { + gridApi: '<' + } +}; http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/components/grid-item-selected/controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/grid-item-selected/controller.js b/modules/web-console/frontend/app/components/grid-item-selected/controller.js new file mode 100644 index 0000000..4923924 --- /dev/null +++ b/modules/web-console/frontend/app/components/grid-item-selected/controller.js @@ -0,0 +1,38 @@ +/* + * 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, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default class { + static $inject = ['$scope', 'uiGridConstants']; + + constructor($scope, uiGridConstants) { + Object.assign(this, {$scope, uiGridConstants}); + } + + $onChanges(changes) { + if (changes && 'gridApi' in changes && changes.gridApi.currentValue) { + this.applyValues(); + + this.gridApi.grid.registerDataChangeCallback(() => this.applyValues(), [this.uiGridConstants.dataChange.ROW]); + this.gridApi.selection.on.rowSelectionChanged(this.$scope, () => this.applyValues()); + } + } + + applyValues() { + this.selected = this.gridApi.selection.getSelectedRows().length; + this.count = this.gridApi.grid.rows.length; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/components/grid-item-selected/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/grid-item-selected/index.js b/modules/web-console/frontend/app/components/grid-item-selected/index.js new file mode 100644 index 0000000..583d871 --- /dev/null +++ b/modules/web-console/frontend/app/components/grid-item-selected/index.js @@ -0,0 +1,24 @@ +/* + * 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, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import angular from 'angular'; + +import component from './component'; + +export default angular + .module('ignite-console.grid-item-selected', []) + .component('gridItemSelected', component); http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/components/grid-item-selected/template.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/grid-item-selected/template.pug b/modules/web-console/frontend/app/components/grid-item-selected/template.pug new file mode 100644 index 0000000..eca079e --- /dev/null +++ b/modules/web-console/frontend/app/components/grid-item-selected/template.pug @@ -0,0 +1,17 @@ +//- + 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, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +i {{ $ctrl.selected }} of {{ $ctrl.count }} selected http://git-wip-us.apache.org/repos/asf/ignite/blob/2cbc0491/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug index 3558ab5..68530a5 100644 --- a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug +++ b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug @@ -61,7 +61,7 @@ include /app/helpers/jade/mixins span(ng-if='$ctrl.groupBy === "country"') List of registered countries grid-column-selector(grid-api='$ctrl.gridApi') .panel-selected(ng-show='$ctrl.selected.length') - | {{ $ctrl.selected.length }} item{{ $ctrl.selected.length > 1 ? 's' : '' }} selected + grid-item-selected(grid-api='$ctrl.gridApi') .panel-collapse .grid.ui-grid--ignite.ui-grid-disabled-group-selection(ui-grid='$ctrl.gridOptions' ui-grid-resize-columns ui-grid-selection ui-grid-exporter ui-grid-pinning ui-grid-grouping)
