Improve refresh button on applications tiles view (#2053)

This commit is contained in:
Alexander Matyushentsev 2019-07-30 13:50:45 -07:00 committed by GitHub
parent d6b97c93f5
commit 4a00634ac1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View file

@ -19,7 +19,8 @@ import { ApplicationTiles } from './applications-tiles';
require('./applications-list.scss');
const APP_FIELDS = ['metadata.name', 'metadata.resourceVersion', 'metadata.creationTimestamp', 'spec', 'status.sync.status', 'status.health', 'status.summary'];
const APP_FIELDS = [
'metadata.name', 'metadata.annotations', 'metadata.resourceVersion', 'metadata.creationTimestamp', 'spec', 'status.sync.status', 'status.health', 'status.summary'];
const APP_LIST_FIELDS = APP_FIELDS.map((field) => `items.${field}`);
const APP_WATCH_FIELDS = ['result.type', ...APP_FIELDS.map((field) => `result.application.${field}`)];

View file

@ -1,4 +1,5 @@
import { Tooltip } from 'argo-ui';
import * as classNames from 'classnames';
import * as React from 'react';
import { Consumer } from '../../../shared/context';
@ -78,11 +79,12 @@ export const ApplicationTiles = ({applications, syncApplication, refreshApplicat
syncApplication(app.metadata.name);
}}><i className='fa fa-sync'/> Sync</a>
&nbsp;
<a className='argo-button argo-button--base'
<a className='argo-button argo-button--base' {...AppUtils.refreshLinkAttrs(app)}
onClick={(e) => {
e.stopPropagation();
refreshApplication(app.metadata.name);
}}><i className='fa fa-redo'/> Refresh</a>
}}><i className={classNames('fa fa-redo', { 'status-icon--spin': AppUtils.isAppRefreshing(app) })}/> <span className='show-for-xlarge'>
Refresh</span></a>
&nbsp;
<a className='argo-button argo-button--base' onClick={(e) => {
e.stopPropagation();

View file

@ -350,3 +350,11 @@ export function getAppOverridesCount(app: appModels.Application) {
}
return 0;
}
export function isAppRefreshing(app: appModels.Application) {
return !!(app.metadata.annotations && app.metadata.annotations[appModels.AnnotationRefreshKey]);
}
export function refreshLinkAttrs(app: appModels.Application) {
return { disabled: isAppRefreshing(app) };
}