mirror of
https://github.com/ansible/awx.git
synced 2026-03-04 10:11:05 -03:30
Merge pull request #2486 from mabashian/refresh-button-audit
Tweaked refresh buttons on the dashboard/job page/portal mode
This commit is contained in:
@@ -102,6 +102,11 @@
|
|||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Form-tabs {
|
||||||
|
flex: 1 0 auto;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
.Form-tab {
|
.Form-tab {
|
||||||
color: @btn-txt;
|
color: @btn-txt;
|
||||||
background-color: @btn-bg;
|
background-color: @btn-bg;
|
||||||
@@ -163,6 +168,10 @@
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Form-tabActions {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
.Form-formGroup {
|
.Form-formGroup {
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|||||||
@@ -241,7 +241,8 @@ var tower = angular.module('Tower', [
|
|||||||
controller: Home,
|
controller: Home,
|
||||||
params: {licenseMissing: null},
|
params: {licenseMissing: null},
|
||||||
data: {
|
data: {
|
||||||
activityStream: true
|
activityStream: true,
|
||||||
|
refreshButton: true
|
||||||
},
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: "DASHBOARD"
|
label: "DASHBOARD"
|
||||||
|
|||||||
@@ -18,9 +18,12 @@
|
|||||||
.BreadCrumb.is-loggedOut {
|
.BreadCrumb.is-loggedOut {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
.BreadCrumb-menuLinkHolder {
|
||||||
|
display: flex;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
.BreadCrumb-menuLink {
|
.BreadCrumb-menuLink {
|
||||||
width: 58px;
|
width: 58px;
|
||||||
margin-left: auto;
|
|
||||||
color: @bc-link-icon;
|
color: @bc-link-icon;
|
||||||
flex: initial;
|
flex: initial;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -9,8 +9,13 @@ export default
|
|||||||
var streamConfig = {};
|
var streamConfig = {};
|
||||||
|
|
||||||
scope.showActivityStreamButton = false;
|
scope.showActivityStreamButton = false;
|
||||||
|
scope.showRefreshButton = false;
|
||||||
scope.loadingLicense = true;
|
scope.loadingLicense = true;
|
||||||
|
|
||||||
|
scope.refresh = function() {
|
||||||
|
$state.go($state.current, {}, {reload: true});
|
||||||
|
};
|
||||||
|
|
||||||
scope.toggleActivityStream = function() {
|
scope.toggleActivityStream = function() {
|
||||||
|
|
||||||
// If the user is not already on the activity stream then they want to navigate to it
|
// If the user is not already on the activity stream then they want to navigate to it
|
||||||
@@ -79,6 +84,8 @@ export default
|
|||||||
scope.showActivityStreamButton = false;
|
scope.showActivityStreamButton = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scope.showRefreshButton = (streamConfig && streamConfig.refreshButton) ? true : false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// scope.$on('featuresLoaded', function(){
|
// scope.$on('featuresLoaded', function(){
|
||||||
|
|||||||
@@ -1,18 +1,33 @@
|
|||||||
<div id="bread_crumb" class="BreadCrumb" ng-class="{'is-loggedOut' : !current_user || !current_user.username}">
|
<div id="bread_crumb" class="BreadCrumb" ng-class="{'is-loggedOut' : !current_user || !current_user.username}">
|
||||||
<div ng-hide="licenseMissing" ncy-breadcrumb></div>
|
<div ng-hide="licenseMissing" ncy-breadcrumb></div>
|
||||||
<div class="BreadCrumb-menuLink"
|
<div class="BreadCrumb-menuLinkHolder">
|
||||||
id="bread_crumb_activity_stream"
|
<div class="BreadCrumb-menuLink"
|
||||||
aw-tool-tip="{{activityStreamTooltip}}"
|
id="bread_crumb_refresh"
|
||||||
data-tip-watch="activityStreamTooltip"
|
aw-tool-tip="Refresh the page"
|
||||||
data-placement="left"
|
data-placement="left"
|
||||||
data-trigger="hover"
|
data-trigger="hover"
|
||||||
data-container="body"
|
data-container="body"
|
||||||
ng-class="{'BreadCrumb-menuLinkActive' : activityStreamActive}"
|
ng-hide= "loadingLicense || licenseMissing"
|
||||||
ng-if="showActivityStreamButton"
|
ng-if="socketStatus === 'error' && showRefreshButton"
|
||||||
ng-hide= "loadingLicense || licenseMissing"
|
ng-click="refresh()">
|
||||||
ng-click="toggleActivityStream()">
|
<i class="BreadCrumb-menuLinkImage fa fa-refresh"
|
||||||
<i class="BreadCrumb-menuLinkImage icon-activity-stream"
|
alt="Refresh the page">
|
||||||
alt="Activity Stream">
|
</i>
|
||||||
</i>
|
</div>
|
||||||
|
<div class="BreadCrumb-menuLink"
|
||||||
|
id="bread_crumb_activity_stream"
|
||||||
|
aw-tool-tip="{{activityStreamTooltip}}"
|
||||||
|
data-tip-watch="activityStreamTooltip"
|
||||||
|
data-placement="left"
|
||||||
|
data-trigger="hover"
|
||||||
|
data-container="body"
|
||||||
|
ng-class="{'BreadCrumb-menuLinkActive' : activityStreamActive}"
|
||||||
|
ng-if="showActivityStreamButton"
|
||||||
|
ng-hide= "loadingLicense || licenseMissing"
|
||||||
|
ng-click="toggleActivityStream()">
|
||||||
|
<i class="BreadCrumb-menuLinkImage icon-activity-stream"
|
||||||
|
alt="Activity Stream">
|
||||||
|
</i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Dashboard-counts {
|
.Dashboard-counts {
|
||||||
|
|||||||
@@ -1,25 +1,6 @@
|
|||||||
|
|
||||||
<div class="tab-pane" id="home">
|
<div class="tab-pane" id="home">
|
||||||
<div ng-cloak id="htmlTemplate">
|
<div ng-cloak id="htmlTemplate">
|
||||||
<div id="refresh-row" class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div id="home-list-actions" class="list-actions pull-right">
|
|
||||||
<button
|
|
||||||
toolbar-button
|
|
||||||
mode="all"
|
|
||||||
aw-tool-tip="Refresh the page"
|
|
||||||
ng-click="refresh()"
|
|
||||||
ng-show="socketStatus == 'error'"
|
|
||||||
icon-name="refresh"
|
|
||||||
toolbar="true">
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<dashboard></dashboard>
|
<dashboard></dashboard>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<!--
|
|
||||||
<div ng-include="'/static/partials/logviewer.html'"></div>
|
|
||||||
-->
|
|
||||||
|
|||||||
@@ -1,26 +1,24 @@
|
|||||||
<div class="tab-pane" id="jobs-page">
|
<div class="tab-pane" id="jobs-page">
|
||||||
<div ng-cloak id="htmlTemplate" class="Panel">
|
<div ng-cloak id="htmlTemplate" class="Panel">
|
||||||
|
|
||||||
<div id="refresh-row" class="row" ng-show="socketStatus == 'error'">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div id="home-list-actions" class="list-actions pull-right">
|
|
||||||
<button type="button" class="btn btn-xs btn-primary" ng-click="refreshJobs()" id="refresh_btn" aw-tool-tip="Refresh the page" data-placement="top"
|
|
||||||
data-original-title="" title=""><i class="fa fa-refresh fa-lg"></i></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div id="jobs_tabs" class="Form-tabHolder">
|
<div id="jobs_tabs" class="Form-tabHolder">
|
||||||
<div class= "Form-tab is-selected" id="active_jobs_link"
|
<div class="Form-tabs">
|
||||||
ng-class="{'is-selected': jobsSelected }"
|
<div class= "Form-tab is-selected" id="active_jobs_link"
|
||||||
ng-click="toggleTab('jobs')">
|
ng-class="{'is-selected': jobsSelected }"
|
||||||
Jobs
|
ng-click="toggleTab('jobs')">
|
||||||
|
Jobs
|
||||||
|
</div>
|
||||||
|
<div id="scheduled_jobs_link" class="Form-tab"
|
||||||
|
ng-class="{'is-selected': schedulesSelected }"
|
||||||
|
ng-click="toggleTab('scheduled')">
|
||||||
|
Schedules
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="scheduled_jobs_link" class="Form-tab"
|
<div class="Form-tabActions">
|
||||||
ng-class="{'is-selected': schedulesSelected }"
|
<button id="refresh_btn" ng-show="socketStatus === 'error'" aw-tool-tip="Refresh the page" data-placement="top" class="btn List-buttonDefault" ng-click="refreshJobs()" toolbar="true">
|
||||||
ng-click="toggleTab('scheduled')">
|
<span>REFRESH</span>
|
||||||
Schedules
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="jobs-tab-content" class="Form-tabSection"
|
<div id="jobs-tab-content" class="Form-tabSection"
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ export function PortalModeJobsController($scope, $rootScope, GetBasePath, Genera
|
|||||||
init();
|
init();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.refresh = function(){
|
||||||
|
$scope.search(list.iterator);
|
||||||
|
};
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,18 @@
|
|||||||
<div id="portal-container-jobs" class="Panel">
|
<div id="portal-container-jobs" class="Panel">
|
||||||
<div class="btn-group PortalMode-filter">
|
<div class="PortalMode-filterHolder">
|
||||||
<button ng-class="{'btn-primary ': activeFilter == 'user',
|
<div class="btn-group PortalMode-filter">
|
||||||
'btn-default' : activeFilter != 'user' }"
|
<button ng-class="{'btn-primary ': activeFilter == 'user',
|
||||||
ng-click='filterUser()' class="btn btn-xs">My Jobs</button>
|
'btn-default' : activeFilter != 'user' }"
|
||||||
<button ng-class="{'btn-primary' : activeFilter == 'all',
|
ng-click='filterUser()' class="btn btn-xs">My Jobs</button>
|
||||||
'btn-default' : activeFilter != 'all'}" ng-click='filterAll()' class="btn btn-xs btn-default">All Jobs</button>
|
<button ng-class="{'btn-primary' : activeFilter == 'all',
|
||||||
|
'btn-default' : activeFilter != 'all'}" ng-click='filterAll()' class="btn btn-xs btn-default">All Jobs</button>
|
||||||
|
</div>
|
||||||
|
<div class="PortalMode-refresh">
|
||||||
|
<button id="refresh_btn" aw-tool-tip="Refresh the page" data-placement="top" class="btn List-buttonDefault" ng-click="refresh()" ng-show="socketStatus == 'error'">
|
||||||
|
<span>REFRESH</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="portal-jobs" >
|
<div id="portal-jobs">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,19 +1,5 @@
|
|||||||
<div class="tab-pane PortalMode" >
|
<div class="tab-pane PortalMode" >
|
||||||
<div ng-cloak id="portal-landing">
|
<div ng-cloak id="portal-landing">
|
||||||
<div id="refresh-row" class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div id="portal-list-actions" class="list-actions pull-right">
|
|
||||||
<button
|
|
||||||
toolbar-button
|
|
||||||
icon-name="refresh"
|
|
||||||
ng-click="refresh()"
|
|
||||||
ng-show="socketStatus == 'error'"
|
|
||||||
aw-tool-tip="Refresh the page"
|
|
||||||
toolbar="true">
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="PortalMode-container">
|
<div class="PortalMode-container">
|
||||||
<div ui-view="job-templates" class="PortalMode-panel--left">
|
<div ui-view="job-templates" class="PortalMode-panel--left">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -16,11 +16,17 @@
|
|||||||
.PortalMode-panelHeader{
|
.PortalMode-panelHeader{
|
||||||
.OnePlusOne-panelHeader;
|
.OnePlusOne-panelHeader;
|
||||||
}
|
}
|
||||||
.PortalMode-filter{
|
.PortalMode-filterHolder {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 35px;
|
right: 35px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
.btn.btn-xs {
|
.btn.btn-xs {
|
||||||
padding: 1px 10px;
|
padding: 1px 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.PortalMode-refresh {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user