1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-07 06:45:23 +02:00

refactor(kube/registries): migrate access table to react [EE-4706] (#10688)

This commit is contained in:
Chaim Lev-Ari 2024-04-08 17:23:12 +03:00 committed by GitHub
parent f584bf3830
commit a00cb951bc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 74 additions and 142 deletions

View file

@ -1,20 +0,0 @@
import angular from 'angular';
// import controller from './strings-datatable.controller.js';
export const stringsDatatable = {
templateUrl: './strings-datatable.html',
controller: 'GenericDatatableController',
bindings: {
titleText: '@',
titleIcon: '@',
dataset: '<',
emptyDatasetMessage: '@',
columnHeader: '@',
tableKey: '@',
onRemove: '<',
},
};
angular.module('portainer.app').component('stringsDatatable', stringsDatatable);

View file

@ -1,83 +0,0 @@
<div class="datatable">
<rd-widget>
<div class="toolBar vertical-center relative w-full flex-wrap !gap-x-5 !gap-y-1">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'"></pr-icon>
<input
type="text"
class="searchInput"
ng-model="$ctrl.state.textFilter"
ng-change="$ctrl.onTextFilterChange()"
placeholder="Search..."
ng-model-options="{ debounce: 300 }"
/>
</div>
<div class="actionBar">
<button
type="button"
class="btn btn-sm btn-dangerlight vertical-center"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.onRemove($ctrl.state.selectedItems)"
>
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
</div>
</div>
<rd-widget-body classes="no-padding">
<div class="table-responsive">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
<div class="vertical-center">
<span class="md-checkbox">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
<label for="select_all"></label>
</span>
<table-column-header
col-title="$ctrl.columnHeader"
can-sort="true"
is-sorted="$ctrl.state.orderBy === 'Name'"
is-sorted-desc="$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder"
ng-click="$ctrl.changeOrderBy('Name')"
style="display: inline-block"
></table-column-header>
</div>
</th>
</tr>
</thead>
<tbody>
<tr
dir-paginate="item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit)) track by $index"
ng-class="{ active: $ctrl.state.selectedItems.includes(item) }"
>
<td>
<span class="md-checkbox">
<input
id="select_{{ $index }}"
type="checkbox"
ng-checked="$ctrl.state.selectedItems.includes(item)"
ng-disabled="$ctrl.disableRemove(item)"
ng-click="$ctrl.selectItem(item, $event)"
/>
<label for="select_{{ $index }}"></label>
</span>
{{ item.value }}
</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td class="text-muted text-center">{{ $ctrl.emptyDatasetMessage }}</td>
</tr>
</tbody>
</table>
</div>
</rd-widget-body>
</rd-widget>
</div>