redhat_access 2.1.4 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55f8a728a636c3a8f403aa5e9bca3c174fe54f68
4
- data.tar.gz: 7a6cdcd3fdcbd92f09ca49665b0995e0de4ce192
3
+ metadata.gz: b40550ccb9ab8dd7207ac2f1461de91a9bcc21fb
4
+ data.tar.gz: d2e8a9934c5831398547a26c34b37af72e2896c9
5
5
  SHA512:
6
- metadata.gz: cb9d353f1f537dd90c44fb158f949925178e8b188cb8aa9951c4bf887828678823cd2e6de68eb02e3d09ce72079ff23ac0c870811821509c52441254c13417a9
7
- data.tar.gz: 126dd4374ad651569adeb4256ecbdacf885cf39acc210c9db1ab9bf44d9f197b7ef0b1f480527e60fb194fce3738c7c7133973f6edb617aff98264896f0af818
6
+ metadata.gz: bf9cb817ea2d79a9915098ab88d1c332dacd4881a78df8120af17351c211c9770e9b1d681bd3c473f3f81cf4fd75ee44dd9d84d35301ba2500e5001c305bcba2
7
+ data.tar.gz: b213adfd567929af07ef778f06844212990a8ffa5ca714bf8eb73897d639b4868f9fa1cecd09af62c222f30bfb1785929d03a27592b8ce6bc6d911226bdb1a46
@@ -1,3 +1,3 @@
1
1
  module RedhatAccess
2
- VERSION = "2.1.4"
2
+ VERSION = "2.1.5"
3
3
  end
@@ -1322,7 +1322,7 @@ var navigationWarning='Do you want to leave this form? Changes you made might no
1322
1322
  var initIncidents=IncidentsService.init();promises.push(initIncidents);var initTopic=Topic.get($stateParams.id,product,'resolution_risk').success(function(topic){if(topic.hidden&&!$scope.isInternal){return notFound();}$scope._topic=topic;topic.rules.forEach(DataUtils.readRule);ActionsBreadcrumbs.init($stateParams);ActionsBreadcrumbs.add({label:topic.title,state:'app.topic',params:{id:$stateParams.id}});PermalinkService.scroll(null,30);$scope.topic=Object.create($scope._topic);}).catch(function(res){if(res.status===404){return notFound();}$scope.errored=true;});promises.push(initTopic);$q.all(promises).finally(function promisesFinally(){$scope.loading=false;});}$scope.search={filters:['description'].map(function(prop){return function(rule,query){return String(get(rule,prop)).toUpperCase().includes(query.toUpperCase());};}),doFilter:function doFilter(query){$scope.loading=true;// refreshes topic and components that reference topic
1323
1323
  $scope.topic=undefined;$scope.topic=Object.create($scope._topic);if(query){$scope.topic.rules=$scope._topic.rules.filter(function(system){return $scope.search.filters.some(function(f){return f(system,query);});});}else{$scope.topic.rules=$scope._topic.rules;}$scope.loading=false;}};$rootScope.$on('reload:data',getData);$scope.$on('group:change',getData);getData();if(InsightsConfig.allowExport){ActionbarService.addExportAction(function(){Export.getReports($stateParams.id);});}}statesModule.controller('TopicRuleListCtrl',TopicRuleListCtrl);},{"../../":227,"lodash/get":496}],240:[function(require,module,exports){'use strict';TopicAdminCtrl.$inject=['$scope','sweetAlert','Topic','$state','Utils'];var statesModule=require('../../');/**
1324
1324
  * @ngInject
1325
- */function TopicAdminCtrl($scope,sweetAlert,Topic,$state,Utils){$scope.loader=new Utils.Loader();var loadData=$scope.loader.bind(function(){return Topic.admin().then(function(resp){$scope.topics=resp.data;});});loadData();$scope.$watchCollection('topics',updateTopicOrder);$scope.newTopic=function(){Topic.create({title:'Unnamed topic'}).then(function(res){$state.go('app.edit-topic',{id:res.data.id});});};function updateTopicOrder(){if(angular.isDefined($scope.topics)){for(var i=0;i<$scope.topics.length;i++){$scope.topics[i].priority=i;}}}$scope.move=function(topic,up){if(topic.priority===0&&up||topic.priority===$scope.topics.length-1&&!up){return;}var otherIndex=(up?-1:1)+topic.priority;var t1=$scope.topics[topic.priority]=$scope.topics[otherIndex];var t2=$scope.topics[otherIndex]=topic;updateTopicOrder();Topic.update({id:t1.id,priority:t1.priority});Topic.update({id:t2.id,priority:t2.priority});};$scope.delete=function(topic){createAlert('Are you sure?','Topic will be lost.','Yes',function(){Topic.remove(topic.id).then(function(){$scope.topics.splice($scope.topics.indexOf(topic),1);});});};function hideInternal(topic,value){Topic.update({id:topic.id,hidden:value}).then(function(){topic.hidden=value;});}$scope.hide=function(topic,value){if(!value){return createAlert('Are you sure?','Publishing this topic makes it visible to customers.','Publish',function(){hideInternal(topic,value);});}hideInternal(topic,value);};function createAlert(title,text,confirmButtonText,cb){sweetAlert({title:title,text:text}).then(cb);}}statesModule.controller('TopicAdminCtrl',TopicAdminCtrl);},{"../../":227}],241:[function(require,module,exports){'use strict';module.exports=angular.module('insights.templates',[]).run(['$templateCache',function($templateCache){$templateCache.put('js/components/accountSelect/accountSelect.html','<div ng-show="showAccountSelector()" class="header-block account-select"><div class="tam"><div class="account-number"><label>Account Number</label><div ng-click="reset()" class="fa fa-home pull-right pointer"></div><div ng-click="accountChange(account_number)" class="fa fa-refresh pull-right tam-icon pointer"></div><input ng-model="account_number" ng-keyup="$event.keyCode == 13 &amp;&amp; accountChange(account_number)" class="accNumbInput"/></div><div class="internal"><input type="checkbox" ng-model="isInternal" ng-change="changeInternal()" id="is-internal" class="action"/><label for="is-internal">Internal</label></div></div></div>');$templateCache.put('js/components/actionbar/actionbar.html','<div class="actionbar"><button ng-repeat="action in myActions" ng-click="action.fn()" class="action btn btn-sm btn-open-blue"><i ng-class="action.icon" class="pointer fa"></i>{{action.title | translate}}</button></div>');$templateCache.put('js/components/actions/actions.html','<div class="chart-container"><span ng-show="loading" class="preloader"></span><div class="donut-container"><div class="donut-hole"><div class="content"><span class="num">{{getTotal()}}</span><div translate="translate" translate-n="getTotal()" translate-plural="Actions" class="text">Action</div></div></div><div class="rha-telemetry-donut"></div><div class="row row-tall"></div><div class="col-sm-10 col-sm-offset-1"><p translate="translate">Use this chart to drill down and discover problems within your organization.</p><hr/><p ng-if="isActions()" translate="translate" translate-n="getTotal()" translate-plural="There are &lt;strong&gt;{{$count}}&lt;/strong&gt; actions detected from systems in your organization." class="light"> \nThere is <strong>1 </strong>action detected from systems in your organization.</p><p ng-if="!isActions()" translate="translate" translate-n="getTotal()" translate-plural="There are &lt;strong&gt;{{$count}}&lt;/strong&gt; {{getCategory()|translate}} actions detected from systems in your organization." class="light"> \nThere is <strong>1</strong>{{getCategory() | translate}} action detected from systems in your organization.</p></div></div></div>');$templateCache.put('js/components/ansibleIcon/ansibleIcon.html','<i tooltip="{{tooltip}}" ng-class="svgClass" class="svg"><img ng-src="{{icon}}" alt="{{tooltip}}"/></i>');$templateCache.put('js/components/betaSwitchButton/betaSwitchButton.html','<div class="beta-switch"><a ng-click="switchVersion(true)" ng-show="!isOnBeta()" class="btn btn-default"><!-- The default "take me to the Beta page" option--><span translate="translate">Try Insights Beta</span></a><a ng-show="isOnBeta() &amp;&amp; !isOptedIn()" ng-click="switchStatus(true)"><!-- in this case we are on Beta, but it is not our default--><span translate="translate">Default to</span><span translate="translate" class="btn btn-blue">Beta</span></a><a ng-click="leaveBeta()" ng-show="isOnBeta() &amp;&amp; isOptedIn()"><!-- in this case the user is on Beta and Opted in... if they click they want to leave the Beta experience--><span translate="translate">Leave</span><span translate="translate" class="btn">Beta</span></a></div>');$templateCache.put('js/components/bullhorn/bullhorn.html','<span dropdown="" on-toggle="toggled(open)" class="dropdown dropdown-notification"><a href="" dropdown-toggle="" class="dropdown-toggle"><i class="fa {{icon}}"></i><span ng-if="unackedCount !== 0" class="count">{{unackedCount}}</span></a><ul class="dropdown-menu preview"><li ng-repeat="item in items" ng-class="{ acked: (item.acked) }" ng-click="item.acked ? selectAnnouncement(item) : ack(item)" class="announcement"><div class="row"><div class="col-sm-12"><b>{{item.title}}</b><div class="message-status-toggle"><i ng-if="item.acked" class="fa fa-check-circle-o acked"></i><i ng-if="!item.acked" class="fa fa-circle-o"></i></div></div></div><div class="row"><div class="col-sm-12"><div class="message">{{item.body.length > 140 ? item.body.substring(0, 140) + \'...\' : item.body.substring(0, item.body.length)}}</div></div></div></li><li ng-if="items.length === 0"><strong translate="translate">You have no announcements</strong></li><li ng-if="items.length !== 0" class="view-all"><a ui-sref="app.announcements" translate="translate" class="btn btn-accent">View All</a></li></ul></span>');$templateCache.put('js/components/card/card.html','<div class="content-block content-block-card"><div ng-click="toggleContent()" ng-if="expandable" class="expandable-toggle hidden-xs"><i class="fa fa-caret-right"></i></div><div ng-transclude="ng-transclude"></div></div>');$templateCache.put('js/components/card/cardContent.html','<div ng-hide="card.expandable &amp;&amp; (card.collapsed || card.loading)" ng-transclude="ng-transclude" class="content"><div ng-show="card.loading" ng-if="card.expandable" class="spinner spinner-xs"></div></div>');$templateCache.put('js/components/card/cardFooter.html','<button ng-click="card.toggleContent()" class="btn btn-accent footer footer-with-toggle visible-xs"><div class="footer-toggle"><i class="fa fa-caret-down"></i></div><div ng-transclude="ng-transclude"></div></button>');$templateCache.put('js/components/card/cardHeader.html','<header class="header"><!-- we do this click wrap junk because angular adds clickable styles to--><!-- an ng-click (hand pointer), and we cant remove the ng-click itself conditionally--><div ng-click="card.toggleContent()" ng-if="$parent.expandable" class="click-wrap"><div ng-transclude="ng-transclude"></div></div><div ng-transclude="ng-transclude" ng-if="!$parent.expandable"></div></header>');$templateCache.put('js/components/categoryIcon/categoryIcon.html','<i ng-class="category.toLowerCase() + \'-category-icon\'" class="fa"></i>');$templateCache.put('js/components/collapsibleFilter/collapsibleFilter.html','<div id="dataFilters" ng-class="{open: open, tags: hasTags()}" class="dataFilters"><div id="dataFiltersBody" class="data-filters-body collapse"><div ng-transclude="ng-transclude"></div></div><div id="activeFilter" ng-show="hasTags()" ng-model="tags" class="active-filters"><div class="flexgrid"><strong translate="translate">Active filters:&nbsp;</strong><!-- remove filter on click--><button ng-repeat="(key, value) in tags" ng-click="removeFilter(key)" class="btn btn-accent"><span translate="translate">{{value | translate}}</span><i aria-hidden="true" class="fa fa-times-circle-o"></i></button></div></div><footer id="dataFiltersControlBar" class="data-filters-control-bar"><div data-toggle="collapse" href="#dataFiltersBody" aria-expanded="false" aria-controls="dataFiltersBody" ng-class="{active: open}" class="toggle"><div class="icon-inline"><i class="fa fa-caret-down"></i><strong>Page Filters</strong><i class="fa fa-caret-down"></i></div></div></footer></div>');$templateCache.put('js/components/collapsibleFilter/collapsibleFilterContent.html','<div class="collpase in"><div class="flexgrid equalheights"><div ng-transclude="ng-transclude"></div></div></div>');$templateCache.put('js/components/demoAccountSwitcher/demoAccountSwitcher.html','<div class="demo-account-switcher"><a ng-show="showDemoSwitcher() &amp;&amp; !demoAccountEnabled" ng-click="toggleDemoAccount()" translate="translate">Enable Demo Account</a><a ng-show="showDemoSwitcher() &amp;&amp; demoAccountEnabled" ng-click="toggleDemoAccount()" translate="translate">Disable Demo Account</a></div>');$templateCache.put('js/components/digest/digestGraph.html','<div class="graph-container"><div ng-if="dropDown" class="graph graph-filters"><div class="row"><div class="col-sm-3 col-sm-offset-9"><div class="dropdown full-width show"><button data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><div translate="translate">{{dropDown}}</div><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="trace in traces" ng-click="$event.stopPropagation()"><label class="checkbox-inline"><input type="checkbox" name="availability" ng-model="trace.enabled" ng-click="toggleTrace(trace)"/><div translate="translate">{{trace.name}}</div></label></li></ul></div></div></div></div><div class="digest-graph"></div></div>');$templateCache.put('js/components/expandAllButton/expandAllButton.html','<a ng-click="onClick()"><strong translate="translate" ng-hide="expand">Collapse All</strong><strong translate="translate" ng-show="expand">Expand All</strong><i ng-class="{\'fa-compress\': !expand, \'fa-expand\': expand}" class="fa inline-left"></i></a>');$templateCache.put('js/components/feedback/feedbackButton.html','<a ng-click="openFeedbackPage()" class="btn"><i aria-hidden="true" class="fa fa-comments"></i><strong translate="translate" class="small">Provide feedback</strong></a>');$templateCache.put('js/components/feedback/feedbackModal.html','<div class="page"><div class="section"><div class="row push-top"><div class="col-sm-12"><!-- This needs form validation--><form name="form"><div class="form-group"><label translate="translate" class="control-label">Page Reported</label><p class="form-control-static">{{ feedbackInfo.fromPage }}</p></div><div class="form-group"><label translate="translate" class="control-label">Email</label><p translate="translate">{{ feedbackInfo.user.email }}&nbsp;<small translate="translate">(to change your Red Hat email address&nbsp;<a translate="translate" href="https://www.redhat.com/wapps/ugc/protected/emailChange.html">click here</a>)</small></p><input ng-if="emailOverride" type="email" ng-model="feedbackInfo.user.email" class="form-control"/></div><div class="form-group"><label translate="translate" class="control-label">Comment</label><textarea type="text" rows="5" ng-model="comment" class="form-control"></textarea></div><div class="pull-right"><small ng-show="isError" translate="translate" class="text-danger">An error occurred. Please try again later.&nbsp;</small><div class="btn-group"><button name="cancel" ng-click="close()" translate="translate" class="btn btn-accent">Cancel</button><button name="submit" ng-click="submitForm()" ng-disabled="!form.$valid || !isCommentPopulated()" translate="translate" class="btn btn-accent">Submit</button></div></div></form></div></div></div></div>');$templateCache.put('js/components/gaugeMarker/gaugeMarker.html','<div style="transform: rotate({{rotate}}deg)" class="pivot"><div class="arm"><div style="transform: rotate(-{{rotate}}deg)" tooltip="{{tooltip}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="marker {{diffClass}}"><div ng-if="difference != 0"><i aria-hidden="true" class="fa fa-caret-up"></i><div class="num">{{difference}}</div><i aria-hidden="true" class="fa fa-caret-down"></i></div></div></div></div>');$templateCache.put('js/components/gettingStartedTabs/gettingStartedTabs.html','<nav class="system-selector"><div class="row"><div class="col-lg-5"><h4 translate="translate">Select your registration method</h4></div><div class="col-lg-7 nomari"><div class="filters"><button ui-sref="info.getting-started.direct" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Direct</button><button ui-sref="info.getting-started.sat5" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Satellite 5</button><button ui-sref="info.getting-started.sat6" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Satellite 6</button><button ui-sref="info.getting-started.cloudforms" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">CloudForms</button><button ui-sref="info.getting-started.rhv" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">RHV</button><button ui-sref="info.getting-started.osp" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Openstack</button><button ui-sref="info.getting-started.containers" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Containers</button></div></div></div></nav>');$templateCache.put('js/components/groupSelect/groupSelect.html','<div class="hidden-in-product group-select"><label><i aria-hidden="true" class="fa fa-globe"></i><span translate="translate">Global filters</span></label><div id="global-filter-dropdown" ng-click="toggleDropdown()" class="dropdown"><button type="button" ng-click="resetFilter();" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" ng-disabled="disabled" class="btn dropdown-toggle"><span ng-show="!disabled &amp;&amp; !isGroupSelected() &amp;&amp; !groups.length" translate="translate" class="text">Group select</span><span ng-show="disabled || (!isGroupSelected() &amp;&amp; groups.length)" translate="translate" class="text">All Systems</span><b ng-show="isGroupSelected() &amp;&amp; !disabled" class="text active">{{group.display_name}}</b><span class="caret"></span></button><ul role="menu" class="dropdown-menu"><li><search-box on-search="searchGroups(model)" ng-click="$event.stopPropagation();" ng-keyup="keypress($event)" placeholder="{{\'Find A Group\' | translate}}"></search-box></li><li ng-show="showAllSystems()"><a href="javascript:void(0)" ng-click="triggerChange(null)" translate="translate" class="link">- Show all systems -</a></li><li ng-repeat="g in groups | filter:hideSelectedGroup | orderBy:&quot;display_name&quot; track by g.id" class="system-group"><a href="javascript:void(0)" ng-click="triggerChange(g);" class="icon-inline-right"><trimmed-text length="20" text="{{g.display_name}}"></trimmed-text>&nbsp;({{g.systems.length}})<i ng-click="deleteGroup(g); $event.stopPropagation();" tooltip="{{\'Delete group\' | translate}}" class="fa fa-trash-o group-control"></i></a></li></ul></div><a ng-click="createGroup()" tooltip="{{&quot;Create new system group&quot; | translate}}" class="add-group"><i aria-hidden="true" class="fa fa-plus-circle pad-left"></i></a></div>');$templateCache.put('js/components/insightsLogo/insightsLogo.html','<h1 class="logo-insights"><span>Red Hat</span><div class="block"><span translate="translate">Insights</span></div></h1>');$templateCache.put('js/components/insightsTagline/insightsTagline.html','<p class="intro text-center text-white hidden"> </p>');$templateCache.put('js/components/linkGroup/linkGroup.html','<div ng-if="group.length === 1" class="member-group"><strong></strong><type-icon type-id="group[0].system_type_id" include-text="true"></type-icon>&nbsp;&nbsp;<i ng-class="{{getLinkStatus(group[0])}}" title="{{getLinkReportCount(group[0])}}" class="fa link-status">&nbsp;&nbsp;</i><a ng-click="goToSystem(group[0])">{{getLinkName(group[0])}}</a></div><div ng-if="group.length &gt; 1" class="member-group"><div ng-click="toggleCollapsed()" class="member-group-head"><i ng-if="!collapsed" class="group-twisty fa fa-caret-down">&nbsp;&nbsp;</i><i ng-if="collapsed" class="group-twisty fa fa-caret-right">&nbsp;&nbsp;</i><type-icon type-id="typeid" include-text="false"></type-icon><span ng-if="hasReports()">&nbsp;&nbsp;<i tooltip="A system in this group has actions!" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="fa fa-exclamation-triangle i-warning"></i></span>{{linkGroupText}}</div><div ng-if="!collapsed" class="member-group-content"><div class="row"><div ng-repeat="link in group" class="link-text"><div class="col-sm-4"><i ng-class="{{getLinkStatus(link)}}" title="{{getLinkReportCount(link)}}" class="fa link-status"></i><a ng-click="goToSystem(link)" title="{{getLinkName(link)}}">&nbsp; {{getLinkName(link)}}</a></div></div></div></div></div>');$templateCache.put('js/components/listType/listType.html','<div class="list-switch"><a ng-click="setListType(listTypes.card)" ng-class="{active: getListType() === listTypes.card}" class="link"><i class="fa fa-list"></i></a><a ng-click="setListType(listTypes.table)" ng-class="{active: getListType() === listTypes.table}" class="link"><i class="fa fa-table"></i></a></div>');$templateCache.put('js/components/mitigationTrend/mitigationTrend.html','<div class="mitigation-chart"></div>');$templateCache.put('js/components/notifications/notifications.html','<div class="notifications"><alert ng-repeat="alert in alerts" type="{{alert.level}}" close="dismiss($index, alert.type)"><span ng-bind-html="alert.msg | trust_html"></span></alert></div>');$templateCache.put('js/components/pageHeader/pageHeader.html','<div class="page-header"><div ng-transclude="ng-transclude"></div><h1 class="page-title"><i class="fa {{icon}}"></i><span translate="translate" class="text">{{titleTranslated}}</span></h1></div>');$templateCache.put('js/components/platformFilter/platformFilter.html','<section ng-class="{active: getSelectedProduct() !== \'all\'}" ng-show="platforms.length &gt; 1" class="platform-select platform-{{getSelectedProduct()}}"><div class="row"><div class="col-sm-12"><div class="pull-right"><a translate="translate" ng-click="viewAll()" ng-show="getSelectedProduct() !== \'all\'" class="btn btn-rounded"><i aria-hidden="true" class="fa fa-refresh"></i>View all platforms</a></div></div></div><div class="row row-short"><div ng-if="getSelectedProduct() !== \'all\'" class="platform"><div class="col-sm-6"><img ng-src="{{getImage()}}"/></div></div><div ng-if="getSelectedProduct() === \'all\'" class="platform-filters"><div ng-repeat="filter in platforms" class="col-sm-6 col-md-3"><div ng-class="{active: filter.active}" ng-click="selectFilter(filter)" class="btn btn-quick-filter platform-{{filter.product.code}}"><div class="platform quick-filter-btn-content">{{filter.displayName}}</div><!--.summary(ng-show=\'summaryType === "categories" && !loadingSummary\') --><div ng-show="!loadingSummary" class="summary"> <span ng-repeat="item in getSummaryItems(filter.product.code)"><span>{{item}}</span><div ng-if="!$last" class="sep"></div></span></div><!--.summary(ng-show=\'summaryType === "systems" && !loadingSummary\')//a(ng-repeat=\'subFilter in filter.subFilters\',\n //ng-click=\'selectSubFilter(subFilter); $event.stopPropagation()\') ({{subFilter.count}}) {{subFilter.displayName}}\n //.sep(ng-if=\'!$last\') |--></div></div></div></div></section>');$templateCache.put('js/components/recommendedKbase/recommendedKbase.html','<div ng-show="solution &amp;&amp; !loading" class="matched-solution"><span ng-if="showLabel" class="link-label"><i class="fa fa-circular fa-lightbulb-o"></i><strong translate="translate"> Related Knowledgebase articles:</strong></span><a target="_blank" href="{{solution.viewUri}}"> {{solution.title}}</a></div><div ng-show="loading" class="spinner spinner-sm spinner-inline"></div>');$templateCache.put('js/components/riskOfChange/riskOfChange.html','<div id="riskOfChange" class="risk-of-change"><img src="/assets/insights/i_risk-of-change.svg" alt="Risk of change icon" aria-hidden="aria-hidden" class="icon icon-med"/><strong ng-hide="hideLabel">Risk of change:&nbsp;</strong><b ng-if="changeRisk === 1" translate="translate" class="alert-text alert-text-green">Very Low</b><b ng-if="changeRisk === 2" translate="translate" class="alert-text alert-text-blue">Low</b><b ng-if="changeRisk === 3" translate="translate" class="alert-text alert-text-orange">Moderate</b><b ng-if="changeRisk === 4" translate="translate" class="alert-text alert-text-red">High</b></div>');$templateCache.put('js/components/ruleStateIcon/ruleStateIcon.html','<i ng-class="state + \'-rule-state-icon\'" class="fa"></i>');$templateCache.put('js/components/severityIcon/allSeverityIcons.html','<div class="icon-group icon-group-severity"><severity-icon type="impact" severity="rule.rec_impact"></severity-icon><severity-icon type="likelihood" severity="rule.rec_likelihood"></severity-icon><severity-icon type="severity" severity="rule.severity"></severity-icon></div>');$templateCache.put('js/components/severityIcon/severityIcon.html','<div ng-init="init()" class="severity"><i tooltip="{{tooltip}}" class="severity-icon {{getClass(type)}} {{sevClass}}"></i><span ng-if="label" translate="translate" class="title {{getClass(type)}}">{{label}}</span></div>');$templateCache.put('js/components/sideNav/sideNav.html','<div class="dashboard-navigation-container"><!--aside.dashboard-navigation(ng-class="(!isHidden) ? \'profile-image-visible\': \'profile-image-hidden\'")--><aside class="dashboard-navigation"><!--.header-block.user-profile(ng-if="utils.isBeta()").profile-image\n img(gravatar-src="user.email" gravatar-size="200" gravatar-d="blank")\n a(href="#") Edit Info\n.profile-info {{user.first_name}} {{user.last_name}}\n .toggleProfile.hidden-xs(ng-class="(!isHidden) ? \'expanded\': \'compressed\'", ng-click="toggleNav()")\n i.fa.fa-compress\n i.fa.fa-expand--><account-select></account-select><menu class="nav"><ul><li><a ui-sref="app.overview" ui-sref-active="current" translate="translate">Overview</a></li><rha-telemetry-actions-side-nav></rha-telemetry-actions-side-nav><li><a ui-sref="app.inventory" ui-sref-active="current" translate="translate">Inventory</a></li><li ng-if="config.isPlannerEnabled"><a ui-sref="app.maintenance" ui-sref-active="current" translate="translate">Planner</a></li><li><a ui-sref="app.rules" ng-class="{current: includes(states.rules, state.current.name)}" translate="translate">Rules</a></li><li><a ui-sref="app.digests" ui-sref-active="current" translate="translate">Executive Report</a></li><li><a ui-sref="app.config" ng-class="{current: includes(states.config, state.current.name)}" translate="translate">Configuration</a></li></ul></menu></aside></div>');$templateCache.put('js/components/simpleSelect/simpleSelect.html','<div class="dropdown gray"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" ng-disabled="disabled" class="btn btn-default dropdown-toggle"><strong>{{selected.label}}</strong><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div>');$templateCache.put('js/components/statusIcon/statusIcon.html','<span><i ng-show="status" tooltip="{{\'This issue has been resolved\' | translate}}" class="fa fa-check"></i><i ng-hide="status" tooltip="{{\'This issue has NOT yet been resolved. This field will be updated automatically once the system checks in.\' | translate}}" class="fa fa-minus"></i></span>');$templateCache.put('js/components/tag/tag.html','<span ng-bind="$getDisplayText()" tooltip="{{data.description}}"></span><a ng-click="$removeTag()" ng-bind="::$$removeTagSymbol" class="remove-button"></a>');$templateCache.put('js/components/systemMetadata/systemMetadata.html','<div ng-if="loading" class="row"><div class="col-sm-12"><i class="fa spinner-xs spinner"></i><span>Loading...</span></div></div><div ng-if="!loading" class="row system-metadata"><div ng-repeat="facts in systemFacts" class="col-sm-6"><table class="meta-table table-fixed"><tbody><tr ng-repeat="data in facts"><td translate="translate">{{data.label}}</td><td translate="translate" class="metadata-value">{{data.value}}</td></tr></tbody></table></div></div>');$templateCache.put('js/components/timeRange/timeRange.html','<time><span class="from">{{startTime | lowercase}}</span><span ng-if="startDate">&nbsp;({{startDate}})</span><span>&nbsp;-&nbsp;</span><span class="to">{{endTime | lowercase}}</span><span ng-if="endDate">&nbsp;({{endDate}})</span></time>');$templateCache.put('js/components/topbar/topbar.html','<div class="top-bar"><feedback-button class="btn-feedback"></feedback-button><div class="row"><div class="col-sm-7 col-md-8"><!-- .global-filters.disabled.disabled class added if the filters are not applicable to view--><div ng-class="{disabled: disabled}" class="global-filters"><group-select disabled="disabled" ng-if="isGroupsEnabled"></group-select></div></div><div class="col-sm-5 col-md-4 text-right-sm"><menu class="notifications"><bullhorn icon="fa-bullhorn" type="announcements"></bullhorn><alerts icon="fa-bell" type="alerts"></alerts></menu><span class="sep"></span><span dropdown="" on-toggle="toggled(open)" class="dropdown help"><a href="" dropdown-toggle="" class="dropdown-toggle"><strong translate="translate" class="small">Help</strong><i class="inline-left fa fa-question-circle"></i></a><ul class="dropdown-menu"><li><a href="{{gettingStartedLink}}" target="_blank" translate="translate">Getting Started</a></li><li><a href="https://access.redhat.com/documentation/en/red-hat-insights/" target="_blank" translate="translate">Product Documentation</a></li><li><a ui-sref="info.info" translate="translate">More Info</a></li><li><a ui-sref="info.security" translate="translate">Security</a><!-- if this is the Portal hosted Insights... link to the Portal Browser Support Policy page--></li><li><a href="/help/browsers" target="_self" translate="translate" ng-if="isPortal">Browser Support</a></li><li><a href="/r/insights/docs/" translate="translate">Insights API Documentation</a></li><li><demo-account-switcher></demo-account-switcher></li></ul></span></div></div></div>');$templateCache.put('js/components/typeIcon/typeIcon.html','<span><span tooltip="{{systemTypeDisplayName}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="title"><i ng-class="systemTypeIcon" class="fa spinner-xs system-type-icon"></i></span><strong ng-if="includeText">&nbsp;&nbsp;{{systemTypeDisplayNameShort}}</strong></span>');$templateCache.put('js/components/userInfo/userInfo.html','<div class="user-info"><h2 class="title-widget"><i class="fa fa-user"></i><span translate="translate">Profile</span></h2><menu class="messaging-menu"><div class="heading heading-w-profile-image"><div class="profile-image"><img gravatar-src="user.email" gravatar-size="100" gravatar-d="blank"/></div><div class="info"><div class="name"><strong>{{user.first_name}} {{user.last_name}}</strong></div><div class="last-login"><strong>Last login:</strong><date>07/22/15</date></div></div></div><nav class="user-info-nav"><li><a ui-sref="app.announcements"><i class="fa fa-bullhorn"></i><span translate="translate">Announcements</span><span class="count">{{ alerts.unseen.length }}</span></a></li><li ng-if="false"><a><i class="fa fa-bell"></i><span translate="translate">Alerts</span><span class="count unread">50</span></a></li><li ng-if="false"><a><i class="fa fa-bullseye"></i><span translate="translate">Goals</span><span class="count">120</span></a></li><li ng-if="false"><a><i class="fa fa-envelope"></i><span translate="translate">Messages</span><span class="count unread">100</span></a></li><li ng-if="false"><a><i class="fa fa-comments-o"></i><span translate="translate">Mentions</span><span class="count">10</span></a></li><li ng-if="false"><a><i class="fa fa-certificate"></i><span translate="translate">Marketing</span><span class="count">120</span></a></li></nav></menu></div>');$templateCache.put('js/components/yesNo/yesNo.html','<span><i ng-class="{\'fa-times fail\': no, \'fa-check success\': yes}" class="fa"> </i><strong> {{text}}</strong></span>');$templateCache.put('js/states/actions/actions.html','<div class="actions-page"><page-header title="Actions" icon="fa-file-text"></page-header><new-actions-graph></new-actions-graph><div ng-if="loading" class="content-wrap"><div class="row ng-animate-enabled"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="content-wrap"><section class="metrics"><div class="rha-notifications"></div><div class="row"><div class="col-md-6 chart-col clearfix"><div class="chart-container text-center"><div class="donut-container"><div class="donut-hole"><div class="content"><div class="num">{{stats.rules.total}}</div><div translate="translate" class="text">Issues</div></div></div><div stats="stats" class="rha-telemetry-donut"></div></div></div><div class="row"><div class="col-lg-10 col-lg-offset-1"><table class="legend"><tbody></tbody><tr><td ng-repeat="category in categoryTopics.slice(0,(categoryTopics.length &gt; 3 ? 2 : categoryTopics.length))"><a ng-class="category.id" ui-sref="app.topic({id: category.id, product: getSelectedProduct()})"><i ng-class="category.id + \'-color\'" aria-hidden="true" class="fa fa-square inline-right"></i><span translate="translate" class="desc">{{category.id | titlecase}}</span><span class="count">&nbsp;({{category.count}})</span></a></td></tr><tr ng-if="categoryTopics.length &gt; 3"><td ng-repeat="category in categoryTopics.slice(2,categoryTopics.length)"><a ng-class="category.id" ui-sref="app.topic({id: category.id, product: getSelectedProduct()})"><i ng-class="category.id + \'-color\'" aria-hidden="true" class="fa fa-square inline-right"></i><span translate="translate" class="desc">{{category.id | titlecase}}</span><span class="count">&nbsp;({{category.count}})</span></a></td></tr></table></div></div></div><div class="col-md-6"><card id="widgetIncidentSummary" ng-if="isBeta" class="widget widgetIncidentSummary"><card-header class="gray"><h4 translate="translate">Incident summary</h4></card-header><card-content><incident-summary incident-count="incidentCount" incident-system-count="incidentSystemCount" rule-hits="stats.rules.total" ng-show="incidentCount !== undefined" class="incident-summary"></incident-summary><div ng-show="incidentCount === undefined" class="spinner"></div></card-content></card><card><card-header class="gray"><h4 translate="translate">Risk summary</h4></card-header><card-content><severity-summary stats="stats"></severity-summary></card-content></card></div></div></section><section class="gray full-width"><span ng-show="isContentManager" class="pull-right">[<a ui-sref="app.admin-topic">edit</a>]</span><h2 translate="translate" class="section-title section-title-red">Featured Topics</h2><div class="flexgrid equalheights other-topics"><div ng-if="featuredTopics.length" class="row"><other-topic ng-repeat="topic in featuredTopics | orderBy:\'topic.order\' track by topic.id" topic="topic"></other-topic></div><div ng-if="!show.extraTopics &amp;&amp; extraTopics.length" class="row"><div class="text-center extra-topics"><button ng-click="show.extraTopics = true" translate="translate" class="btn btn-sm btn-default">More topics</button></div></div><div ng-if="!featuredTopics.length" class="row"><div class="col-xs-12 text-center"><strong>No topics currently available.&nbsp;<a ui-sref="info.getting-started.direct" translate="translate">Register more systems.</a></strong></div></div></div></section><section ng-if="show.extraTopics" class="full-width"><div class="flexgrid equalheights other-topics"><div class="row"><other-topic ng-repeat="topic in extraTopics | orderBy:\'topic.order\' track by topic.id" topic="topic"></other-topic></div></div></section></div></div>');$templateCache.put('js/states/analytics/analytics.html','<div class="page"><div class="section"><div class="row margin-top"><div class="col-sm-12"><h1 class="page-title">Analytics</h1></div></div><div class="row margin-top"><div class="col-sm-12"><div id="chart"></div></div></div></div></div>');$templateCache.put('js/states/announcements/announcements.html','<div class="page-header"><h1 class="page-title pull-left"><i class="fa fa-bullhorn">&nbsp;</i><span translate="translate">Announcements</span></h1></div><div class="content-wrap"><div ng-if="canCreate" class="row"><div class="col-sm-12"><label translate="translate" class="full-width">Show hidden</label><div class="switch"><input id="cmn-toggle-2" type="checkbox" ng-model="params.showHidden" ng-change="reload()" class="cmn-toggle cmn-toggle-square"/><label for="cmn-toggle-2"></label></div></div></div><div class="row"><announcements-scroll announcementId="{{$scope.announcementId}}"></announcements-scroll></div><div class="row row-short"><div class="col-xs-12"><a ui-sref="app.new-announcement" ng-if="canCreate" class="pull-right btn btn-app">Create Announcement</a></div></div></div>');$templateCache.put('js/states/announcements/edit-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div class="col-xs-12"><h1 class="page-title">Edit Announcement</h1></div></div><div ng-if="announcementError" class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{announcementError}}</span></span></div></div><div class="row"><div ng-if="loadingAnnouncement" class="col-xs-12 col-m-8"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12 col-m-8"><form ng-submit="save()" name="form" class="form-horizontal"><fieldset><div class="row"><div class="col-xs-12"><label class="control-label">Title</label><input ng-model="announcement.title" type="text" placeholder="Announcement Title" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Slug</label><input ng-model="announcement.slug" type="text" placeholder="Slug" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Body</label><textarea ng-model="announcement.body" type="text" placeholder="Body" class="form-control"></textarea></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Start Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.start" type="text" placeholder="Start Date" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">End Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.end" type="text" placeholder="End Date" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="hidden" value="true" ng-model="announcement.hidden"/>&nbsp;</label><label for="hidden" class="control-label">Hidden</label></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="important" value="false" ng-model="announcement.important"/>&nbsp;</label><label for="hidden" class="control-label">Important</label></div></div><div class="row"><div class="col-xs-12"><a ui-sref="app.announcements">Back to Announcements</a><button name="submit" ng-disabled="form.$error.required" class="btn btn-app pull-right">Save Announcement</button></div></div></fieldset></form></div></div></div>');$templateCache.put('js/states/announcements/new-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div class="col-xs-12"><h1 class="page-title">New Announcement</h1></div></div><div ng-if="announcementError" class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{announcementError}}</span></span></div></div><div class="row"><div class="col-xs-12 col-m-8"><form ng-submit="create()" name="form" class="form-horizontal"><fieldset><div class="row"><div class="col-xs-12"><label class="control-label">Title</label><input ng-model="announcement.title" type="text" placeholder="Announcement Title" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Slug</label><input ng-model="announcement.slug" type="text" placeholder="Slug" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Body</label><textarea ng-model="announcement.body" type="text" placeholder="Body" class="form-control"></textarea></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Start Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.start" type="text" placeholder="Start Date" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">End Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.end" type="text" placeholder="End Date" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="hidden" value="true" ng-model="announcement.hidden"/>&nbsp;</label><label for="hidden" class="control-label">Hidden</label></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="important" value="false" ng-model="announcement.important"/>&nbsp;</label><label for="hidden" class="control-label">Important</label></div></div><div class="row"><div class="col-xs-12"><a ui-sref="app.announcements">Back to Announcements</a><button name="submit" ng-disabled="form.$error.required" class="btn btn-app pull-right">Create Announcement</button></div></div></fieldset></form></div></div></div>');$templateCache.put('js/states/announcements/view-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div ng-if="loadingAnnouncement" class="col-xs-12"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12"><strong class="pull-right">{{announcement.created_at | date}}</strong><h1 class="page-title">{{announcement.title}}</h1></div></div><div class="row push-top border-top"><div ng-if="loadingAnnouncement" class="col-xs-12"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12"><div ng-bind-html="announcement.body_html | trust_html" target-blank=""></div></div></div></div>');$templateCache.put('js/states/base/app.html','<!--#fullscreen.fullscreen--><!-- a(ng-click="toggleFullScreen()", translate) Fullscreen--><div id="telemetry" class="page-wrap container"><beta-switch-button></beta-switch-button><side-nav></side-nav><div data-esc-key="" class="main-content insights-main-content"><topbar></topbar><div ui-view="" class="wrapper"></div><actionbar></actionbar></div></div>');$templateCache.put('js/states/base/base.html','<div ui-view="" class="ng-cloak"></div>');$templateCache.put('js/states/base/info.html','<div ui-view="" class="ng-cloak ng-animate-enabled fade-in"></div>');$templateCache.put('js/states/digests/digests.html','<div class="digests-page"><page-header title="Executive Report" icon="fa-bar-chart" ng-class="{\'inactive\': !expandBar, \'active\': expandBar}"><div ng-if="downloading" class="spinner spinner-sm pull-right"></div><button ng-click="downloadPdf()" ng-if="!downloading" translate="translate" class="btn btn-sm btn-accent pull-right">Download PDF</button></page-header><div ng-show="loading" class="content-wrap margin-top"><div class="text-center"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading &amp;&amp; digestError" class="content-wrap"><div class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="col-xs-9"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{digestError}}</span></span></span></div></div></div><div ng-show="!loading &amp;&amp; systemsTilTen &gt; 0" class="content-wrap margin-top"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1 translate="translate">Executive Reporting requires 10 or more systems to be registered with Insights.</h1><h2 translate="translate">Please register<span translate="translate" translate-n="systemsTilTen" translate-plural="{{$count}} more systems">{{systemsTilTen}} more system</span>&nbsp;to enable reporting for your account.</h2></div></div></div><div ng-show="!loading &amp;&amp; systemsTilTen &lt; 1" class="content-wrap"><section><div class="row"><div class="col-md-4"><h2 translate="translate" class="section-title">Overall score</h2><div class="gauge gauge-score"><div class="crop"><div class="grad"></div></div><gauge-marker current="latest_score" difference="score_difference"></gauge-marker><div class="score"><h3>{{latest_score}}</h3><span translate="translate" ng-if="latest_score &lt; 400">Score needs attention</span><span translate="translate" ng-if="latest_score &gt;= 400 &amp;&amp; latest_score &lt; 550">Score is poor</span><span translate="translate" ng-if="latest_score &gt;= 550 &amp;&amp; latest_score &lt; 700">Score is good</span><span translate="translate" ng-if="latest_score &gt;= 700">Score is excellent</span></div><footer class="footer"><span class="num floor">250</span><span class="num ceiling">850</span></footer></div></div><div class="col-md-8"><h2 translate="translate" class="section-title">Weekly action count by category</h2><div class="row padding-top"><div ng-repeat="cat in digest_hits_per_cat" class="col-xs-6 col-md-3"><div class="gauge gauge-count-and-change"><div class="count-and-change"><div class="count large bold">{{cat.current}}</div><div class="change"><i ng-if="cat.direction &gt; 0" class="fa fa-caret-up increase"></i><i ng-if="cat.direction &lt; 0" class="fa fa-caret-down decrease"></i><i ng-if="cat.direction === 0" class="fa fa-minus no-change"></i></div></div><div class="title"><i aria-hidden="true" ng-class="cat.icon" class="fa"></i><strong class="uppercase">&nbsp;{{cat.label}}</strong></div></div></div><div class="col-sm-12"><hr/><span ng-show="!loading" translate="translate" class="large-text"><i ng-if="resolvedIssues &gt; 0" class="fa fa-check-circle green"></i><i ng-if="resolvedIssues === 0" class="fa fa-exclamation-circle red"></i>&nbsp;You\'ve resolved&nbsp;<strong ng-class="{&quot;green&quot;: resolvedIssues &gt; 0, &quot;red&quot;: resolvedIssues === 0}" translate="translate" translate-n="resolvedIssues" translate-plural="{{$count}} issues">{{resolvedIssues}} issue</strong>&nbsp;in the past {{timePeriod()}} days.</span></div></div></div></div></section><section class="gray full-width"><ul role="tablist" class="nav nav-tabs-simple underline"><li role="presentation" class="active"><a href="#metrics" aria-controls="metrics" role="tab" data-toggle="tab" translate="translate">Action trends</a></li><li role="presentation"><a href="#systemsRegistered" aria-controls="systemsRegistered" role="tab" data-toggle="tab" translate="translate">Active Systems</a></li><li role="presentation"><a href="#scoreHistory" aria-controls="messages" role="tab" data-toggle="tab" translate="translate">Score history</a></li><li role="presentation"><a href="#allRuleHits" aria-controls="allRules" role="tab" data-toggle="tab" translate="translate">All Rule hits</a></li></ul><!-- Tab panes--><div class="tab-content"><div id="metrics" role="tabpanel" class="metrics tab-pane fade in active"><digest-graph drop-down="Category" digest-key="metrics" digest="digest_metrics" height="400" ng-if="!loading"></digest-graph></div><div id="systemsRegistered" role="tabpanel" class="tab-pane fade"><digest-graph digest-key="registered" digest="digest_registered" height="400" ng-if="!loading"></digest-graph></div><div id="scoreHistory" role="tabpanel" class="tab-pane fade"><digest-graph digest-key="score" digest="digest_score" height="400" ng-if="!loading"></digest-graph></div><div id="allRuleHits" role="tabpanel" ng-if="!loading" class="tab-pane fade"><table style="background-color: #fff"><thead><tr><th translate="translate">Rule</th><th translate="translate">Impacted Systems</th><th translate="translate">Total Risk</th></tr></thead><tbody><tr ng-repeat="rule in allRuleHits"><td><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})">{{ rule.description }}</a></td><td>{{rule.report_count}}</td><td><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td></tr></tbody></table></div></div></section><section><div class="row"><div class="col-md-6"><h2 translate="translate" class="section-title">Ten Most Impacted Systems</h2><!--with hostname, registered date, and score--><table class="table-break"><thead><tr><th translate="translate" class="hostname">Hostname</th><th translate="translate">Hits</th></tr></thead><tbody><tr ng-repeat="system in topTenWorstSystems"><td class="hostname"><a ng-click="showSystem(system)">{{ system | getSystemDisplayName }}</a></td><td>{{ system.report_count }}</td></tr></tbody></table></div><div class="col-md-6"><h2 class="section-title">Ten Most Frequently Hit Rules</h2><!-- grouped by criticality, sub grouped by count--><table><thead><tr><th translate="translate">Rule</th><th translate="translate">Impacted Systems</th><th translate="translate">Total Risk</th></tr></thead><tbody><tr ng-repeat="rule in topTenRules"><td><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})">{{ rule.description }}</a></td><td>{{rule.impacted_systems}}</td><td><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td></tr></tbody></table></div></div></section></div></div>');$templateCache.put('js/states/evaluation/evaluation.html','<div class="page-wrap container eval"><div> </div><div class="main-content insights-main-content full-width"><div class="content-wrap"><div class="row text-center"><i ng-if="loading" class="fa spinner-lg spinner"></i></div><div ng-if="!loading &amp;&amp; !error"><div ng-if="status.current" class="status-current"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">You are currently on a {{status.current.systems}} system evaluation of Red Hat Insights</h1><hr class="eval-hr"/><h2 translate="translate" class="eval-subhead">Your evaluation will expire on <strong>{{getExpiration()}}.</strong></h2></div></div><div class="row text-center"><div class="col-lg-3 col-lg-offset-3"><a href="https://access.redhat.com/products/red-hat-insights#getstarted"> <button translate="translate" class="btn btn-md btn-accent">Getting started guide</button></a></div><div class="col-lg-3"><button ui-sref="app.overview" translate="translate" class="btn btn-md btn-accent">Go to the application</button></div></div></div><div ng-if="status.expired" class="status-expired"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">Your evaluation has expired </h1><h2 translate="translate" class="eval-subhead">Thank you for trying Red Hat Insights</h2><hr class="eval-hr"/><h3 translate="translate" class="eval-content">Please contact sales to purchase Insights</h3></div></div><div class="flexgrid equalheights sales-cards"><div class="row"><div class="col-sm-12 col-md-4 col-md-offset-2"><card><card-header class="gray"><h4 translate="translate">North America</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:19197543700">+1 (888) REDHAT-1 or +1 (919) 754 3700</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:19197543701">+1 (919) 754 3701</a></span></li></ul></card-content></card></div><div class="col-sm-12 col-md-4"><card><card-header class="gray"><h4 translate="translate">Asia Pacific</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:6564904200">+65 6490 4200</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:6564904201">+65 6490 4201</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:1800733428">1800 733 428 (Australia)</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:0800733428">0800 733 428 (New Zealand)</a></span></li></ul></card-content></card></div></div></div><div class="flexgrid equalheights"><div class="row"><div class="col-sm-12 col-md-4 col-md-offset-2"><card><card-header class="gray"><h4 translate="translate">Europe, Middle East, and Africa</h4></card-header><card-content><ul class="sales-info"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:0080073342835">+00800 7334 2835</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:441252548117">+44 1252 548 117</a></span></li></ul></card-content></card></div><div class="col-sm-12 col-md-4"><card><card-header class="gray"><h4 translate="translate">Latin America</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:541143297300">+54 (11) 4329-7300</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:541143425292">+54 (11) 4342-5292</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:551135296000">+55 (11) 3529-6000 (Brazil)</a></span></li></ul></card-content></card></div><div class="col-md-12 text-center"><span><a href="https://engage.redhat.com/content/contact-japan-sales" translate="translate">Customers in Japan, please use this form to contact sales in Japan.</a></span></div></div></div></div><div ng-if="getNonLegacyEval() &amp;&amp; !successfulActivation" class="status-available"><div class="row text-center"><div class="col-sm-12 col-md-10 col-md-offset-1"><h1 translate="translate" class="eval-header"><span>Your {{getNonLegacyEval().systems}} system {{getNonLegacyEval().duration}} day evaluation is ready.</span></h1><hr class="eval-hr"/></div></div><div class="row text-center"><div class="col-sm-12"><h2 translate="translate" class="eval-subhead">READ AND ACCEPT THESE TERMS TO GET STARTED.</h2></div></div><div class="row"><div class="col-md-8 col-md-offset-2"><p translate="translate">Red Hat is providing each Red Hat Subscription Evaluation for evaluation purposes subject to the terms of the <a href="http://www.redhat.com/licenses/" target="_blank">Red Hat Enterprise Agreement</a>. If you use the Red Hat Subscription for any purpose other than <b>evaluation</b>, you agree to pay Red Hat the Subscription Fee(s) for each Unit pursuant to the Enterprise Agreement, which is in addition to any and all other remedies available to Red Hat under applicable law.</p><div id="terms" translate="translate">Examples of situations where you would incur additional fees and be in violation of the Agreement include, but are not limited to:<ul class="list-plain"><li>Using the service provided under the evaluation program for a production installation,</li><li>Offering support services to third parties, or</li><li>Complementing or supplementing third party support services with services received through the Red Hat Subscription evaluation program.</li></ul></div><p translate="translate">By proceeding, I acknowledge that I have read and agree to the terms and conditions of the <a href="http://www.redhat.com/licenses/" target="_blank">Red Hat Enterprise Agreement</a> which governs my use.</p></div></div><div class="row text-center"><div class="col-sm-12"><button ng-click="activateNonLegacy()" translate="translate" class="btn btn-md btn-accent">Agree and Get Started</button></div></div><div class="row text-center"><div class="col-sm-12"><p><a href="https://access.redhat.com/insights/splash/" translate="translate">Decline</a><br/><small translate="translate">If you decline, you will not receive an evaluation at this time and will be redirected to additional information on Red Hat Insights</small></p></div></div><div class="row text-center"><div ng-if="getLegacyEval() &amp;&amp; !successfulActivation" style="margin-top:60px" class="col-sm-12"><a ng-click="activateLegacy()" translate="translate">Looking for the legacy 10 system evaluation? Click here to activate.</a></div></div></div><div ng-if="status.purchased" class="status-purchased"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><span aria-hidden="true" class="green i fa fa-check fa-4x"> </span><h1 translate="translate" class="eval-header">Thank you!</h1><hr class="eval-hr"/><h2 translate="translate" class="eval-subhead">Thank you for purchasing Red Hat Insights</h2></div></div><div class="row text-center"><div class="col-sm-12"><button ui-sref="app.overview" translate="translate" class="btn btn-md btn-accent">Continue to Insights</button></div></div></div></div><div ng-if="error" class="status-error"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">Oops!</h1><h2 translate="translate" class="eval-subhead">There was an error</h2><hr class="eval-hr"/><h3 translate="translate" class="eval-content">{{error}}</h3></div></div></div></div></div></div>');$templateCache.put('js/states/info/info.html','<div class="info-page"><div class="container info-page-intro text-center band band-hero"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div><div class="col-sm-8 col-sm-offset-2"><insights-tagline></insights-tagline></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Proactive systems management</h2><p translate="translate">Red Hat Insights is a hosted service designed to help you proactively identify and resolve technical issues in Red Hat Enterprise Linux and Red Hat Cloud Infrastructure environments. Decreasing time spent discovering, researching, and resolving critical issues allows you to focus on driving high value, strategic initiatives.</p></section></div><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Misc_Lifestyle_RGB_Button.png" alt="Management"/></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10"><section class="section"><h2 translate="translate" class="section-title">Insights powered by Red Hat</h2><p translate="translate"><strong>The Insights engine</strong>is powered by the unparalleled expertise that comes from over 700 Red Hat Certified Engineers, over 30,000 documented technical solutions, and over 1,000,000 resolved issues. Based on Red Hat\u2019s continuously expanding knowledge base, which includes expertise in third-party hardware and software integration, deterministic rules are constantly being created.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Software_Data_CMYK_Button.png" alt="Data Collection"/></div><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Lightweight data collection</h2><p translate="translate">For analysis by the Insights engine, a minimal subset of information commonly provided in a standard support case is collected by the Insights client. This data is collected via secure protocols at defined intervals then analyzed and discarded at the next upload, or no longer than two weeks later.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Clear, tailored, and actionable intelligence</h2><p translate="translate">The Insights engine delivers results for review through the Insights UI in Red Hat Satellite and in the Red Hat Customer Portal. Through the intuitive Insights UI, configuration issues discovered during analysis are clearly displayed and prioritized by severity. Tailored remediation steps are presented to help you optimize workloads and confidently resolve critical issues and prevent future issues.</p></section></div><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Document_Blueprint_RGB_Button.png" alt="Actionable Intelligences"/></div></div></div></div><div id="availability" class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Availability</h2><p translate="translate">Red Hat Insights is available for current Red Hat customers on Red Hat Enterprise Linux, delivered through either the Customer Portal or Red Hat Satellite. Your current subscription includes Red Hat Insights for up to 10 systems. To enroll additional systems, contact<a href="http://www.redhat.com/en/about/contact/sales">sales</a>.</p><div class="row"><div class="col-md-6"><table class="table table-cp table-striped table-bordered"><thead><tr><th translate="translate">Red Hat Insights supports</th></tr></thead><tbody><tr><td translate="translate">Red Hat Enterprise Linux 6</td></tr><tr><td translate="translate">Red Hat Enterprise Linux 7</td></tr></tbody></table></div><div class="col-md-6"><table class="table table-cp table-striped table-bordered"><thead><tr><th translate="translate">Delivered via</th></tr></thead><tbody><tr><td translate="translate">Red Hat Customer Portal</td></tr><tr><td translate="translate">Red Hat Satellite 5</td></tr><tr><td translate="translate">Red Hat Satellite 6</td></tr></tbody></table></div></div></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Security comes standard</h2><p translate="translate">Like all products and services from Red Hat, Red Hat Insights is developed with a focus on security and rigorous deployment controls.</p><p translate="translate"><a ui-sref="info.security">Learn more</a> about how Red Hat Insights keeps your data secure while enabling you to proactively manage systems.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Additional resources</h2><div class="row"><div class="col-xs-12 col-sm-7 col-md-8 vcenter"><a href="static/misc/datasheet.pdf" target="_blank" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Datasheet</a><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Getting started with Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></div></div></section></div></div></div></div></div>');$templateCache.put('js/states/inventory/inventory.html','<section class="inventory"><page-header title="Inventory" icon="fa-database"></page-header><inventory-filters></inventory-filters><div class="rha-notifications"></div><div class="content-wrap"><div class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box on-search="filter.setSearchTerm(model); filter.doFilter();" throttle="1000" placeholder="{{\'Find a system\' | translate}}"></search-box></div></div></div><inventory-actions></inventory-actions><div ng-show="getListType() === listTypes.card" class="card-table-header"><div class="row"><div class="col-sm-4"><input tooltip="{{\'Select All\' | translate}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, getSelectableSystems())" class="action-checkbox"/><label translate="translate" ng-click="sort(\'system_type_id\')">&nbsp; Type</label></div><div class="col-sm-4"><strong translate="translate" ng-click="sort(\'toString\')">Name</strong></div><div class="col-sm-4 text-right"><strong translate="translate" ng-click="sort(\'report_count\')">Action Count</strong></div></div></div><div ng-show="getListType() === listTypes.card &amp;&amp; !loading" class="row row-short"><div class="col-sm-12"><system-card ng-repeat="system in systems track by system.system_id" system="system" checkboxes="checkboxes" checkbox-tooltip="canSelectSystem(system) ? defaultTooltip : getDisabledCheckboxTooltip(system)" class="ng-animate-enabled"></system-card></div></div><div class="row row-short"><div class="col-md-12"><table ng-show="getListType() === listTypes.table" class="table ng-table"><thead><tr><th><input tooltip="Select All" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, getSelectableSystems())" class="selectme"/></th><th ng-class="predicate | sortClass:\'system_type_id\':reverse" ng-click="sort(\'system_type_id\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">System Type</div></th><th ng-class="predicate | sortClass:\'toString\':reverse" ng-click="sort(\'toString\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">System Name</div></th><th ng-class="predicate | sortClass:\'last_check_in\':!reverse" ng-click="sort(\'last_check_in\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">Last Check In</div></th><th ng-class="predicate | sortClass:\'report_count\':reverse" ng-click="sort(\'report_count\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">Status</div></th></tr></thead><tbody ng-show="!loading"><tr ng-repeat="system in systems track by system.system_id" ng-class="{\'stale\': !system.isCheckingIn}" ng-click="checkboxes.rowClick($event, system.system_id)" ng-mousedown="checkboxes.rowClick($event, system.system_id)" data-id="{{system.system_id}}"><td><input type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" class="selectme"/></td><td class="nowrap"><type-icon type-id="system.system_type_id" include-text="true"></type-icon></td><td class="nowrap long-name"><a ng-click="showActions(system)">{{system.toString}}</a></td><td class="nowrap">{{ system.last_check_in | timeAgo }}</td><td class="nowrap"><a ng-click="showActions(system)" class="action-count"><span translate="translate" translate-n="system.report_count" translate-plural="{{$count}} Actions" class="text">{{system.report_count}} Action</span><span ng-class="{\'success\': !system.report_count, \'fail\': system.report_count}" class="pull-right status-icon"><i ng-class="{\'no-action\': !system.report_count, \'yes-action\': system.report_count}" class="fa"></i></span></a></td></tr></tbody></table></div></div><div ng-show="!loading" class="row row-short"><div class="col-sm-12"><pagination ng-if="totalSystems() &gt; pager.perPage" total-items="totalSystems()" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="doScroll()" class="pull-right pagination-blue"></pagination></div></div></div><div class="animate-wrapper margin-top"><div ng-show="loading" class="row row-short ng-animate-enabled"><div class="col-xs-12"><div class="load text-center"><div class="spinner spinner-lg"></div><span translate="translate">Loading system information\u2026</span></div></div></div></div></section>');$templateCache.put('js/states/invites/invites.html','<div class="page-wrap container eval"><div class="main-content insights-main-content full-width"><div class="row"><div ng-if="loading" class="col-sm-12 text-center"><i class="fa spinner-lg spinner"></i></div></div><div ng-if="!loading &amp;&amp; forbidden" class="status-error"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1>Your account is not authorized to view this page.</h1></div></div></div><div ng-if="!loading &amp;&amp; !forbidden" class="status-available"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1><i aria-hidden="true" class="fa fa-address-book-o"></i>&nbsp;Insights Evaluation</h1></div></div><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-left"><p>This internal form is used to invite an account to a 30 day evaluation of Red Hat Insights (more info available at &nbsp;<a href="https://mojo.redhat.com/docs/DOC-1104175" target="_blank"><b>Insights Evaluation guide</b></a>)</p></div><div class="col-sm-12 col-md-8 col-md-offset-2 text-left"><card ng-if="!failedInvite &amp;&amp; !successfulInvite" class="invite"><card-content class="gray"><form class="form-horizontal"><div class="form-group"><label class="col-sm-4"><h4>Account Number</h4></label><div class="col-sm-8"><input ng-model="data.account"/></div></div><div class="form-group"><label class="col-sm-4"><h4>Customer Email</h4></label><div class="col-sm-8"><input ng-model="data.email"/></div></div><div class="form-group"><label class="col-sm-4"><h4>System Count</h4></label><div class="col-sm-8 text-left-md"><select ng-options="e as e.systems for e in evals" ng-model="data.newInvite"></select></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="createNewInvite()" class="btn btn-lg btn-accent">Invite</button></div></div></form></card-content></card><card ng-if="successfulInvite" class="success"><card class="success"><card-content class="gray text-center"><div class="row"><div class="col-sm-12"><h4 class="nomar"><span aria-hidden="true" class="icon-check-alt green">&nbsp;</span><span class="light">You have successfully invited&nbsp;</span>{{successfulInvite.email}}&nbsp;<span class="light">with account number&nbsp;</span>{{successfulInvite.account_number}}.</h4></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="reset()" class="btn btn-lg btn-accent">Reload form</button></div></div></card-content></card></card><card ng-if="failedInvite" class="failure"><card class="success"><card-content class="gray text-center"><div class="row"><div class="col-sm-12"><h4 class="nomar"><i aria-hidden="true" class="fa fa-times-circle red">&nbsp;</i>Invitation to {{failedInvite.email}} with account number {{failedInvite.account_number}} failed. &nbsp;<!--If its a duplicate error. We have a specific message.--><span ng-if="error.status == 409">This account has previously activated a sales invited evaluation. &nbsp;\nPlease contact <a href="mailto:insights@redhat.com">insights@redhat.com</a>&nbsp; to grant additional invitations.</span><!--otherwise, just show the raw error from the api.--><span ng-if="error.status != 409">{{error.data}}</span></h4></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="reset()" class="btn btn-lg btn-accent">Try again</button></div></div></card-content></card></card></div></div></div></div></div>');$templateCache.put('js/states/maintenance/maintenance.html','<div class="maintenance-page"><page-header title="Planner" icon="fa-wrench" ng-class="{\'inactive\': !expandBar, \'active\': expandBar}"><div class="create-plan-actions text-right pull-right"><a ng-click="MaintenanceService.showMaintenanceModal()" class="create-plan"><span translate="translate">&nbsp;Create a plan</span><i class="fa fa-plus-circle"></i></a><a ng-click="newSuggestion()" ng-if="isInternal" class="create-plan"><small translate="translate" class="red">New suggested plan<i class="fa fa-plus-circle"></i></small></a></div></page-header><section><collapsible-filter><collapsible-filter-content><div class="row"><maintenance-category-select category="category" on-select="setCategory(category)" class="col-xs-6 col-md-4 col-lg-3"></maintenance-category-select></div></collapsible-filter-content></collapsible-filter></section><div class="content-wrap"><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box ng-model="searchTerm" placeholder="{{\'Search plans\' | translate}}"></search-box></div></div></section><section><div ng-show="loading" class="row row-short"><div class="col-xs-12"><div class="load text-center"><div class="spinner spinner-lg"></div><span translate="translate">Loading plans\u2026</span></div></div></div><div class="rha-notifications"></div><div ng-if="!loading"><div ng-if="!plans[category].length" class="row"><div class="text-center"><h4 translate="translate">No plans</h4></div></div><plan-list ng-if="category === \'unscheduled\'" plans="plans.unscheduled | searchMaintenancePlans: searchTerm" page-size="8"></plan-list><plan-list ng-if="category === \'suggested\'" plans="plans.suggested | searchMaintenancePlans: searchTerm" page-size="8"></plan-list><plan-list ng-if="category === \'past\'" plans="plans.past | searchMaintenancePlans: searchTerm" group="true" page-size="6"></plan-list><plan-list ng-if="category === \'future\'" plans="plans.future | searchMaintenancePlans: searchTerm" group="true" page-size="6"></plan-list><span ng-if="category === \'all\'"><h2 translate="translate" ng-if="plans.suggested.length">Suggested Plans</h2><plan-list plans="plans.suggested | searchMaintenancePlans: searchTerm" page-size="2"></plan-list><h2 translate="translate" ng-if="plans.unscheduled.length">Plans</h2><plan-list plans="plans.unscheduled | searchMaintenancePlans: searchTerm" page-size="6"></plan-list><h2 translate="translate" ng-if="plans.scheduled.length">Scheduled Plans</h2><plan-list plans="plans.scheduled | searchMaintenancePlans: searchTerm" group="true" page-size="4"></plan-list></span></div></section></div></div>');$templateCache.put('js/states/overview/overview.html','<div class="overview"><page-header title="Overview" icon="fa-tachometer"></page-header><div class="page flexgrid equalheights"><div class="rha-notifications"></div><div class="row"><div class="col-md-5 col-lg-6 left-col"><div class="grid-block"><section class="widget-block"><span ng-show="isInternal" class="pull-right">[<a ng-click="edit()">edit</a>]</span><h2 class="title"><i class="fa fa-fire"></i><span translate="translate">Latest</span></h2><handcrafted-content></handcrafted-content></section></div><new-systems></new-systems></div><div class="col-md-7 col-lg-6 right-col border-bottom"><div class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-file-text"></i><span translate="translate">Actions&nbsp;</span><span translate="translate" class="light">Summary</span><a translate="translate" ui-sref="app.actions" class="cta-link">View actions</a></h2><severity-summary stats="stats"></severity-summary></section></div><div ng-if="isBeta" class="grid-block"><section class="widget-block widget-block-narrow"><incident-lite></incident-lite></section></div><div ng-if="!paid()" class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-bullseye">&nbsp;</i><span translate="translate">Optimize&nbsp;</span><span translate="translate" class="light">Your Experience</span></h2><goals-lite></goals-lite></section></div><div ng-if="config.isPlannerEnabled" class="grid-block"><maintenance-plan-lite></maintenance-plan-lite></div></div></div></div></div>');$templateCache.put('js/states/rules/list-rules.html','<section><page-header title="Rules" icon="fa-institution"></page-header><rule-filter></rule-filter><div class="content-wrap"><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box placeholder="{{\'Search rules\' | translate}}" on-search="search(model)" throttle="1000"></search-box></div><div class="col-xs-5 col-sm-7 btn-group"><a ui-sref="app.admin-topic" ng-show="user.is_internal" class="btn btn-sm btn-app pull-right">Topics Admin</a></div><div ng-hide="loading" class="push-top-narrow rules-filters"></div></div></section><section><div class="row"><div class="col-sm-12"><section ng-show="loading"><div class="spinner spinner-lg"></div></section><div class="rha-notifications"></div><div ng-hide="loading" class="rules-group"><div class="rules-group-content"><div ng-repeat="rule in pagedRules | filter:filter | orderBy:\'description\'" ng-class="{faded: rule.ack_id, hidden: (hideIgnored &amp;&amp; rule.ack_id)}" class="content-block content-block-outline rule"><div id="{{::rule.rule_id}}" class="header"><!--TODO: activate new item--><!--.new-item NEW!--><div class="pull-right"><span translate="translate" ng-class="{\'rule-inactive\': rule.ack_id, \'rule-active\': !rule.ack_id}" class="label label-default inline-right">INACTIVE</span><incident-icon rule-id="rule.rule_id" class="inline-right">&nbsp;</incident-icon><ansible-icon value="rule.ansible" ng-if="config.isPlannerEnabled"></ansible-icon></div><span ng-click="permalink(rule.rule_id, true, 30)" class="title pointer"><i ng-class="rule.category.toLowerCase()" class="fa category-icon inline-right"></i><span>{{ ::rule.category }} &gt; {{ ::rule.description }}</span><i class="fa fa-link permalink"></i></span></div><div class="content ng-animate-enabled"><div class="row"><div class="col-sm-6"><rule-toggle rule="rule"></rule-toggle></div><div class="col-sm-6 text-right"><a ng-if="rule.article" href="{{rule.article}}" translate="translate" target="_blank">Knowledgebase</a></div></div><div class="row row-short"><div class="col-sm-12"><div ng-bind-html="::rule.summary_html | trust_html" target-blank="" class="gray"></div></div></div></div><div ng-if="canIgnoreRules" class="footer footer-short"><div class="flexgrid equal-heights"><div class="row"><div class="col-sm-8"><div class="icon-group icon-group-severity"><severity-icon severity="rule.rec_impact" type="impact"></severity-icon><severity-icon severity="rule.rec_likelihood" type="likelihood"></severity-icon><severity-icon severity="rule.severity" type="severity"></severity-icon></div><risk-of-change change-risk="rule.resolution_risk"></risk-of-change></div><div class="col-sm-4 text-right"><strong ng-if="rule.impacted_systems !== undefined &amp;&amp; !rule.ack_id"><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})" translate="translate" ng-disabled="rule.impacted_systems === 0">View Impacted Systems ({{rule.impacted_systems}})</a></strong></div></div></div></div></div><div ng-show="rules.length === 0" class="row row-short"><div class="col-xs-12 text-center"><strong translate="translate">There are no rules for the selected filters.&nbsp;</strong></div></div></div></div></div></div><div ng-show="!loading" class="row row-short"><div class="col-sm-12"><pagination ng-if="rules.length &gt; pager.perPage" total-items="rules.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="doPage()" class="pull-right pagination-blue"></pagination></div></div></section></div></section>');$templateCache.put('js/states/security/security.html','<div class="container info-page-intro text-center band band-hero"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div></div></div><div class="band band-white info-page band-last"><div class="container info-page"><div class="row"><div class="col-md-12"><section class="section"><h1 translate="translate">Security</h1></section><section id="introduction" class="section introduction"><h3 translate="translate">Introduction</h3><p translate="translate">Red Hat Insights provides a mechanism for customers to get actionable intelligence regarding suggested improvements to deployed Red Hat software. As part of this optional offering, Red Hat processes configuration data about a customer\u2019s environment using Red Hat hosted and/or provided tools; this document covers the security measures Red Hat puts in place to provide secure transmission, processing, and analysis of this data by those tools.</p><p translate="translate">Red Hat is committed to evaluating, implementing and monitoring the industry security standards for those tools as they continue to evolve.</p></section><section id="on-premise" class="section on-premise"><h3 translate="translate">On Premise Security</h3><p translate="translate">Security of customer systems is paramount and Red Hat Insights has made extensive efforts to ensure that our shipped software meets the highest standards.</p><ul><li translate="translate">Insights software which executes on premise has been through a security review by Red Hat Product Security which is the same team that addresses security concerns in all other products across the Red Hat portfolio.</li><li translate="translate">Communication with Red Hat can be sent through secure proxies for audit and network ACLs.</li><li translate="translate">Enrollment is opt-in, which means we\u2019ll never collect data from systems without your explicit approval and can be scheduled daily or weekly.</li><li translate="translate">All communication with Red Hat occurs over encrypted channels using TLS</li><li translate="translate">All TLS traffic with Red Hat servers is verified with a trusted certificate that is bundled with the application, ensuring that communications can not be intercepted, such as by a man in the middle attack.</li><li translate="translate">The default communication model from client systems to Red Hat servers occurs with mutual TLS or two-way authentication using digital certificates.</li></ul></section><section id="client-side" class="section client-side"><h3 translate="translate">Client Side On Premise Data Control</h3><p translate="translate">Red Hat Insights allows customers to have control of the information that is monitored for analytical purposes; and Red Hat Insights makes it simple for subscribers to view the information which is monitored.</p><ul><li translate="translate">Red Hat Insights collects both targeted and minimal system information rather than entire logs.</li><li translate="translate">Red Hat automatically attempts to remove critical security information such as passwords before uploading when stored in standard locations</li><li translate="translate">Common types of sensitive information can be opted out of through pre-built configuration profiles</li><li translate="translate">Subscribers can blacklist any command, file, or piece of metadata that they prefer not be monitored by Red Hat Insights.</li><li translate="translate">The commands, files, and metadata monitored by Red Hat Insights are listed in a single file that is GPG signed and available at any time for easy inspection.</li><li translate="translate">Personally Identifiable Information is not collected.</li></ul></section><section id="infrastructure" class="section infrastructure"><h3 translate="translate">Infrastructure Security</h3><p translate="translate">Security of customer data in Red Hat is a priority and every effort is made to ensure that information is not unnecessarily persisted and that it is secured using industry standard best practices.</p><ul><li translate="translate">All customer data is stored within a secure physical data center with controlled access.</li><li translate="translate">Our internal 3-tiered infrastructure is compartmentalized into different physical networks and firewalled to ensure services are isolated for maximum security.</li><li translate="translate">All volumes containing customer data at rest are encrypted with LUKS encryption</li><li translate="translate">All parts of the internal infrastructure transmit their logs to a centralized log aggregator for inspection and analysis.</li></ul></section><section id="best-practices" class="section best-practices"><h3 translate="translate">Development Best Practices</h3><ul><li translate="translate">All software is analyzed with static code analyzers and all reported issues are fixed before code is deployed into production.</li><li translate="translate">Code is peer reviewed.</li></ul></section></div></div></div></div><div class="band band-alt band-narrow info-page"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h3 translate="translate">Additional Resources</h3><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Getting started with Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></section></div></div></div></div>');$templateCache.put('js/states/splash/splash.html','<div class="landing-page-top band band-hero band-first band-narrow"><div class="container"><div class="row"><div class="col-sm-10 col-sm-offset-1"><h1 translate="translate" class="headline">You can\'t fix what you can\'t see</h1><div translate="translate" class="strapline">Take the guesswork out of infrastructure optimization with Red Hat Insights proactive analytics and real-time intelligence.</div></div></div><div class="row"><div class="col-sm-12 text-center"><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app">Getting started guide</a><span translate="translate" class="strapline btn-seperator">or</span><a ui-sref="app.overview" translate="translate" class="btn btn-app">Go to the application</a></div></div></div></div><div class="intro-video band band-whispy"><div class="container"><div class="row"><div class="col-sm-12"><h2 translate="translate" class="section-header text-center">Introduction to Red Hat Insights</h2><div class="videowrapper"><iframe width="752" height="423" src="https://www.youtube.com/embed/MfRnKe-xxLM" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div></div></div></div></div><div id="ansible" class="ansible band band-white"><div class="container"><div class="row"><div class="col-sm-4 col-md-offset-1 hidden-xs text-center"><img src="static/images/g_ansible-venn.png"/></div><div class="col-sm-8 col-md-6"><!--img.logo.logo-ansible(src=\'../static/images/l_ansible.svg\')--><h2 translate="translate" class="section-title">Automate discovery and remediation</h2><p translate="translate">Automate the resolution of Insights findings through Ansible Playbooks.</p><p><strong>Red Hat Insights&nbsp;</strong><span translate="translate">creates significant time savings and helps avoid firefighting by enabling automatic resolution of critical issues before they affect your business. Optimize your environment and boost security with</span><strong>Red Hat Insights.</strong></p></div></div></div></div><div class="pre-footer band band-white"><div class="container text-center"><h2 translate="translate" class="section-header">Start proactively finding and fixing infrastructure risks today</h2><h2 translate="translate">Your current subscription provides a free 30-day evaluation</h2><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app">TRY IT</a></div></div><div class="core-values band band-gray-light"><div class="container"><div class="row"><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split"><i class="fa fa-sliders"></i></div><h4 translate="translate" class="uppercase bold">Avoid firefighting</h4><p translate="translate">Get in-depth analysis of risks on an individual system, topic, or site-wide level, so you can address them before they affect your business.</p></div></div><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split icon-split-orange"><i class="fa fa-crosshairs"></i></div><h4 translate="translate" class="uppercase bold">Act on advice you can trust</h4><p translate="translate">Resolve issues quickly and take the guesswork out of remediation using tailored resolutions created by domain experts and cross-referenced against thousands of similar environments.</p></div></div><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split icon-split-red"><i class="fa fa-cogs"></i></div><h4 translate="translate" class="uppercase bold">Master complexity</h4><p translate="translate">Ensure integration of high-priority security analysis in an operations-friendly workflow with a view of all actions prioritized by level of risk.</p></div></div></div></div></div><div class="testimonial band band-black"><div class="container"><blockquote><p translate="translate">...With Red Hat Insights, we can resolve critical issues before they occur. We no longer have to look at individual systems because we have one tool that gives us much more comprehensive and actionable information on our infrastructure.</p><p translate="translate">It\'s important to have a company like Red Hat that\'s working toward the same goals we are, that understands our business and what we\'re trying to accomplish, and understands our infrastructure and our businesses. As the market continues to change and new technologies are released, we\'ll continue to change as well, and we expect Red Hat to be an important partner to help us on that journey.</p></blockquote><author class="author"><strong>Jason Cornell,&nbsp;</strong>Manager of Cloud and Infrastructure Automation, Cox Automotive</author></div></div><div class="heartbleed band band-white"><div class="container"><h2 translate="translate" class="section-header text-center">Real-Time Risk Assessment</h2><div class="row"><div class="col-sm-8 col-sm-offset-2"><img src="static/images/g_heartbleed.png"/></div></div></div></div><div class="whitepaper band band-whispy"><div class="container"><h2 translate="translate" class="section-header text-center">Related Resources</h2><div class="flexgrid equalheights related-resources"><div class="row"><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Red Hat Insights Blog</h4><p translate="translate">Want to learn about the newest Red Hat Insights features and discover how to get the most out of the Insights service?</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://access.redhat.com/blogs/insights" translate="translate" class="btn">Read Blog Posts</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Datasheet</h4><p translate="translate">Learn about the benefits Insights can provide and technical requirements.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="static/misc/rh-insights-datasheet-3-2017.pdf" translate="translate" class="btn">Read More</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">2017 Summit Announcement</h4><p translate="translate">Predict and prevent problems before they occur in your IT infrastructure with actionable intelligence powered by Red Hat.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://www.redhat.com/en/about/press-releases/red-hat-delivers-analytics-driven-automation-latest-version-insights-ansible-integration" translate="translate" class="btn">View Press Release</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Virtual Security Event</h4><p translate="translate">Hear Mayo Clinic explain how they used Red Hat Insights to proactively intercept security risks.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://vts.inxpo.com/Launch/Event.htm?ShowKey=31574" translate="translate" class="btn">View Virtual Event</a></div></div></div></div></div></div></div><div class="video band band-gray-light"><div class="container"><div class="row"><div class="col-sm-12"><h2 translate="translate" class="section-header text-center">See Insights in Action</h2></div></div><div class="row"><div class="col-sm-12 text-center"><div class="file-video"><iframe width="1139" height="641" src="https://www.youtube.com/embed/t1tlntxyJyc" frameborder="0" allowfullscreen="allowfullscreen" class="media-youtube-player rh-analytics-youtube"></iframe></div></div></div></div></div>');$templateCache.put('js/components/actions/actionsBreadcrumbs/actionsBreadcrumbs.html','<div class="actions-breadcrumbs"><ol ng-show="getCrumbs().length" class="breadcrumb actions-crumbs"><li ng-repeat="crumb in getCrumbs()" ng-class="{active: $last}" ng-show="getCrumbs().length &gt; 1"><a ng-hide="$last" ng-click="crumbClick(crumb)">{{crumb.label | translate | titlecase}}</a><span ng-show="$last &amp;&amp; $index &lt; 2">{{crumb.label| translate | titlecase }}</span><span ng-show="$last &amp;&amp; $index &gt;= 2">{{crumb.label| translate}}</span></li></ol></div>');$templateCache.put('js/components/actions/actionsRule/actionsRule.html','<div class="actions-rule"><page-header title="Actions" icon="fa-file-text"></page-header><actions-rule-filters></actions-rule-filters><div ng-hide="loading" class="content-wrap"><actions-breadcrumbs ng-hide="loading" class="actions-breadcrumbs"></actions-breadcrumbs><section class="actions-rule-details gray"><h4 ng-if="isIncident(ruleDetails.rule_id) &amp;&amp; isBeta"><div class="icon-inline"><incident-icon rule-id="ruleDetails.rule_id">&nbsp;</incident-icon><span translate="translate" class="red">This issue is an incident, it has already occurred.</span></div></h4><h2><div ng-if="config.isPlannerEnabled" class="pull-right"><ansible-icon value="ruleDetails.ansible"></ansible-icon></div>{{ruleDetails.description}}</h2><p ng-bind-html="ruleDetails.generic_html | trust_html"></p><all-severity-icons rule="ruleDetails" ng-if="!loading"></all-severity-icons><risk-of-change change-risk="ruleDetails.resolution_risk"></risk-of-change></section><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box on-search="search(model)" placeholder="{{\'Find a system\' | translate}}"></search-box></div></div></section><!-- Show Create Playbook, Add to Plan if at least one system has been selected--><div class="row row-short"><div class="col-xs-4 col-sm-2"><div class="dropdown"><button data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" translate="translate" ng-disabled="!checkboxes.totalChecked || !config.isPlannerEnabled" class="btn btn-default dropdown-toggle">Actions<span class="caret"></span></button><ul class="dropdown-menu"><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(false)" translate="translate">Create a new Plan/Playbook<ansible-icon value="true" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(true)" ng-disabled="!plans.future.length &amp;&amp; !plans.unscheduled.length" translate="translate">Add to existing Plan/Playbook<ansible-icon value="plans.future.length || plans.unscheduled.length" show-tooltip="false" class="inline-left"></ansible-icon></a></li></ul></div></div><div class="col-xs-8 col-sm-8 text-center"><span ng-if="!loadingSystems"><h3 translate="translate" translate-n="{{totalRuleSystems}}" translate-plural="{{$count}} Impacted Systems" ng-if="ruleDetails.type !== &quot;osp&quot;" class="system-count">1 Impacted System</h3><h3 translate="translate" translate-n="{{totalRuleSystems}}" translate-plural="{{$count}} Impacted Deployments" ng-if="ruleDetails.type === &quot;osp&quot;" class="system-count">1 Impacted Deployment</h3><small ng-if="checkboxes.totalChecked" translate="translate" class="light">&nbsp; ({{numberOfSelected()}} Selected<span ng-show="allSelected &amp;&amp; pager.perPage &lt; totalRuleSystems">.<a ng-show="!reallyAllSelected" ng-click="reallySelectAll()">&nbsp;Select All Systems.</a><a ng-show="reallyAllSelected" ng-click="deselectAll()">&nbsp;Deselect All Systems.</a></span><span>)</span></small></span></div><div class="col-xs-4 col-sm-2 hidden-xs text-right"><list-type ng-hide="hideListSwitch"></list-type></div></div><div ng-show="getListType() === listTypes.card" class="card-table-header"><div class="row"><div class="col-sm-4"><input tooltip="Select All" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, ruleSystems);" class="action-checkbox"/><label translate="translate" ng-click="sort(\'system_type_id\')">&nbsp; Type</label></div><div class="col-sm-4"><strong translate="translate" ng-click="sort(\'toString\')">Name &nbsp;</strong></div><div class="col-sm-4 text-right"><strong translate="translate" ng-click="sort(\'report_count\')">Action Count</strong></div></div></div><div ng-show="getListType() === listTypes.card &amp;&amp; !loadingSystems" class="row row-short"><div class="col-sm-12"><system-card ng-repeat="system in ruleSystems" system="system" rule="ruleDetails" checkboxes="checkboxes"></system-card></div></div><div ng-show="getListType() === listTypes.table" class="row row-short"><div class="col-sm-12"><table class="table nomar ng-table table-fixed"><thead><tr><th style="width: 30px"><input tooltip="Select All" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, ruleSystems)" class="action-checkbox"/></th><th style="width: 27%;" ng-class="predicate | sortClass:\'system_type_id\':reverse" ng-click="sort(\'system_type_id\')" class="sortable"><div translate="translate" class="sort-indicator">Type</div></th><th ng-class="predicate | sortClass:\'toString\':reverse" ng-click="sort(\'toString\')" class="sortable"><div translate="translate" class="sort-indicator">Name</div></th><th style="width: 27%;" ng-class="predicate | sortClass:\'last_check_in\':!reverse" ng-click="sort(\'last_check_in\')" class="sortable"><div translate="translate" class="sort-indicator">Reported</div></th></tr></thead><tbody ng-show="!loadingSystems"><tr ng-click="checkboxes.rowClick($event, system.system_id)" ng-mousedown="checkboxes.rowClick($event, system.system_id)" ng-class="{\'stale\': !system.isCheckingIn}" ng-repeat="system in ruleSystems" data-id="{{system.system_id}}"><td style="width: 30px"><input type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" class="selectme"/></td><td style="width: 27%;"><type-icon type-id="system.system_type_id" include-text="true"></type-icon></td><td class="break"><a ng-click="showSystem(system)">{{ system.toString }}</a></td><td style="width: 27%;">{{ ::system.last_check_in | timeAgo}}</td></tr></tbody></table></div></div><div ng-hide="loading || loadingSystems" class="row row-short"><pagination ng-if="totalRuleSystems &gt; pager.perPage" total-items="totalRuleSystems" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="paginate()" class="pull-right pagination-blue"></pagination></div></div><div ng-show="loading || loadingSystems" class="margin-top"><div class="text-center"><div class="spinner spinner-lg"></div></div></div></div>');$templateCache.put('js/components/actions/actionsRuleFilters/actionsRuleFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><check-in-select class="col-xs-6 col-md-4 col-lg-3"></check-in-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/actions/severitySummary/severitySummary.html','<div class="widget severity-summary"><ul><li><div ng-if="ruleCount.info || !loaded" ui-sref="app.topic({id: \'low-risk\', \'filters:totalRisk\': \'INFO\'})" class="pointer"><div class="metrics"><strong>{{\'Low\' | translate}}</strong><span ng-if="(ruleCount.info / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.info / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.info / ruleCount.total | toWidth" class="progress green"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.info &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of low severity</span></div></li><li><div ng-if="ruleCount.warn || !loaded" ui-sref="app.topic({id: \'medium-risk\', \'filters:totalRisk\': \'WARN\'})" class="pointer"><div class="metrics"><strong>{{\'Medium\' | translate}}</strong><span ng-if="(ruleCount.warn / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.warn / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.warn / ruleCount.total | toWidth" class="progress yellow"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.warn &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of medium severity</span></div></li><li><div ng-if="ruleCount.error || !loaded" ui-sref="app.topic({id: \'high-risk\', \'filters:totalRisk\': \'ERROR\'})" class="pointer"><div class="metrics"><strong>{{\'High\' | translate}}</strong><span ng-if="(ruleCount.error / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.error / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.error / ruleCount.total | toWidth" class="progress orange"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.error &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of high severity</span></div></li><li><div ng-if="ruleCount.critical || !loaded" ui-sref="app.topic({id: \'critical-risk\', \'filters:totalRisk\': \'CRITICAL\'})" class="pointer"><div class="metrics"><strong>{{\'Critical\' | translate}}</strong><span ng-if="(ruleCount.critical / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.critical / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.critical / ruleCount.total | toWidth" class="progress red"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.critical &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of critical severity</span></div></li></ul></div>');$templateCache.put('js/components/actions/systemSummary/systemSummary.html','<div class="widget key-issues"><div class="row"><div class="col-sm-12"><div ng-if="stats.systems.affected &gt; 0 || !loaded" ui-sref="app.topic({id: \'critical\'})" class="pointer"><div class="metrics"><strong translate="translate">{{stats.systems.affected}} of {{stats.systems.total}} systems have critical issues</strong></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="stats.systems.affected / stats.systems.total | toWidth" class="progress red"></div><div class="bar"></div></div></div><div ng-if="stats.systems.affected === 0 &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right"></i><span translate="translate">You have no issues of critical severity</span></div></div></div></div>');$templateCache.put('js/components/announcements/announcementsScroll/announcementsScroll.html','<div class="col-sm-12"><!-- add the \'active\' class only when the caret has been clicked and the notification is expanded--><h3 ng-if="items.length === 0" translate="translate" class="text-center">You have no announcements.</h3><div ng-repeat="a in announcements" ng-class="{\'acked\': a.acked}" class="content-block content-block-outline announcement"><header id="{{::a.id.toString()}}" class="header gray"><div class="row"><div class="col-sm-8 col-md-9 col-lg-10"><div ng-click="permalink(a.id.toString(), true, 30)" class="title pointer"><span>{{a.title}}</span></div></div><div class="col-sm-4 col-md-3 col-lg-2 text-right"><date><strong>{{ (a.start || a.created_at) | date }}&nbsp;&nbsp;</strong></date><span ng-class="{\'read\' : read}" class="message-status-toggle"><i ng-if="a.acked" ng-click="ackAnnouncement(a)" class="fa fa-check-circle-o acked"></i><i ng-if="!a.acked" ng-click="ackAnnouncement(a)" class="fa fa-circle-o"></i></span></div></div></header><div class="content"><div ng-if="canCreate" class="row"><div class="col-sm-9"><div ng-if="canCreate &amp;&amp; a.start || a.end" class="row"><div class="col-sm-12"><strong translate="translate">Start/End:&nbsp;</strong>{{a.start | date}} - {{a.end | date}}</div></div><div ng-if="a.body" class="row row-short"><div class="col-sm-12"><p>{{a.body}}</p></div></div></div><div class="col-sm-3 text-right"><strong><a title="Delete" ng-click="deleteAnnouncement(a)">Delete</a><div class="sep"></div><a title="Edit" ng-click="editAnnouncement(a)">Edit</a></strong></div></div><!-- show dismiss button if announcement has not been acked--><div ng-if="!canCreate &amp;&amp; !a.acked" class="row"><div class="col-sm-8"><p>{{a.body}}</p></div><div class="col-sm-4"><button ng-click="ackAnnouncement(a)" class="btn">Dismiss</button></div></div><div ng-if="!canCreate &amp;&amp; a.acked" class="row"><div class="col-sm-12"><p>{{a.body}}</p></div></div></div><!--footer.footer.gray(ng-if="canCreate")--></div></div>');$templateCache.put('js/components/card/systemCard/systemCard.html','<div ng-class="{\'stale\': !system.isCheckingIn}" class="system-card"><card expandable="expandable" on-toggle="toggleContent(ctx)"><card-header><div class="row"><div class="col-sm-4"><div style="display: inline-block;padding:1px;" tooltip="{{checkboxTooltip}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top"><input ng-if="checkboxes" type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" ng-disabled="!selectable" class="selectme"/>&nbsp;&nbsp;</div><type-icon type-id="system.system_type_id" ng-if="!loading" include-text="true"></type-icon><span ng-if="!system.isCheckingIn">&nbsp;(stale system)</span><i ng-if="loading" class="fa spinner-xs spinner"></i></div><div class="col-sm-4"><div class="ellipsis-wrapper"><strong title="{{hostnameTitle}}" ng-click="showActions(); $event.stopPropagation();" tooltip="{{getSystemName(system)}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="hostname">&nbsp;{{getSystemName(system)}}</strong></div></div><div class="col-sm-4 text-right"><a ng-click="showActions(); $event.stopPropagation();" class="action-count"><span translate="translate" translate-n="system.report_count" translate-plural="{{$count}} Actions" class="text">{{system.report_count}} Action</span><span ng-class="{\'success\': !system.report_count, \'fail\': system.report_count}" class="pull-right status-icon"><i ng-click="showActions(); $event.stopPropagation();" ng-class="{\'no-action\': !system.report_count, \'yes-action\': system.report_count}" class="fa"></i></span></a></div></div></card-header><card-content><div ng-if="!system.isCheckingIn"><strong>Last checkin:&nbsp;</strong><span ng-hide="system.last_check_in" translate="translate">never</span><span ng-show="system.last_check_in">{{system.last_check_in | timeAgo}}</span></div><div ng-if="hasFamilyMembers()" class="separation-header"><h4>Related Systems</h4></div><!-- Family members--><div class="row"><div class="col-sm-12"><div ng-if="hasFamilyMembers()" class="family-members"><div class="row"><link-group ng-repeat="linkGroup in linkGroups | orderBy: &quot;+priority&quot;" group="linkGroup.members" typeid="linkGroup.system_type_id" class="link-group col-md-12"></link-group></div><!-- System metadata--><div class="separation-header metadata-separator"><h4>System Metadata</h4></div></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="metadata"><system-metadata ng-if="!$parent.card.collapsed" system="system"></system-metadata></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="system-card-actions"><div translate="translate" ng-disabled="!selectable" ng-click="unregister()" class="btn btn-outline btn-xs">Unregister</div></div></div></div></card-content><card-footer></card-footer></card></div>');$templateCache.put('js/components/config/dev/dev.html','<div class="dev"><div class="user"><h2>Demo Mode<div><button ng-show="user.demo_mode || user.is_internal" ng-click="demoModeButtonOnClick()" class="btn btn-small">{{getDemoModeButtonText()}}</button></div></h2><h2>API Prefix</h2><table><tbody><tr><td>Presets</td><td><select ng-options="v as k for (k, v) in presets.apiPrefix" ng-model="tmp.apiPrefix" ng-change="updateApiPrefix()"></select></td></tr><tr><td>Choose your own adventure</td><td><input ng-model="tmp.apiPrefix" class="full-width"/></td></tr></tbody></table><h2>API Version</h2><table><tbody><tr><td>Presets</td><td><select ng-options="v for v in presets.apiVersions" ng-model="tmp.apiVersion" ng-change="updateApiVersion()"></select></td></tr></tbody></table><div style="padding-top: 20px;"><button ng-click="save()" class="btn btn-small pull-right">Save API Settings</button></div><h2>Fake user info</h2><table><tbody><tr><td>email</td><td><input ng-model="user.email"/></td></tr><tr><td>name</td><td><input ng-model="user.first_name"/><input ng-model="user.last_name"/></td></tr></tbody></table><h2>Fake Entitlements</h2><table><tbody><tr><td>Presets</td><td><select ng-options="k as k for (k, v) in presets.entitlements" ng-model="tmp.tmpEnt" ng-change="setEntitlements()"></select></td></tr><tr><td> State</td><td><pre>{{getPretty(user.current_entitlements)}}</pre></td></tr></tbody></table></div></div>');$templateCache.put('js/components/config/groups/groups.html','<div class="groups"><section><div ng-bind="message" ng-show="message.length &gt; 0" role="alert" class="alert alert-danger"></div><group-form></group-form></section><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading group list info \u2026</span></section><section><div class="row"><div class="col-xs-12"><h2 ng-show="!loading" translate="translate" class="page-title">Groups List</h2><div ng-show="isCreating" class="text-center"><div class="spinner spinner-lg"></div><span translate="translate">Creating group \u2026</span></div></div></div><div class="row"><div class="col-xs-12"><div class="group-list"><group ng-repeat="group in groups | orderBy:\'display_name\'" class="group"></group></div></div></div></section></div>');$templateCache.put('js/components/config/hidden/hidden.html','<div class="acks row active"><div class="col-md-8"><h2 translate="translate" class="page-title">Hidden Rules</h2><p translate="translate" translate-n="acks.length" translate-plural="You currently have {{$count}} hidden rules.">You currently have 1 hidden rule.</p><p translate="translate"><strong>Note: </strong>These are account wide. You must be an Org Admin to make these changes.</p></div><div class="col-md-12"><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading hidden rules\u2026</span></section></div><div class="col-md-12"><section ng-hide="loading"><table ng-show="acks.length" class="table table-striped"><thead><tr><th translate="translate">Category</th><th translate="translate">Rule</th><th></th></tr></thead><tbody><tr ng-repeat="ack in acks"><td>{{ack.rule.category}}</td><td>{{ack.rule.description}}</td><td><div ng-click="delete(ack)" class="fa fa-times pointer pull-right"></div></td></tr></tbody></table></section></div></div>');$templateCache.put('js/components/config/messaging/messaging.html','<div class="acks row active"><div class="col-md-12"><h2 translate="translate" class="page-title">Messaging Preferences</h2><p translate="translate">Manage Red Hat Insights email subscriptions for your personal login. All emails will be sent to the email address associated with your login. To update your address see <a href="https://www.redhat.com/wapps/ugc/protected/personalInfo.html" target="_blank">Personal Info</a>.</p><form ng-submit="save(form)" name="form"><fieldset><div ng-repeat="campaign in campaigns | orderBy:\'id\' track by campaign.id" class="checkbox push-bottom-narrow"><label><input type="checkbox" ng-model="campaign.enrolled"/>{{campaign.label|translate}}<div ng-if="campaign.description" class="small"> {{campaign.description|translate}}</div></label></div><button name="submit" ng-disabled="form.$pristine" translate="translate" class="btn btn-app">Update</button></fieldset></form></div></div>');$templateCache.put('js/components/config/permissions/permissions.html','<div class="user-permissions"><div class="row"><div class="col-xs-12"><input ng-model="newPermission.sso_username"/><select ng-options="p as p.label for p in permissions" ng-model="tmpPermission"></select><div ng-click="addNewPermission()" class="btn">Add</div></div></div><div class="row group-list"><div ng-repeat="user in users | filter:newPermission.sso_username" class="col-sm-4"><div class="group user-permission"><div class="name header"><a ng-click="newPermission.sso_username = user">{{user}}</a></div><div class="content"><div class="permissions"><div ng-repeat="p in userMap[user]" class="perm">{{p.permission.label}}<div ng-click="removeSingle(p)" class="remove fa fa-times"></div></div></div><div class="remove pull-right"><a ng-click="removeAll(userMap[user])" class="fa fa-times">Remove all!</a></div></div></div></div></div></div>');$templateCache.put('js/components/config/settings/settings.html','<div class="acks row active"><div class="col-md-8"><h2 translate="translate" class="page-title">Settings</h2><p translate="translate"><strong>Note: </strong>These are account wide. You must be an Org Admin to make these changes.</p></div><div class="col-md-12"><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading Settings</span></section></div><div class="col-md-12"><section ng-hide="loading"><table class="table table-striped"><thead><tr><th translate="translate">Setting</th><th translate="translate">Value</th></tr></thead><tbody><tr ng-repeat="setting in settings"><td>{{setting.name}}</td><td> <input type="checkbox" ng-model="setting.value"/></td></tr></tbody></table><button ng-click="save()" translate="translate">Save</button></section></div></div>');$templateCache.put('js/components/config/webhooks/webhooks.html','<div class="webhooks"><h2 translate="translate" class="page-title">Webhooks</h2><p translate="translate">Webhooks allow external services to be notified of updates in Red Hat Insights. An HTTP POST request will be issued for a configured URL every time an event occurs in Red Hat Insights.&nbsp; See&nbsp;<a translate="translate" target="_blank" href="https://github.com/RedHatInsights/insights-webhooks/wiki/Documentation">webhook documentation</a>&nbsp; for more details.</p><section><div ng-show="loader.loading" class="spinner"></div><p translate="translate" ng-if="!webhooks.length &amp;&amp; !loader.loading">No webhooks configured</p><table ng-if="webhooks.length" class="table table-striped"><thead><tr><th translate="translate">URL</th><th translate="translate">Event Types</th><th translate="translate">Active</th><th translate="translate">Actions</th></tr></thead><tbody><tr ng-repeat="webhook in webhooks | orderBy:&quot;id&quot; track by webhook.id"><td class="break"><a ui-sref="app.config-webhook-edit({id: webhook.id})">{{webhook.url}}</a></td><td>{{webhook.event_types.length}}</td><td class="text-center"><input type="checkbox" ng-model="webhook.active" ng-change="activeChanged(webhook)"/></td><td class="text-center"><span class="icon-inline"><a ui-sref="app.config-webhook-edit({id: webhook.id})"><i tooltip="{{\'Edit\' | translate}}" class="fa fa-pencil-square-o pointer"></i></a><a ng-click="delete(webhook)"><i tooltip="{{\'Remove\' | translate}}" class="fa fa-remove"></i></a></span></td></tr></tbody></table><div class="pull-right"><div class="btn-group"><button ng-click="ping()" translate="translate" ng-disabled="!isPingable()" class="btn btn-sm btn-secondary">Test event</button><button ui-sref="app.config-webhook-edit({id: &quot;new&quot;})" translate="translate" class="btn btn-sm btn-accent">Add webhook</button></div></div></section></div>');$templateCache.put('js/components/filterComponents/actionsSelect/actionsSelect.html','<div class="actions-select"><label translate="translate">System Health</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/ansibleSupportTriState/ansibleSupportTriState.html','<div class="filter-group"><label translate="translate"><strong>Ansible Support</strong></label><div class="radio-group"><div ng-repeat="(k, v) in AnsibleSupportFilters" class="radio-inline"><label translate="translate"><input type="radio" name="ansibleSupportFilterRadio" ng-model="showAnsibleSupport" value="{{k}}" ng-click="filterAnsibleSupport(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/categorySelect/categorySelect.html','<div class="checkin-select"><label translate="translate">Category</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/checkInSelect/checkInSelect.html','<div class="checkin-select"><label translate="translate">System Status</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/filterButton/filterButton.html','<a ng-class="{active: getShowFilters()}" ng-click="toggleShowFilters()" class="btn btn-outline btn-xs filter-label"><i class="fa fa-filter fa-2x filter-button"></i>Filter</a>');$templateCache.put('js/components/filterComponents/hideIgnoredToggle/hideIgnoredToggle.html','<div class="col-toggle"><label translate="translate" class="full-width">Hide Ignored</label><div class="switch"><input id="cmn-toggle-2" type="checkbox" ng-model="hideIgnored" ng-change="persistHideIgnored()" class="cmn-toggle cmn-toggle-square"/><label for="cmn-toggle-2"></label></div></div>');$templateCache.put('js/components/filterComponents/impactSelect/impactSelect.html','<div class="checkin-select"><label translate="translate">Impact</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.title}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.title}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/likelihoodSelect/likelihoodSelect.html','<div class="checkin-select"><label translate="translate">Likelihood</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.title}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.title}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/incidentsTriState/incidentsTriState.html','<div class="filter-group"><label translate="translate"><strong>Incidents</strong></label><div class="radio-group"><div ng-repeat="(k, v) in incidentFilters" class="radio-inline"><label translate="translate"><input type="radio" name="incidentFilterRadio" ng-model="showIncidents" value="{{k}}" ng-click="filterIncidents(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/productSelect/productSelect.html','<div ng-if="!getRHELOnly()" class="environment-buttons"><label translate="translate">Platform</label><div class="dropdown gray"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle">{{getProductLabel(getSelectedProduct())}}<span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="product in products"><a ng-click="doSelectProduct(product)">{{getProductLabel(product)}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/riskOfChangeSelect/riskOfChangeSelect.html','<div class="risk-of-change-select"><label translate="translate">Risk of Change</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/ruleStatusTriState/ruleStatusTriState.html','<div class="filter-group"><label translate="translate"><strong>Rule Status</strong></label><div class="radio-group"><div ng-repeat="(k, v) in RuleStatusFilters" class="radio-inline"><label translate="translate"><input type="radio" name="ruleStatusFilterRadio" ng-model="showRuleStatus" value="{{k}}" ng-click="filterRuleStatus(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/searchBox/searchBox.html','<div class="table-search"><input type="text" autofocus="autofocus" placeholder="{{placeholder}}" ng-keypress="keyPressed($event)" ng-model="model" ng-change="change()" ng-class="{\'search-box form-control\': isFullLength}"/><i ng-hide="searching()" class="fa fa-search"></i><i ng-show="searching()" ng-click="resetSearch()" class="fa fa-times"></i></div>');$templateCache.put('js/components/filterComponents/totalRiskSelect/totalRiskSelect.html','<div class="filter-group"><label translate="translate"> <strong>Total Risk</strong></label><div class="dropdown full-width"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn dropdown-toggle"><span ng-model="label" class="text active">{{label | translate}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a href="#" ng-click="select(option)">{{option.label | translate}}</a></li></ul></div></div>');$templateCache.put('js/components/incident/incidentIcon/incidentIcon.html','<i tooltip="{{tooltip}}" ng-show="isIncident" aria-label="Incident icon" class="fa fa-bullseye"></i>');$templateCache.put('js/components/incident/incidentLite/incidentLite.html','<div ng-if="loading" class="row"><div class="col-sm-12 block-lg"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="incident-lite"><div class="cell icon"><i aria-hidden="true" class="fa fa-bullseye"></i></div><!-- If incidents--><div ng-if="incidentCount &gt; 0" class="cell count"><strong translate="translate">{{incidentCount}} of {{totalHits}}</strong><br/><span translate="translate">Issues are incidents</span></div><div ng-if="incidentCount &gt; 0" translate="translate" class="cell supporting-text">An&nbsp;<strong translate="translate">incident&nbsp;</strong><span translate="translate">is an issue that is currently or has already affected systems.&nbsp;</span><a ui-sref="app.topic({id: \'incidents\'})" class="link"><strong translate="translate">View incidents</strong></a></div><!-- If no incidents--><div ng-if="incidentCount === 0" class="cell count"><strong>0</strong><br/><span translate="translate">Incidents</span></div><div ng-if="incidentCount === 0" class="cell supporting-text">An&nbsp;<strong translate="translate">incident&nbsp;</strong><span translate="translate">is an issue that is currently or has already affected systems. You currently have no incidents.</span></div></div>');$templateCache.put('js/components/incident/incidentSummary/incidentSummary.html','<div ng-if="incidentCount &gt; 0" class="cell counts"><div class="count"><h4 class="num">{{incidentCount}}</h4><span translate="translate">Incidents</span></div><div class="count"><h4 class="num">{{incidentSystemCount}}</h4><span translate="translate">Systems</span></div></div><div ng-if="incidentCount === 0" class="cell counts"><div class="count"><h4 class="num success">0</h4><span translate="translate">incidents</span></div></div><div class="cell supporting-text"><div ng-if="incidentCount &gt; 0" class="icon-inline"><i aria-hidden="true" class="fa fa-bullseye"></i><p>An&nbsp;<strong translate="translate">incident&nbsp;</strong>is an issue that is currently or has already affected systems. {{incidentCount}} of <span translate="translate" translate-n="ruleHits" translate-plural=" {{$count}} issues">{{ruleHits}} issue </span><span translate="translate" translate-n="incidentCount" translate-plural="&amp;nbsp;are INCIDENTS affecting">&nbsp;is an INCIDENT affecting </span><span translate="translate" translate-n="incidentSystemCount" translate-plural="&amp;nbsp;{{$count}} systems.">&nbsp;{{incidentSystemCount}} system. </span><span translate="translate">&nbsp;It is imperative that these incidents be addressed to ensure optimal performance.</span><br/><a translate="translate" ui-sref="app.topic({id: \'incidents\'})" class="link strong">View incidents</a></p></div><div ng-if="incidentCount === 0" class="icon-inline"><i aria-hidden="true" class="fa fa-bullseye"></i><p translate="translate">An&nbsp;<strong>incident&nbsp;</strong>is an issue that is currently or has already affected systems. You have 0 issues that are INCIDENTS.</p></div></div>');$templateCache.put('js/components/inventory/inventoryActions/inventoryActions.html','<div class="row row-short table-options"><div class="col-xs-4 col-sm-2"><div class="dropdown"><button data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" translate="translate" ng-disabled="!checkboxes.totalChecked" class="btn btn-default dropdown-toggle">Actions<span class="caret"></span></button><ul class="dropdown-menu"><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(false)" ng-disabled="!isFixableSelected()" translate="translate">Create a new Plan/Playbook<ansible-icon value="isFixableSelected()" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(true)" ng-disabled="!isFixableSelected() || (!plans.future.length &amp;&amp; !plans.unscheduled.length)" translate="translate">Add to existing Plan/Playbook<ansible-icon value="isFixableSelected() &amp;&amp; (plans.future.length || plans.unscheduled.length)" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li><a ng-click="groupSystems(systemsToAction())" translate="translate">Group systems</a></li><li ng-if="Group.current().id"><a ng-click="removeFromGroup()"><span translate="translate" translate-n="systemsToAction().length" translate-plural="Remove systems from group">Remove system from group</span><strong>&nbsp;{{Group.current().display_name}}</strong></a></li><li tooltip="{{unregisterButtonTooltip}}"><a ng-disabled="!isUnregistrableSelected()" ng-click="isUnregistrableSelected() &amp;&amp; doUnregisterSelected()" translate="translate" class="pointer-events-auto">Unregister</a></li></ul></div></div><div class="col-xs-8 col-sm-8 text-center"><span ng-hide="reloading"><h3 translate="translate" translate-n="totalSystems()" translate-plural="{{$count}} Systems" class="system-count">1 System</h3><small ng-if="checkboxes.totalChecked" translate="translate" class="light">&nbsp; ({{totalSystemsSelected}} Selected<span ng-show="allSelected &amp;&amp; pager.perPage &lt; totalSystems()">.<a ng-show="!reallyAllSelected" ng-click="reallySelectAll()" translate="translate">&nbsp;Select All Systems.</a><a ng-show="reallyAllSelected" ng-click="deselectAll()" translate="translate">&nbsp;Deselect All Systems.</a></span><span>)</span></small><br/><a ng-click="registerSystem()" ng-if="isPortal" class="icon-inline"><i class="fa fa-plus"></i><strong translate="translate">Register More</strong></a></span></div><div class="col-sm-2 hidden-xs text-right-sm"><list-type></list-type></div></div>');$templateCache.put('js/components/inventory/inventoryActions/unregisterConflict.html','<div class="wrapper"><div class="unregister-conflict"><p translate="translate">The following systems types cannot be unregistered on their own:</p><ul><li ng-repeat="role in roles">{{role.name}} ({{role.count}}x)</li></ul><p translate="translate">Unregister their entire deployment to remove them.</p><p><strong translate="translate" translate-n="validCount" translate-plural="Do you want to proceed with the remaining {{$count}} systems?"> \nDo you want to proceed with the remaining 1 system?</strong></p></div></div>');$templateCache.put('js/components/inventory/inventoryFilters/inventoryFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><check-in-select class="col-xs-6 col-md-4 col-lg-3"></check-in-select><actions-select class="col-xs-6 col-md-4 col-lg-3"></actions-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/inventory/system/system.html','');$templateCache.put('js/components/maintenance/expandableSystemList/expandableSystemList.html','<div><ul><li ng-repeat="system in systems | orderBy: \'toString\' | limitTo:limit track by system.system_id"><a href="#" ng-click="InventoryService.showSystemModal(system, true)">{{system.toString}}</a></li></ul><div ng-if="limit &amp;&amp; systems.length &gt; limit"><a href="#" ng-click="toggle()" translate="translate">+ {{systems.length - limit}} more</a></div><div ng-if="!limit"><a href="#" ng-click="toggle()" translate="translate">Hide</a></div></div>');$templateCache.put('js/components/maintenance/maintenanceCategorySelect/maintenanceCategorySelect.html','<div class="category-select"><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}} ({{plans[selected.id].length}})</span><span class="caret dropdown-caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options" ng-if="plans[option.id].length || option.id !== &quot;suggested&quot;"><a ng-click="select(option)" ng-disabled="!plans[option.id].length &amp;&amp; option.id !== &quot;unscheduled&quot;">{{option.label}} ({{plans[option.id].length}})</a></li></ul></div></div>');$templateCache.put('js/components/maintenance/maintenanceModal/maintenanceModal.html','<div ng-class="{updating: loader.loading}" class="maintenance-plan-modal main-content updatable"><div ng-if="loader.loading" class="spinner spinner-lg"></div><div class="modal-actions"><div ng-click="close()" class="fa fa-close pull-right"></div></div><div class="modal-header"><div class="text-center"><i class="rh-icon-book"></i><h2 translate="translate">Plan / Playbook Builder</h2></div></div><div class="content-block"><div class="form-group"><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="newPlan" ng-value="true"/><strong translate="translate">Create new plan</strong></label></div><div ng-click="!newPlan &amp;&amp; (newPlan = true)" class="col-sm-8"><input type="text" name="name" maxlength="255" ng-disabled="!newPlan" ng-model="newPlanAlias" placeholder="{{\'Plan Name\' | translate}}" autofocus="autofocus" class="form-control"/></div></div><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="newPlan" ng-value="false" ng-disabled="!availablePlans.length"/><strong>Add to existing plan</strong></label></div><div ng-click="newPlan &amp;&amp; availablePlans.length &amp;&amp; (newPlan = false)" class="col-sm-8"><ui-select ng-model="selected.plan" append-to-body="false" ng-disabled="newPlan"><ui-select-match placeholder="{{\'Plan Name\' | translate}}" class="form-control ui-select-match"><span ng-if="!selected.plan.name.length" translate="translate">Unnamed plan ({{selected.plan.maintenance_id}})</span><span ng-if="selected.plan.name.length">{{selected.plan.name}} ({{selected.plan.maintenance_id}})</span><span ng-if="selected.plan.start">&nbsp;- {{selected.plan.start | moment:\'LL\'}}</span></ui-select-match><ui-select-choices repeat="plan in availablePlans | searchMaintenancePlans: $select.search | orderBy:[\'start\', getPlanName, \'maintenance_id\']" group-by="planGroupFn" group-filter="planOrderFn" class="ui-select-choices"><span ng-if="!plan.name.length" translate="translate">Unnamed plan ({{plan.maintenance_id}})</span><span ng-if="plan.name.length">{{plan.name}} ({{plan.maintenance_id}})</span><span ng-if="plan.start">&nbsp; - {{plan.start | moment:\'LL\'}}</span></ui-select-choices></ui-select></div></div></div><div ng-if="systemSelection !==&quot;preselected&quot;" class="form-group"><hr/><div ng-show="config.isGroupsEnabled" class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;group&quot;" ng-disabled="!Group.groups.length" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">System Group</strong></label></div><div ng-click="systemSelection !== &quot;group&quot; &amp;&amp; Group.groups.length &amp;&amp; systemSelectionChanged(&quot;group&quot;)" class="col-sm-8"><ui-select ng-model="selected.group" append-to-body="false" ng-disabled="systemSelection !== &quot;group&quot;"><ui-select-match placeholder="{{\'Select group\' | translate}}" class="form-control ui-select-match"><span>{{selected.group.display_name}}</span></ui-select-match><ui-select-choices repeat="group in Group.groups | filter:{display_name: $select.search} | orderBy:[\'display_name\', \'id\']" class="ui-select-choices"><span>{{group.display_name}}</span></ui-select-choices></ui-select></div></div><div class="row row-short"><div class="radio col-sm-3"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;system&quot;" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">Specific System</strong></label></div><div class="col-sm-1"><div ng-show="loadingSystems" class="spinner"></div></div><div ng-click="systemSelection !== &quot;system&quot; &amp;&amp; systemSelectionChanged(&quot;system&quot;)" class="col-sm-8"><ui-select ng-model="selected.system" append-to-body="false" ng-disabled="systemSelection !== &quot;system&quot;"><ui-select-match placeholder="{{\'Select system\' | translate}}" class="form-control ui-select-match"><span>{{selected.system.toString}} ({{selected.system.report_count}})</span></ui-select-match><ui-select-choices repeat="system in availableSystems | orderBy:[\'toString\', \'system_id\']" refresh="searchSystems($select.search)" refresh-delay="200" class="ui-select-choices"><span>{{system.toString}} ({{system.report_count}})</span></ui-select-choices></ui-select></div></div><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;all&quot;" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">All Systems</strong></label></div></div></div><hr/><div class="row available-actions"><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.rule &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><div class="title"><strong>{{rule.description}}</strong></div><all-severity-icons rule="rule" ng-if="!loader.loading"></all-severity-icons></div><div class="nopad table-responsive"><maintenance-table-systems params="tableParams" edit="tableEdit" item="rule" on-save="postSave()" on-cancel="close()"></maintenance-table-systems></div></div><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.system &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><span class="icon-inline"><type-icon type-id="selected.system.system_type_id" include-text="false"></type-icon><a ng-click="showSystemModal(system)"><strong>{{selected.system.toString}} &nbsp;&nbsp;</strong></a></span><div class="pull-right item"><strong translate="translate">Last check in:</strong><span ng-class="selected.system | checkInStyle">&nbsp;&nbsp;{{selected.system.last_check_in | timeAgo}}</span></div></div><div class="nopad table-responsive"><maintenance-table-actions params="tableParams" edit="tableEdit" item="true" on-save="postSave()" on-cancel="close()"></maintenance-table-actions></div></div><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.multi &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><strong translate="translate" translate-n="systems.length" translate-plural="Actions available for {{$count}} selected systems" ng-if="systemSelection === &quot;preselected&quot;">Actions available for selected system</strong><strong ng-if="systemSelection === &quot;group&quot;"><span translate="translate">Actions available for group: {{selected.group.display_name}}&nbsp;</span><span translate="translate" translate-n="selected.group.systems.length" translate-plural="({{$count}} systems)">(1 system)</span></strong><strong translate="translate" ng-if="systemSelection === &quot;all&quot;">Actions available for your inventory</strong></div><div class="nopad table-responsive"><maintenance-table-multi params="tableParams" edit="tableEdit" item="true" on-save="postSave()" on-cancel="close()"></maintenance-table-multi></div></div><div ng-if="tableParams &amp;&amp; noActions" class="content-block"><div class="text-center"><strong><i class="fa fa-check-circle success inline-right"></i><span translate="translate">No actions available on selected systems.</span></strong></div></div></div></div></div>');$templateCache.put('js/components/maintenance/maintenancePlan/maintenancePlan.html','<div ng-class="{\'col-md-12 active\' : edit.isActive(plan.maintenance_id), \'col-md-6\': !edit.isActive(plan.maintenance_id)}" id="maintenance-plan-{{plan.maintenance_id}}" class="plan-outer-wrap"><div ng-class="{\'active\' : edit.isActive(plan.maintenance_id), pointer: !edit.isActive(plan.maintenance_id)}" class="plan-wrap"><div ng-class="{\'overdue\': plan.overdue &amp;&amp; !plan.silenced, updating: loader.loading}" class="content-block maintenance-plan updatable"><div ng-if="loader.loading" class="spinner spinner-lg"></div><div class="header plan-header"><div ng-class="{\'active\': edit.isActive(plan.maintenance_id), \'inactive\' : !edit.isActive(plan.maintenance_id)}" class="actions-panel"><i ng-if="edit.isActive(plan.maintenance_id) &amp;&amp; !isReadOnly()" ng-click="delete()" tooltip="{{\'Delete this plan\' | translate}}" class="fa fa-trash-o action"></i><i ng-click="minimize()" ng-show="edit.isActive(plan.maintenance_id)" class="fa fa-compress action"></i><i ng-click="silence()" ng-if="plan.overdue &amp;&amp; !plan.silenced" tooltip="{{\'Snooze this plan\' | translate}}" class="fa fa-moon-o action"></i></div><div ng-if="!editBasic.active &amp;&amp; (!plan.suggestion || plan.suggestion === \'accepted\')" class="details"><div class="header-title editable"><span ng-if="plan.overdue"><i class="fa fa-calendar-times-o red"></i><i ng-if="!editBasic.active &amp;&amp; plan.hidden &amp;&amp; isInternal" class="fa fa-eye-slash"></i></span><h2 ng-class="{\'red\': plan.overdue}" ng-dblclick="editBasic.toggle()" class="title"><span ng-if="plan.name.length" ng-dblclick="editBasic.toggle()">{{plan.name}} ({{plan.maintenance_id}})</span><span ng-if="!plan.name || !plan.name.length" translate="translate">Unnamed plan ({{plan.maintenance_id}})</span><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></h2><p ng-if="error" class="red">{{error}}</p></div><div ng-if="plan.start" class="date-time editable"><div ng-if="plan.start" class="start"><b>{{plan.start | moment:\'dddd, LL\'}}</b></div><div class="group"><i class="fa fa-clock-o"></i><time-range start="plan.start" end="plan.end" ng-dblclick="editBasic.toggle()" class="time-local"></time-range><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></div><div class="group"><i class="fa fa-clock-o"></i><span translate="translate">UTC&nbsp;</span><time-range start="plan.start" end="plan.end" timezone="\'UTC\'" ng-dblclick="editBasic.toggle()" class="time-utc"></time-range></div></div></div><div ng-if="editBasic.active" class="details-edit pull-left"><form novalidate="novalidate" name="editBasicForm" ng-submit="editBasic.save()" class="editable-form"><div ng-if="plan.suggestion === \'proposed\' &amp;&amp; isInternal" class="form-group"><label class="full-width red">Suggested plan</label><textarea placeholder="Describe why Red Hat is suggesting this plan" ng-model="editBasic.description" class="form-control"></textarea><hr/></div><div ng-class="{\'has-error\': editBasicForm.name.$invalid}" class="form-group nick"><label translate="translate">Plan Name:&nbsp;</label><input type="text" name="name" placeholder="{{\'Unnamed plan\' | translate}}" maxlength="255" ng-model="editBasic.name" class="form-control"/></div><div ng-class="{\'has-error\': editBasicForm.date.$invalid}" class="form-group title"><label translate="translate">Date:&nbsp;<i tooltip="{{editDateTooltip}}" class="fa fa-question-circle"></i></label><input type="text" name="date" id="planEditDate-{{plan.maintenance_id}}" date-time="date-time" ng-model="editBasic.start" view="date" min-view="date" max-view="date" format="LL" auto-close="true" highlights="calendarDates" date-change="dateChanged" class="form-control"/></div><div class="date-time"><div ng-class="{\'has-error\': editBasicForm.time.$invalid}" class="form-group form-group-inline"><label class="full-width">Start time:&nbsp;</label><input type="time" name="time" ng-model="editBasic.time" ng-change="editBasic.sync()" step="900" ng-required="editBasic.start" class="time"/></div><div ng-class="{\'has-error\': editBasicForm.number.$invalid}" class="form-group form-group-inline"><label class="full-width">Duration:&nbsp;</label><input type="number" name="duration" min="0" step="15" ng-model="editBasic.duration" ng-required="editBasic.start" class="duration"/></div></div><div ng-if="editBasic.start" class="form-group form-group-inline"><label class="full-width">UTC time:&nbsp;</label>{{editBasic.start | moment:\'LLL\':\'UTC\'}}</div><div class="form-group"><div role="group" class="pull-right btn-group"><button type="button" ng-click="editBasic.toggle()" translate="translate" class="btn btn-sm btn-blank action">Cancel</button><button type="submit" ng-disabled="editBasicForm.$invalid" translate="translate" class="btn btn-sm btn-accent action">Save</button></div></div></form></div><div ng-if="!editBasic.active &amp;&amp; (plan.suggestion === \'proposed\' || plan.suggestion === \'rejected\')" class="details-suggested editable"><p class="description"><span ng-if="plan.hidden &amp;&amp; isInternal"><i class="fa fa-eye-slash"></i><i ng-if="plan.suggestion === \'rejected\'" tooltip="This suggestion was rejected by the customer" class="fa fa-meh-o red"></i></span><strong ng-show="plan.description" ng-dblclick="editBasic.toggle()">{{plan.description}}</strong><strong ng-hide="plan.description" ng-dblclick="editBasic.toggle()" translate="translate">&nbsp; This is a plan suggested by Red Hat</strong><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></p></div></div><div ng-class="{\'hidden\' : edit.isActive(plan.maintenance_id)}" class="plan-summary"><div class="metrics"><strong>{{plan.actionsDone}}/{{plan.actions.length}}&nbsp;</strong><span translate="translate">Actions resolved</span></div><div class="progress-bar"><div ng-style="plan.actionsDone / plan.actions.length | toWidth" class="progress"></div><div class="bar"></div></div></div><!-- Edit mode--><div ng-if="edit.isActive(plan.maintenance_id)" class="content content-tabs nobordertop active"><tabset type="noformat" vertical="false" justified="true" role="tablist" class="nav nav-justified"><!-- Actions Tab--><tab role="tabpanel" heading="{{\'Actions\' | translate}}" deselect="addRule.reset()" select="tabSelected()"><div ng-repeat="rule in (plan.rules | orderBy:[\'-severityNum\', \'rule_id\', \'-actions.length\'] | offset:pager.offset | limitTo:pager.perPage) track by rule.id" class="content-block rule"><div ng-init="tableEdit = false" class="header bordered"><div class="title"><ansible-icon value="rule.ansible" show-planner-line="false" class="inline-right"></ansible-icon><strong>{{rule.description}}</strong><span ng-hide="isReadOnly()" class="pull-right"><a ng-hide="tableEdit" ng-click="tableEdit = true"><strong translate="translate" tooltip="{{\'Click to add/remove affected systems\' | translate}}">Edit</strong></a><i ng-if="tableEdit" ng-click="removeActions(rule.actions)" tooltip="{{\'Remove this action\' | translate}}" class="fa fa-trash-o"></i></span></div><div class="row row-short"><div class="col-sm-12"><all-severity-icons rule="rule" ng-if="!loading"></all-severity-icons></div></div></div><div class="content nopad table-responsive"><maintenance-table-systems params="tableParams(rule, true, false)" edit="tableEdit" item="rule"></maintenance-table-systems></div></div><div translate="translate" ng-if="!plan.rules.length">This plan is empty</div><pagination ng-if="plan.rules.length &gt; pager.perPage" total-items="plan.rules.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></tab><!-- Systems Tab--><tab role="tabpanel" heading="{{\'Systems\' | translate}}" deselect="addSystem.reset()" select="tabSelected(&quot;systems&quot;)"><div ng-repeat="system in (plan.systems | orderBy:[\'_name\', \'system_id\'] | offset:pager.offset | limitTo:pager.perPage) track by system.system_id" class="content-block system"><div class="header bordered"><type-icon type-id="system.system_type_id" include-text="false"></type-icon><a ng-click="showSystemModal(system)"><strong>&nbsp; {{system._name}} &nbsp;&nbsp;</strong></a><span class="item"><strong translate="translate">Last check in:</strong><span ng-class="system | checkInStyle">&nbsp;&nbsp;{{system.last_check_in | timeAgo}}</span></span><span ng-hide="isReadOnly()" class="pull-right"><a ng-hide="tableEdit" ng-click="tableEdit = true"><strong translate="translate" tooltip="{{\'Click to add/remove actions for this system\' | translate}}">Edit</strong></a><i ng-if="tableEdit" ng-click="removeActions(system.actions)" tooltip="{{\'Remove this system\' | translate}}" class="fa fa-trash-o"></i></span><div class="text-center red hidden"><strong>System restart required&nbsp;&nbsp;</strong><i class="fa fa-refresh"></i></div></div><div class="content nopad table-responsive"><maintenance-table-actions params="tableParams(system, false, false)" edit="tableEdit" item="system"></maintenance-table-actions></div></div><div translate="translate" ng-if="!plan.systems.length">This plan is empty</div><pagination ng-if="plan.systems.length &gt; pager.perPage" total-items="plan.systems.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></tab><tab role="tabpanel" disable="!ansibleSupport" ng-init="setupTabActivator($parent)" select="tabSelected(&quot;playbook&quot;); prepareAnsibleTab()" class="tab-blue"><tab-heading><ansible-icon value="ansibleSupport" show-tooltip="false" white="true" class="inline-right"></ansible-icon><strong translate="translate">Playbook</strong></tab-heading><div ng-show="playbookTabLoader.loading" class="spinner"></div><div ng-hide="playbookTabLoader.loading" class="playbooks"><card ng-repeat="play in plays" class="playbook"><card-header class="gray"><a ui-sref="app.actions-rule({category: play.rule.category.toLowerCase(), rule: play.rule.rule_id})"><b>{{ play.rule.description }}</b></a></card-header><card-content class="flex"><div class="systems"><h4 translate="translate" class="section-title">Systems:</h4><expandable-system-list systems="play.systems"></expandable-system-list></div><div class="resolution"><h4 translate="translate" class="section-title">Resolution:</h4><p>{{ play.ansible_resolutions[0].description }} &nbsp;<a ng-if="play.ansible_resolutions.length &gt; 1" ng-click="resolutionModal(play)" tooltip="{{&quot;Multiple resolutions available. Click here to select a different one.&quot; | translate}}"><span translate="translate">- edit ({{play.ansible_resolutions.length}} options)</span></a></p><ul class="list-plain"><li ng-if="play.ansible_resolutions[0].needs_reboot"><div class="icon-inline red"><i class="fa fa-repeat"></i><strong translate="translate" tooltip="{{\'System reboot is required to resolve this issue\' | translate}}">Reboot Required</strong></div></li><li ng-if="play.ansible_resolutions[0].resolution_risk"><risk-of-change change-risk="play.ansible_resolutions[0].resolution_risk"> </risk-of-change></li></ul></div></card-content></card><card class="playbook playbook-summary"><card-header class="gray"><strong translate="translate" class="red">System reboot summary</strong></card-header><card-content ng-if="!systemsToReboot.length" class="gray"><div class="cell"><p translate="translate">This playbook&nbsp;<b translate="translate" class="text-success">does not require a system reboot.</b></p></div></card-content><card-content ng-if="systemsToReboot.length" class="gray flex"><div class="systems"><h4 translate="translate" class="section-title">Systems:</h4><expandable-system-list systems="systemsToReboot"></expandable-system-list></div><div class="resolution"><div ng-click="plan.allow_reboot = !plan.allow_reboot; allowRebootChanged()" class="toggle push-bottom-narrow"><input type="checkbox" ng-checked="plan.allow_reboot"/><b translate="translate">Reboot systems automatically</b><div ng-class="{active: plan.allow_reboot}" class="toggle-slider"></div></div><p translate="translate">Some of the resolutions above require system reboot in order for the changes to take effect. This playbook&nbsp;<b ng-if="plan.allow_reboot" class="red">will reboot the systems automatically.</b><span ng-if="!plan.allow_reboot"><b>will not reboot the systems.&nbsp;</b>The systems will need to be rebooted manually.</span></p></div></card-content></card></div></tab></tabset></div><footer ng-show="edit.isActive(plan.maintenance_id)" class="footer"><a ng-if="isInternal &amp;&amp; !plan.hidden" ng-click="hidden(true)" class="btn btn-sm btn-default"><i class="fa fa-eye-slash inline-right"></i><span translate="translate">Hide</span></a><a ng-if="isInternal &amp;&amp; plan.hidden" ng-click="hidden(false)" class="btn btn-sm btn-default"><i class="fa fa-eye inline-right"></i><span translate="translate">Publish</span></a><a ng-if="plan.suggestion === \'proposed\' &amp;&amp; !plan.hidden" ng-click="accept()" class="btn btn-sm btn-accent"><i class="fa fa-check inline-right"></i><span translate="translate">Accept</span></a><a ng-if="plan.suggestion === \'proposed\' &amp;&amp; !plan.hidden" ng-click="reject()" class="btn btn-sm btn-default"><i class="fa fa-close inline-right"></i><span translate="translate">Ignore</span></a><a ng-click="addActions()" ng-if="!isReadOnly()" class="btn btn-sm btn-accent pull-right"><span translate="translate">Add actions</span></a><a translate="translate" ng-click="exportPlan(plan.maintenance_id)" class="btn btn-sm btn-open-blue action pull-right"><i class="fa fa-download inline-right"></i><span translate="translate">Export CSV</span></a><a translate="translate" ng-click="downloadPlaybook()" ng-if="!ansibleRunner" ng-disabled="!ansibleSupport" class="btn btn-sm btn-open-blue action pull-right"><i class="svg ansible-icon inline-right"><img src="/assets/insights/l_ansible-blue.svg"/></i><span translate="translate">Download Playbook</span></a><div ng-if="ansibleRunner" class="btn-group pull-right"><button ng-disabled="!ansibleSupport" aria-haspopup="true" aria-expanded="false" class="btn btn-sm btn-open-blue action"><i class="svg ansible-icon inline-right"><img src="/assets/insights/l_ansible-blue.svg"/></i><span translate="translate" ng-click="runPlaybook(\'run\')">Run Playbook</span></button><button data-toggle="dropdown" ng-if="ansibleSupport" class="btn btn-sm btn-open-blue action dropdown-toggle"><span class="caret"></span><span translate="translate" class="sr-only">Toggle Dropdown</span></button><ul class="dropdown-menu"><li><a translate="translate" ng-click="runPlaybook(\'customize\')">Customize Playbook Run</a></li><li><a translate="translate" ng-click="downloadPlaybook()">Download Playbook</a></li></ul></div></footer></div></div></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableActions.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><table class="table nomar ng-table maintenance-table"><thead><tr><th ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">Action</div></th><th ng-class="table.sorter.getSortClass(\'rule.severityNum\')" ng-click="table.sorter.sort(\'rule.severityNum\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Total Risk</div></th><th ng-class="table.sorter.getSortClass(\'done\')" ng-click="table.sorter.sort(\'done\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Status</div></th></tr><tr ng-show="edit"><th colspan="4" class="filter"><input type="text" placeholder="Filter by rule name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td ng-class="{&quot;icon-inline&quot;: action._type === 2}" class="overflow"><i ng-if="action._type === 2" tooltip="{{\'This action is already part of another plan\' | translate}}" class="icon fa fa-exclamation-circle"></i><a ng-click="table.showSystemModal(table.params.item, action.rule)" class="text action">{{action.display}}</a></td><td class="text-center"><severity-icon severity="action.rule.severity" type="severity" label=""></severity-icon></td><td class="status text-center"><status-icon status="action.done"></status-icon></td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableFooter.html','<tr ng-show="edit"><td colspan="{{cols || 4}}"><div role="group" class="pull-right btn-group"><button ng-click="table.cancel()" translate="translate" class="btn btn-sm btn-blank">Cancel</button><button ng-click="table.save()" ng-disabled="!checkboxes.totalChecked" translate="translate" class="btn btn-sm btn-accent">Save</button></div></td></tr><tr ng-if="table.filteredActions.length &gt; table.pager.perPage"><td colspan="{{cols || 4}}"><pagination total-items="table.filteredActions.length" ng-model="table.pager.currentPage" items-per-page="table.pager.perPage" ng-change="table.page()" class="pull-right pagination-blue"></pagination></td></tr>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableMulti.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><!-- cols set so that footer knows how many cols to span--><table ng-init="cols = 5" class="table nomar ng-table maintenance-table"><thead><tr><th ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">Action</div></th><th ng-class="table.sorter.getSortClass(\'rule.severityNum\')" ng-click="table.sorter.sort(\'rule.severityNum\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Total Risk</div></th><th ng-class="table.sorter.getSortClass(\'rule.ansible\')" ng-click="table.sorter.sort(\'rule.ansible\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Ansible</div></th><th ng-class="table.sorter.getSortClass(\'rule.report_count\')" ng-click="table.sorter.sort(\'rule.report_count\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Affected Systems</div></th></tr><tr ng-show="edit"><th colspan="5" class="filter"><input type="text" placeholder="Filter by rule name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td class="overflow"><a ng-href="./actions/{{action.rule.category}}/{{action.id}}" target="_blank"><span class="wrap">{{action.display}}</span></a></td><td class="text-center"><severity-icon severity="action.rule.severity" type="severity" label=""></severity-icon></td><td class="status text-center"><ansible-icon value="action.rule.ansible" show-planner-line="false"></ansible-icon></td><td class="status text-center">{{action.rule.report_count}}</td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableSystems.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><table class="table nomar ng-table maintenance-table"><thead><tr><th width="6%" ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">System</div></th><th width="20%" ng-class="table.sorter.getSortClass(\'system.last_check_in\')" ng-click="table.sorter.sort(\'system.last_check_in\')" class="sortable"><div translate="translate" class="sort-indicator">Last check in</div></th><th width="12%" ng-class="table.sorter.getSortClass(\'done\')" ng-click="table.sorter.sort(\'done\')" class="sortable text-center"><div translate="translate" class="sort-indicator overflow">Status</div></th></tr><tr ng-show="edit"><th colspan="4" class="filter"><input type="text" placeholder="Filter by system name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td class="overflow"><type-icon type-id="action.systemTypeIconId" ng-if="action.systemTypeIconId" include-text="false"></type-icon><i ng-if="action._type === 2" tooltip="{{\'This action is already part of another plan\' | translate}}" class="fa fa-exclamation-circle"> </i><a ng-click="table.showSystemModal(action.system, table.params.item)" class="hostname with-icon"><trimmed-text text="{{action.display}}" length="45"></trimmed-text></a></td><td><span ng-show="::action.system.last_check_in">{{::action.system.last_check_in | timeAgo}}</span><span ng-hide="::action.system.last_check_in">--</span></td><td width="19%" class="status text-center"><status-icon status="action.done"></status-icon></td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/planList/planList.html','<div class="plans"><div ng-if="!group" class="row"><maintenance-plan ng-repeat="plan in plans | orderBy:&quot;-maintenance_id&quot; | limitTo:pager.perPage:pager.offset track by plan.maintenance_id"></maintenance-plan></div><div ng-if="group" ng-repeat="month in (plans | orderBy:[&quot;-start&quot;,&quot;-maintenance_id&quot;] | limitTo:pager.perPage:pager.offset | groupPlans)" class="row"><div class="col-sm-12"><h3>{{month[0].start | moment:\'MMMM YYYY\'}}</h3></div><maintenance-plan ng-repeat="plan in month | orderBy:&quot;-start&quot; track by plan.maintenance_id"></maintenance-plan></div><div class="row row-short"><pagination ng-if="plans.length &gt; pager.perPage" total-items="plans.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></div></div>');$templateCache.put('js/components/maintenance/resolutionModal/resolutionModal.html','<div class="modal-actions"><i ng-click="cancel()" class="fa fa-close"></i></div><div class="modal-header"><div class="text-center"><i class="svg"><img src="/assets/insights/l_ansible-black.svg"/></i><h2 translate="translate">Choose Resolution</h2></div></div><div class="modal-body"><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title group-title-table"><table><tbody><tr><td><b>{{ params.play.rule.description }}</b></td></tr></tbody></table></div></div></div></div><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title"><i ng-class="systemType.imageClass" class="fa fa-times-circle"></i><b>&nbsp; {{systemType.displayName}}</b></div><div class="group-content"><ul><li ng-repeat="system in systems | limitTo:listLimit | orderBy:\'toString\'">{{system.toString}}</li></ul><a ng-show="listLimit !== undefined &amp;&amp; listLimit &lt; systems.length" ng-click="listLimit = undefined" translate="translate">View More ({{systems.length - listLimit}})</a><a ng-show="listLimit === undefined" ng-click="listLimit = MINIMUM_NUMBER_OF_ITEMS" translate="translate">View Less</a></div></div></div></div><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title"><b translate="translate">Would you like to:</b></div><div class="group-content"><div ng-repeat="resolution in resolutions track by resolution.resolution_type" class="radio"><label for="resolution-type-{{$index}}"><input type="radio" ng-model="selected.resolutionType" name="resolution-type" id="resolution-type-{{$index}}" ng-value="resolution.resolution_type"/><risk-of-change change-risk="resolution.resolution_risk" hide-label="true"></risk-of-change><span>{{resolution.description}}</span><br/><i ng-if="resolution.needs_reboot" tooltip="{{\'This resolution requires a system reboot\' | translate}}" class="fa fa-repeat red inline-left"></i><strong ng-if="resolution.needs_reboot" class="red">&nbsp;Reboot Required</strong></label></div></div></div></div></div><div class="row"><div class="col-sm-12"><p translate="translate">This setting can be changed anytime in the&nbsp;<strong translate="translate">Playbook Settings&nbsp;</strong>tab</p></div></div><div ng-if="params.steps &gt; 1" class="row"><div class="col-sm-12"><ul class="pagination pagination-dots"><li ng-repeat="i in range(params.index) track by $index"><a class="sr-only"></a></li><li class="active"><a class="sr-only"></a></li><li ng-repeat="i in range(params.steps - params.index - 1) track by $index"><a class="sr-only"></a></li></ul></div></div></div><div class="modal-footer"><ul class="row pager pager-steps"><li class="previous col-sm-6"><a ng-click="cancel()" class="btn cancel"><span translate="translate" ng-if="params.steps">Skip and use defaults</span><span translate="translate" ng-if="!params.steps">Cancel</span></a></li><li class="next col-sm-6"><a ng-click="save()" translate="translate" class="btn save">Save</a></li></ul></div>');$templateCache.put('js/components/misc/trimmedText/trimmedText.html','<span class="trimmed-text"><span ng-if="showTooltip" tooltip="{{text}}" class="trimmed">{{trimmedText}}</span><span ng-if="!showTooltip" class="not-trimmed">{{trimmedText}}</span></span>');$templateCache.put('js/components/overview/articleModal/articleModal.html','<div class="article-modal"><form novalidate="novalidate" name="articleForm" class="form-horizontal"><h2>Overview content</h2><div class="form-group row"><label for="title" class="control-label col-sm-2">Article</label><div class="col-sm-10"><ui-select ng-model="selected.article" append-to-body="false" on-select="load($item.id)" search-enabled="false"><ui-select-match placeholder="Select an article" class="form-control ui-select-match">{{selected.article.id}}</ui-select-match><ui-select-choices repeat="article in articles" class="ui-select-choices">{{article.id}}</ui-select-choices></ui-select></div></div><div ng-class="{\'has-error\': articleForm.title.$invalid &amp;&amp; articleForm.title.$dirty}" class="form-group row row-short"><label for="title" class="control-label col-sm-2">Title</label><div class="col-sm-10"><input id="title" type="text" name="title" ng-model="article.title" maxlength="255" required="required" class="form-control"/></div></div><div ng-class="{\'has-error\': error.content}" class="form-group row row-short"><div class="col-sm-12"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no>&nbsp;<yes-no no="true" text="doT"></yes-no></div><textarea id="content" placeholder="Overview content" ng-model="article.content" rows="20" class="form-control content"></textarea></div></div><div class="row"><div class="col-sm-6"><button ng-click="preview()" ng-disabled="articleForm.$invalid" class="btn btn-sm btn-secondary"><span class="icon-inline"><i class="fa fa-picture-o"></i><span>Preview</span></span></button></div><div class="col-sm-6 text-right"><button ng-click="close()" class="btn btn-sm btn-default">Cancel</button><button ng-click="save()" ng-disabled="articleForm.$invalid" class="btn btn-sm btn-primary">Save</button></div></div></form><div ng-if="previewData" class="row"><hr/><div class="col-sm-12"><h3><strong>{{previewData.title}}</strong></h3><span ng-bind-html="previewData.content_html | trust_html" class="handcrafted-content"></span></div></div></div>');$templateCache.put('js/components/rule/ruleBreadcrumb/ruleBreadcrumb.html','<ol class="breadcrumb"><li><a translate="translate" ui-sref="app.rules">Rules</a></li><li><a ui-sref="app.admin-rules">Rules Admin</a></li><li ng-if="rule"><span>{{ rule.plugin }}|{{ rule.error_key }}</span></li><li ng-if="insightsNamespacer.current === \'insights-app-admin-rule-tags\'"><a ui-sref="app.admin-rule-tags">Tags</a></li></ol>');$templateCache.put('js/components/rule/ruleFilter/ruleFilter.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><incidents-tri-state class="col-xs-6 col-md-5 col-lg-4"></incidents-tri-state><ansible-support-tri-state ng-if="config.isPlannerEnabled" class="col-xs-6 col-md-5 col-lg-4"></ansible-support-tri-state><rule-status-tri-state class="col-xs-6 col-md-5 col-lg-4"></rule-status-tri-state></div><div class="row"><total-risk-select class="col-xs-6 col-md-4 col-lg-3"></total-risk-select><category-select class="col-xs-6 col-md-4 col-lg-3"></category-select><likelihood-select class="col-xs-6 col-md-4 col-lg-3"></likelihood-select><impact-select class="col-xs-6 col-md-4 col-lg-3"></impact-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/rule/ruleGroupCard/ruleGroupCard.html','<div ng-keypress="keyPressed($event)" class="card-group"><header class="header"><div translate="translate" translate-n="plugin.hitCount" translate-plural="{{$count}} Systems" class="count">1 System</div><div class="row"><div class="col-sm-9"><i aria-hidden="true" class="fa fa-users"></i><strong><span translate="translate" class="text-uppercase">Group: &nbsp;</span><span ng-if="plugin.categories.length === 1"><i ng-class="plugin.categories[0].toLowerCase()" class="fa category-icon inline-right"></i>{{plugin.categories[0]}} ></span><span>&nbsp; {{plugin.display_name}}</span></strong></div><div class="col-sm-3 text-right-sm"><span translate="translate" translate-n="plugin.rules.length" translate-plural="{{$count}} Rules in this group">1 Rule in this group</span></div></div></header><div ng-class="{swapping: swapping}" ng-mouseenter="setActive(true)" ng-mouseleave="setActive(false)" class="content disabled-start"><div ng-click="previous()" ng-class="{disabled: !hasPrevious()}" class="prev"><i class="fa fa-arrow-left"></i></div><div ng-click="next()" ng-class="{disabled: !hasNext()}" class="next"><i class="fa fa-arrow-right"></i></div><card><card-header class="flexgrid equalheights"><div class="row"><div class="col-sm-8"><div class="title"><strong>{{index + 1}}&nbsp;</strong><em class="light">of &nbsp;</em><strong>{{plugin.rules.length}}: {{rule.description}}</strong></div><span translate="translate" ng-show="rule.acked" class="label label-default pull-right text-uppercase">inactive</span></div><div ng-if="config.isPlannerEnabled" class="col-sm-4 text-right-sm"><incident-icon rule-id="rule.rule_id"></incident-icon><ansible-icon value="rule.ansible"></ansible-icon></div></div></card-header><card-content><div ng-bind-html="rule.summary_html" target-blank="" class="gray"></div></card-content><div class="footer"><div class="row"><div class="col-sm-6"><all-severity-icons rule="rule" ng-if="!swapping"></all-severity-icons></div><div class="col-sm-6 text-right-sm"><strong><a ui-sref="app.actions-rule({category: rule.category, rule: rule.rule_id})" ng-disabled="rule.hitCount === 0" translate="translate" translate-n="rule.hitCount" translate-plural="View Impacted Systems ({{$count}})">View Impacted System (1)</a></strong></div></div></div></card></div></div>');$templateCache.put('js/components/rule/ruleListSimple/ruleListSimple.html','<ul class="rule-list list-unstyled"><li ng-repeat="rule in (rules | orderBy:order | limitTo:limit) track by rule.rule_id"><div class="title">{{rule.description}} &nbsp;</div><a ng-click="onSelect({rule: rule})">[{{rule.rule_id}}]&nbsp;</a><i ng-click="onDelete({rule: rule})" ng-hide="readOnly" class="fa fa-times"></i><!-- I know I know--><br/><all-severity-icons rule="rule"></all-severity-icons></li><li ng-show="rules.length &gt; 10 &amp;&amp; limit"><a ng-click="limit = undefined">\u2026 ({{rules.length - limit}} more)</a></li></ul>');$templateCache.put('js/components/rule/ruleReason/ruleReason.html','<div class="detail-part"><h4 translate="translate" class="section-heading"><i aria-hidden="true" class="fa fa-crosshairs">&nbsp;</i>Detected issues</h4><div class="reason"><div ng-if="report.rule.reason !== \'INSIGHTS-ERROR-INTERPOLATION\'" ng-bind-html="report.rule.reason | trust_html" target-blank="" class="detail-content"></div><div ng-if="report.rule.reason === \'INSIGHTS-ERROR-INTERPOLATION\'" class="detail-content"><p><i class="fa fa-exclamation-circle i-error inline-right"></i><strong translate="translate">There was a problem obtaining action details. Please try again later.</strong></p></div></div></div>');$templateCache.put('js/components/rule/ruleResolution/ruleResolution.html','<div class="detail-part"><div class="detail-content answer"><h4 translate="translate" class="section-heading"><i aria-hidden="true" class="fa fa-thumbs-up">&nbsp;</i>Steps to resolve</h4><span ng-if="report.rule.resolution !== \'INSIGHTS-ERROR-INTERPOLATION\'" ng-bind-html="report.rule.resolution | trust_html" target-blank=""></span><span ng-if="report.rule.resolution === \'INSIGHTS-ERROR-INTERPOLATION\'"><p><i class="fa fa-exclamation-circle i-error inline-right"></i><strong translate="translate">There was a problem obtaining action details. Please try again later.</strong></p></span></div><div ng-if="report.details.affected_hosts &amp;&amp; (report.rule.type === &quot;osp&quot; || report.rule.type === &quot;rhev&quot;)" class="osp-affected-hosts"><table class="table table-fixed"><thead><tr><th><div>Affected Hosts</div></th></tr></thead><tbody><tr ng-repeat="affected_host in report.details.affected_hosts"><td><div>{{getSystemNameFromId(affected_host)}}</div></td></tr></tbody></table></div></div>');$templateCache.put('js/components/rule/ruleSummaries/ruleSummaries.html','<div class="content-wrap"><div ng-if="loading.isLoading" class="row"><div class="col-xs-12"><div class="loading-block text-center"><div class="detail-part"><div class="spinner spinner-lg"></div>{{getLoadingMessage()}}</div></div></div></div><div ng-hide="!system.reports || !system.reports.length || loading.isLoading" class="row"><div class="col-xs-12 text-right"><expand-all-button></expand-all-button></div></div><div ng-if="(!system.reports || !system.reports.length) &amp;&amp; !loading.isLoading &amp;&amp; !system.__fake &amp;&amp; !errorMessage" class="row"><div class="col-xs-12"><p class="text-center"><span><i class="fa fa-fw fa-check-circle success"></i><span translate="translate">No actions</span></span></p></div></div><div ng-if="!loading.isLoading &amp;&amp; !system.__fake &amp;&amp; errorMessage" class="row"><div class="col-xs-12"><div ng-bind-html="errorMessage | trust_html"></div></div></div><div report="report" rule-id="rule_id" rule-filter="ruleFilter" ng-repeat="report in system.reports" class="rule-summary system-overlay-item content-block"></div></div>');$templateCache.put('js/components/rule/ruleSummary/ruleSummary.html','<card expandable="true" init-collapsed="initCollapsed" on-toggle="resetShowMore(ctx)"><card-header><div class="row"><div class="col-sm-12"><h3 class="title"><ansible-icon value="report.rule.ansible" ng-if="config.isPlannerEnabled" class="inline-right"></ansible-icon><incident-icon rule-id="report.rule_id" class="inline-right"></incident-icon>{{ report.rule.category }} &gt; {{ report.rule.description }}</h3></div></div><div class="row row-short"><div class="col-sm-12"><all-severity-icons rule="report.rule"></all-severity-icons><risk-of-change change-risk="report.rule.resolution_risk"></risk-of-change></div></div></card-header><card-content class="content ng-animate-enabled"><div class="row"><div class="col-sm-12"><div class="rule-reason"></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="rule-resolution"></div><div ng-if="report.rule.node_id" node="report.rule.node_id" class="recommended-kbase"></div></div></div><div ng-show="report.rule.more_info" class="row row-short"><div class="col-xs-12"><div class="text-center border-top"><div ng-click="show.moreInfo = !show.moreInfo" class="nomar push-top-narrow pointer"><a class="link"><strong>{{show.moreInfo ? \'Hide\' : \'Show\'}} more info &nbsp;</strong><i ng-class="{\'fa-caret-up\': show.moreInfo, \'fa-caret-down\': !show.moreInfo}" class="fa"></i></a></div></div></div></div><div collapse="!show.moreInfo" class="footer more-info ng-animate-enabled"><div ng-bind-html="report.rule.more_info_html | trust_html" ng-show="report.rule.more_info" target-blank=""></div></div></card-content></card>');$templateCache.put('js/components/rule/ruleToggle/ruleToggle.html','<div ng-click="ackAction()" class="toggle"><div ng-class="{active: !rule.ack_id}" class="toggle-slider"></div><b translate="translate"><span>Enable Rule</span></b></div>');$templateCache.put('js/components/sideNav/actionsSideNav/actionsSideNav.html','<li><a ui-sref="app.actions" ng-class="{current: includes(states.actions, state.current.name)}" translate="translate">Actions</a><ul ng-show="actions"><li><a ui-sref="app.topic({id: c, product: product})" ng-class="{current: isActive(c)}" ng-repeat="c in categories" ng-if="categoryCounts[c]"><span translate="translate" translate-n="categoryCounts[c]" translate-plural="{{c | translate | titlecase}} ({{$count}})">{{c | translate | titlecase}} (1)</span></a></li></ul></li>');$templateCache.put('js/components/system/addSystemModal/addSystemModal.html','<div class="modal-actions"><i ng-click="close()" class="fa fa-close pull-right"></i></div><div id="info" class="info"><div class="content"><section id="install"><h2 translate="translate" class="section-header">Install the Red Hat Insights Client and Register More Systems</h2><p translate="translate">Register your system for updates with Red Hat Subscription Manager to resolve software dependencies:</p><pre class="code-block code-terminal"><code class="language-shell"> # subscription-manager register --auto-attach</code></pre><p translate="translate">Install the Red Hat Insights RPM:</p><pre class="code-block code-terminal"><code class="language-shell"> # yum install redhat-access-insights</code></pre></section><section id="register"><h2 translate="translate" class="section-header">Register the system to Red Hat Insights</h2><pre class="code-block code-terminal"><code># redhat-access-insights --register</code></pre><p translate="translate">After registration, the Insights client will upload initial system information to Red Hat Insights. You should be able to immediately see your system in the <a ui-sref="app.inventory" ng-click="close()">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shorty thereafter.</p></section><section id="more"><h2 translate="translate" class="section-header">Advanced configuration</h2><p translate="translate">For more advanced configuration see the <a href="{{gettingStartedLink}}" target="_blank" ng-click="close()" translate="translate">getting started guide</a>.</p></section></div></div>');$templateCache.put('js/components/system/addSystemModal/upgradeSubscription.html','<div class="modal-actions"><i ng-click="close()" class="fa fa-close pull-right"></i></div><div id="info" class="info"><div class="content"><section id="install"><h2 translate="translate" class="section-header">You have reached your maximum <br /> number of registered systems!</h2><p><span ng-if="isEvaluation" translate="translate">You have reached your evaluation limit of 10 registered systems for Red Hat Insights.</span><span ng-if="!isEvaluation" translate="translate">You have reached your maximum number of registered systems for Red Hat Insights.</span>&nbsp;<span translate="translate"> To increase your available Red Hat Insights registrations, please</span>&nbsp;<a href="http://www.redhat.com/en/about/contact/sales" translate="translate">contact your Red Hat sales representative</a>&nbsp;<span translate="translate">to purchase Insights or request a 90 day evaluation.</span></p><p><a href="http://access.redhat.com/insights/info/#availability" translate="translate">Learn more about Red Hat Insights availability</a></p></section></div></div>');$templateCache.put('js/components/system/systemModal/systemModal.html','<div class="system-overlay"><div class="modal-actions"><div ng-click="close()" class="fa fa-close pull-right"></div></div><div class="modal-title"><div class="icon"><span class="fa fa-globe"></span></div><h2 ng-if="system.display_name"><div class="ellipsis-overflow"><span>{{ system.display_name }}</span></div></h2><div ng-if="system.display_name" class="ellipsis-overflow"><!-- if the display name exists.... show the hostname small--><div class="ellipsis-overflow"><div ng-if="system.hostname" class="small-name-info">hostname: {{ system.hostname }}</div></div></div><!-- dont show hostname if it is not avalible--><h2 ng-if="system.hostname &amp;&amp; !system.display_name"><b translate="translate">hostname:</b><div class="ellipsis-overflow"><span>{{ system.hostname }}</span></div></h2><!-- always show the uuid.... it must exist--><div class="ellipsis-overflow"><div class="small-name-info">UUID: {{ getUUID() }}</div></div></div><system-metadata system="system"></system-metadata><div class="separator"></div><div class="insights-main-content"><div ng-if="!system.isCheckingIn" class="message alert alert-danger alert-systems-not-checking"><span class="glyphicon glyphicon-exclamation-sign rule-margin"></span><span translate="translate">This system is not checking in.</span></div><div system="system" machine-id="system.system_id" rule="rule" rule-filter="ruleFilter" loading="loading" class="rule-summaries"></div><div ng-if="system.__fake" report="report" rule="rule" loading="loading" class="rule-summary system-overlay-item content-block"></div></div></div>');$templateCache.put('js/components/system/systemTable/systemTable.html','<div class="col-md-6 group-list"><label class="full-width">{{::title | translate}}</label><input placeholder="{{\'Filter\' | translate}}" type="text" ng-model="systemsFilter" ng-model-options="{ debounce: 100 }" ng-change="filterSystems()" class="filter full-width"/><div class="filters-table"><div class="row"><div class="col-xs-6"><label class="select-all"><input type="checkbox" ng-model="checkboxes.checked" ng-indeterminate="indeterminate"/><span translate="translate">Select Visible</span></label></div><div class="col-xs-6"><div class="pull-right flush-right"><span translate="translate">Items</span><div class="dropdown-select dropdown-select-horizontal"><select ng-model="itemsPerPage" ng-options="i for i in items track by i"></select></div></div></div></div></div><div ng-class="{\'scrollable scrollable-table\': _filteredSystems.length &gt; 10}"><table class="table no-header table-groups"><tbody><tr ng-repeat="system in _filteredSystems = (filteredSystems | offset:((currentPage-1)*itemsPerPage) | limitTo:itemsPerPage)" data-id="{{system.system_id}}" ng-click="rowClick($event)" ng-mousedown="rowClick($event)" class="ng-animate-disabled"><td><label><input type="checkbox" ng-model="checkboxes.items[system.system_id]"/><span class="hostname">{{::system.toString}}</span></label></td></tr></tbody></table></div><div class="row groups-footer"><div class="col-xs-12 col-md-5"><a ng-show="type === \'in\'" ng-disabled="!totalChecked" ng-click="removeSystems()" class="link"><i class="fa fa-minus"> </i><span translate="translate"> Remove Systems</span></a><a ng-hide="type === \'in\'" ng-disabled="!totalChecked" ng-click="addSystems()" class="link"><i class="fa fa-plus"> </i><span translate="translate"> Add Systems</span></a></div><div class="col-xs-12 col-md-7"><pagination ng-hide="total &lt;= itemsPerPage" total-items="total" ng-model="currentPage" previous-text="\xAB" next-text="\xBB" max-size="3" rotate="false" items-per-page="itemsPerPage" ng-change="pageChanged()" class="pull-right pagination-gray"></pagination></div></div></div>');$templateCache.put('js/components/topbar/alerts/alerts.html','<span dropdown="" on-toggle="toggled(open)" class="dropdown dropdown-notification"><div ng-if="loading" class="spinner spinner-sm"></div><a href="" dropdown-toggle="" ng-if="!loading" class="dropdown-toggle"><i class="fa {{icon}}"></i><span ng-if="service.unackedCount !== 0" class="count">{{service.unackedCount}}</span></a><ul ng-if="!loading" class="dropdown-menu preview"><li ng-repeat="item in service.items" ng-class="{ acked: (item.acked) }" class="announcement"><div class="row"><div class="col-sm-12"><div><i ng-if="item.icon" ng-class="item.icon" class="fa inline-right"></i><b ng-bind-html="item.msg | trust_html" ng-click="item.onSelect(item)"></b></div><div ng-if="item.onAck" style="position:absolute; right:12px; top:0; padding:20px; height:100%; width:40px" ng-click="!item.ack &amp;&amp; item.onAck(item)" tooltip="{{\'Dismiss\' | translate}}" class="message-status-toggle"><i ng-if="!item.acked" class="fa fa-circle-o"></i><i ng-if="item.acked" class="fa fa-check-circle-o acked"></i></div></div></div></li><li ng-if="service.items.length === 0"><strong translate="translate">You have no alerts</strong></li></ul></span>');$templateCache.put('js/components/topics/otherTopic/otherTopic.html','<div class="col-sm-4"><div class="content-block content-block-card anchored-footer topic-card"><header class="header"><h4>{{topic.title}}</h4><div><span translate="translate" translate-n="topic.affectedSystemCount" translate-plural="{{$count}} Systems" class="count">1 System</span></div></header><div ng-bind-html="topic.summary_html ? topic.summary_html : Xtopic.content_html | trust_html" class="description gray"></div><div class="footer text-right-sm"><strong><a translate="translate" ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id, product: getSelectedProduct()})" class="pointer">View More</a></strong></div></div></div>');$templateCache.put('js/components/topics/topicAdminHelpBar/topicAdminHelpBar.html','<div class="help-bar"><a ng-click="help.show = !help.show"><span class="icon-inline"><i class="fa fa-question-circle"></i><span>Show help</span></span></a><div ng-show="help.show" class="panel panel-default"><div class="panel-body"><h5>Dynamic content</h5><p>There are multiple ways to make the content of a topic dynamic:</p><ul><li><a ng-click="help.appendInterpolation()">interpolation</a></li><li><a ng-click="help.appendConditional()">conditionals</a></li></ul><p>Here are some examples of values you can use for interpolation:<table><tbody><tr ng-repeat="tip in help.interpolations"><td><a ng-click="help.appendInterpolation($event)">{{tip.key}}</a></td><td>{{tip.value}}</td></tr></tbody></table></p><p>Also, you may find &nbsp;<a href="http://olado.github.io/doT/index.html" target="_blank">doT docs</a>&nbsp; useful</p></div></div></div>');$templateCache.put('js/components/topics/topicDetails/topicDetails.html','<div class="topic-summary"><div class="row"><div class="col-sm-12"><span ng-show="isContentManager" class="pull-right">[<a ui-sref="app.edit-topic({id: topic.id})">edit</a>]</span><h1 class="page-title"><span translate="translate">{{::topic.title}}</span><div tooltip="This topic is hidden. Only internal users can see it." ng-if="topic.hidden" class="fa fa-eye-slash inline-left red"></div></h1></div></div><div ng-if="topic.content_html" class="row"><div class="col-sm-12"><div ng-bind-html="topic.content_html" class="topic-content"></div></div></div></div>');$templateCache.put('js/components/topics/topicPreviewModal/topicPreviewModal.html','<div class="topic-preview"><div class="sample-data"><a ng-click="editData = !editData"><span class="icon-inline"><i ng-hide="editData" class="fa fa-plus"></i><i ng-show="editData" class="fa fa-minus"></i><span>Modify sample data</span></span></a><form novalidate="novalidate" ng-show="editData" name="tweaker" class="form-horizontal"><div class="form-group"><label for="affectedSystemCount" class="control-label col-sm-2">Number of affected systems</label><div class="col-sm-3"><input type="number" ng-model="sampleData.systems.affectedCount" min="0" class="form-contril"/></div></div><div class="form-group"><label for="affectedSystemCount" class="control-label col-sm-2">Rules</label><div class="col-sm-10"><table class="table table-bordered sample-data-table"><thead><tr><th>Rule ID</th><th>Description</th><th>Number of hits</th><th>Ignored by user (acked)</th></tr></thead><tbody><tr ng-repeat="rule in sampleData.rules track by rule.rule_id"><td class="rule-id">{{rule.rule_id}}</td><td>{{rule.description}}</td><td><input type="number" ng-model="rule.hitCount" required="required" min="0" class="form-control"/></td><td><input type="checkbox" ng-model="rule.acked"/></td></tr></tbody></table></div></div><div class="form-group"><button type="submit" ng-click="updateSampleData()" class="btn btn-sm btn-secondary pull-right">Update preview</button></div></form></div><hr/><div ng-show="loader.loading" class="spinner"></div><div ng-hide="topic" class="text-center"><p>This topic will not be shown when there are no hits for it (tweak sample data or switch to \'Shown always\' topic type to see it)</p></div><div ng-if="summary" ng-show="topic &amp;&amp; !loader.loading" class="actions-page"><section><h2 class="section-title section-title-red">Topics</h2><div class="row"><other-topic topic="topic"></other-topic></div></section></div><div ng-if="details" ng-show="topic &amp;&amp; !loader.loading" class="action-details"><section class="gray section-topic-details"><topic-details topic="topic"></topic-details></section><section class="section-rules-group-content"><topic-rule-list topic="topic"></topic-rule-list></section></div></div>');$templateCache.put('js/components/topics/topicRuleFilters/topicRuleFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><incidents-tri-state ng-if="isBeta" class="col-xs-6 col-md-5 col-lg-4"></incidents-tri-state><total-risk-select class="col-xs-6 col-md-4 col-lg-3"></total-risk-select><risk-of-change-select class="col-xs-6 col-md-4 col-lg-4"></risk-of-change-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/topics/topicRuleList/topicRuleList.html','<div class="topic-rule-list"><div class="cards-view"><div ng-show="getListType() === listTypes.card &amp;&amp; plugins.length &gt; 0" class="row"><div class="col-sm-12"><div class="card-list"><div ng-repeat="plugin in plugins | orderBy: sorter.predicate : sorter.reverse track by plugin.plugin_id" class="card-list-item"><rule-group-card ng-if="plugin.type === \'group\'" plugin="plugin"></rule-group-card><card ng-if="plugin.type === \'rule\'" ng-class="{faded: plugin.acked}"><card-header><i ng-class="plugin.rule.category.toLowerCase()" class="fa category-icon inline-right"></i><span class="title">{{ ::plugin.rule.category }} &gt; {{ ::plugin.rule.description }}</span><div translate="translate" translate-n="plugin.hitCount" translate-plural="{{$count}} Systems" class="count">1 System</div><div class="pull-right"><span ng-if="plugin.acked" translate="translate" class="label label-default inline-right rule-inactive">INACTIVE</span><incident-icon rule-id="plugin.rule.rule_id" class="inline-right">&nbsp;</incident-icon><ansible-icon value="plugin.rule.ansible" ng-if="config.isPlannerEnabled"></ansible-icon></div></card-header><card-content><div ng-bind-html="::plugin.rule.summary_html" target-blank="" class="gray"></div></card-content><div class="footer"><div class="row"><div class="col-sm-6"><all-severity-icons rule="plugin.rule"></all-severity-icons></div><div class="col-sm-6 text-right"><strong ng-hide="plugin.rule.acked"><a translate="translate" ui-sref="app.actions-rule({category: topic.slug ? topic.slug : topic.id, rule: plugin.rule.rule_id})" ng-disabled="plugin.rule.hitCount === 0">View Impacted Systems</a></strong></div></div></div></card></div></div></div></div></div><div class="table-view"><div ng-show="getListType() === listTypes.table &amp;&amp; plugins.length &gt; 0" class="row"><div class="col-sm-12"><table id="rha-rules-table" class="table ng-table break-word"><thead><tr><th ng-class="sorter.getSortClass(\'description\')" ng-click="sorter.sort(\'description\')" class="sortable"><div translate="translate" class="sort-indicator">Rule</div></th><!-- START UBER-SEV--><th ng-class="sorter.getSortClass(\'rec_likelihood\')" ng-click="sorter.sort(\'rec_likelihood\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Likelihood</div></th><th ng-class="sorter.getSortClass(\'rec_impact\')" ng-click="sorter.sort(\'rec_impact\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Impact</div></th><th ng-class="sorter.getSortClass(\'severityNum\')" ng-click="sorter.sort(\'severityNum\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Total Risk</div></th><!-- END UBER-SEV--><th ng-class="sorter.getSortClass(\'hitCount\')" ng-click="sorter.sort(\'hitCount\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Systems</div></th><th ng-if="config.isPlannerEnabled" ng-class="sorter.getSortClass(\'ansible\')" ng-click="sorter.sort(\'ansible\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Ansible</div></th></tr></thead><tbody><tr ng-repeat="rule in filteredRules | filter:filterZero | orderBy: sorter.predicate : sorter.reverse track by rule.rule_id" ng-class="{acked: rule.acked}" class="legend-item"><td ng-click="!rule.acked &amp;&amp; viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" ng-class="{\'icon-inline\' : checkIncident(rule.rule_id)}"><div ng-if="rule.acked" class="rule-description">{{rule.description}}</div><span ng-if="rule.acked" translate="translate" class="label label-default inline-left rule-inactive">INACTIVE</span><a ng-if="!rule.acked">{{rule.description}}</a><incident-icon rule-id="rule.rule_id"></incident-icon></td><!-- START UBER-SEV--><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.rec_likelihood" type="likelihood" label=""></severity-icon></td><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.rec_impact" type="impact" label=""></severity-icon></td><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td><!-- END UBER-SEV--><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="text-center align-vertical">{{ rule.hitCount }}</td><td ng-if="config.isPlannerEnabled" class="text-center align-vertical"><ansible-icon value="rule.ansible"></ansible-icon></td></tr></tbody></table></div></div></div><div ng-show="plugins.length === 0" class="row row-short"><div class="col-xs-12 text-center"><strong translate="translate">There are no actions for the selected filters.&nbsp;</strong></div></div><div ng-show="!showRulesWithNoHits &amp;&amp; hiddenCount" class="row row-short"><div class="col-sm-12 text-center"><button ng-click="showAll()" translate="translate" class="btn btn-sm btn-default">Show rules without actions ({{hiddenCount}} more)</button></div></div><div ng-show="!showCards" class="row row-short"><div class="col-xs-12"><div class="actions-back"></div></div></div></div>');$templateCache.put('js/states/config/views/config.html','<page-header title="Configuration" icon="fa-file-text"></page-header><div class="content-wrap"><div class="rha-notifications"></div><tabset class="config-tabs"><tab heading="{{\'Hidden Rules\'|translate}}" active="current.hidden" ng-click="tabClick(\'hidden\')"><config-hidden ng-if="current.hidden"></config-hidden></tab><tab heading="{{\'Messaging\'|translate}}" active="current.messaging" ng-click="tabClick(\'messaging\')"><config-messaging ng-if="current.messaging"></config-messaging></tab><tab heading="{{\'Settings\'|translate}}" active="current.settings" ng-click="tabClick(\'settings\')"><config-settings ng-if="current.settings"></config-settings></tab><!-- rh only--><tab heading="{{\'Webhooks\'|translate}}" active="current.webhooks" ng-click="tabClick(\'webhooks\')" ng-if="user.is_internal &amp;&amp; isBeta"><config-webhooks ng-if="current.webhooks"></config-webhooks></tab><tab heading="Permissions" active="current.permissions" ng-if="user.is_internal &amp;&amp; perms.has(user, perms.PERMS.SU)" ng-click="tabClick(\'permissions\')"><config-permissions ng-if="current.permissions"></config-permissions></tab><tab heading="Dev" active="current.dev" ng-click="tabClick(\'dev\')" ng-if="user.is_internal || user.demo_mode"><config-dev ng-if="current.dev"></config-dev></tab></tabset></div>');$templateCache.put('js/states/config/views/webhook-edit.html','<page-header title="Edit webhook" icon="fa-wrench"></page-header><div class="content-wrap webhook-edit"><div class="rha-notifications"></div><div ng-if="loader.loading" class="spinner"></div><form novalidate="novalidate" name="webhookForm" ng-if="!loader.loading" class="form-horizontal"><fieldset><div class="form-group row"><label translate="translate" class="control-label col-sm-2">Active</label><div class="col-sm-10"><div class="checkbox"><label for="checkbox_active"><input id="checkbox_active" type="checkbox" name="active" ng-model="webhook.active"/></label></div></div></div><div ng-class="{\'has-error\': errors.url || (webhookForm.url.$invalid &amp;&amp; webhookForm.url.$dirty)}" class="form-group row row-short"><label for="url" translate="translate" class="control-label col-sm-2">Target URL</label><div class="col-sm-10"><input id="url" type="text" name="url" ng-model="webhook.url" ng-pattern="&quot;https://.+&quot;" required="required" class="form-control"/><div ng-if="(errors.url || (webhookForm.url.$invalid &amp;&amp; webhookForm.url.$dirty))" class="error red"><strong translate="translate">Must be a valid https URL</strong></div></div></div><div ng-class="{\'has-error\': errors.certificate}" class="form-group row"><label for="certificate" translate="translate" class="control-label col-sm-2">Custom certificate</label><div class="col-sm-10"><span ng-if="!webhook.certificateInfo"><p><span translate="translate">Due to sensitive nature of data that Red Hat Insights operates on HTTPS is required. For cases when your server does not use a certificate signed by a&nbsp;</span><a href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/" translate="translate">trusted authority&nbsp;</a><span translate="translate">a custom certificate can be configured.</span></p><button translate="translate" ng-click="selected.certificateExpanded = true" ng-show="!selected.certificateExpanded" class="btn btn-sm btn-primary">Add certificate</button></span><span ng-if="webhook.certificateInfo &amp;&amp; !selected.certificateExpanded"><div class="content-block content-block-card"><div class="content"><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Common Name (CN):</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.subject.cn}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Organization (O)</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.subject.o}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Issuer Common Name (CN):</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.issuer.cn}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Issuing Organization (O)</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.issuer.o}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Valid until</label><div class="col-sm-8"><p ng-class="certDateClass(webhook.certificateInfo.validUntil)" class="form-control-static">{{webhook.certificateInfo.validUntil | moment:\'LLL\'}}</p></div></div></div><div class="footer"><div class="pull-right"><button translate="translate" ng-click="webhook.certificate = null; webhook.certificateInfo = null" ng-show="!selected.certificateExpanded" class="action btn btn-sm btn-open">Remove certificate</button><button translate="translate" ng-click="selected.certificateExpanded = true" ng-show="!selected.certificateExpanded" class="btn btn-sm btn-accent">Edit certificate</button></div></div></div></span><div ng-if="selected.certificateExpanded" class="certificate"><textarea id="certificate" placeholder="Paste certificate in PEM format here" ng-model="webhook.certificate" rows="15" class="form-control"></textarea><div ng-if="errors.certificate" class="error red"><strong translate="translate">Invalid certificate</strong></div></div></div></div><div class="form-group row"><label for="active" translate="translate" class="control-label col-sm-2">Webhook triggers</label><div class="col-sm-10"><div class="radio"><label for="radio_all"><input id="radio_all" type="radio" ng-model="webhook.firehose" ng-value="true"/><span translate="translate">Every event (no filtering)</span></label></div><div class="radio"><label for="radio_selected" class="checkbox_active"><input id="radio_selected" type="radio" ng-model="webhook.firehose" ng-value="false"/><span translate="translate">Only selected event types</span></label></div></div></div><div ng-if="!webhook.firehose" class="form-group row row-short"><div class="col-sm-offset-2 col-sm-10"><div class="row"><div class="col-sm-5"><div ng-repeat="event in eventTypes | limitTo:2 track by event.name" class="checkbox"><label><input type="checkbox" name="active" ng-model="selected.events[event.name]"/>{{event.description}}</label></div></div><div class="col-sm-7"><span ng-repeat="severity in severities track by severity.value" class="checkbox severity"><label><input type="checkbox" name="active" ng-model="selected.severityFilters[severity.value]" ng-disabled="!selected.events[&quot;report:new&quot;] &amp;&amp; !selected.events[&quot;report:resolved&quot;]"/><severity-icon severity="severity.value" type="severity" label="" class="inline-right"></severity-icon>{{severity.label}}</label></span></div></div><div class="row"><div ng-repeat="event in eventTypes | limitTo:eventTypes.length:2 track by event.name" class="checkbox col-sm-12"><label><input type="checkbox" name="active" ng-model="selected.events[event.name]"/>{{event.description}}</label></div></div></div></div></fieldset><div class="btn-group pull-right"><button ui-sref="app.config({tab: &quot;webhooks&quot;})" translate="translate" class="btn btn-sm btn-default">Cancel</button><button ng-click="save()" ng-disabled="webhookForm.$invalid" translate="translate" class="btn btn-sm btn-primary">Save</button></div></form></div>');$templateCache.put('js/states/getting-started/views/getting-started-cloudforms.html','<section id="prerequisites" class="section"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Red Hat CloudForms version 4.0 or later</li><li translate="translate">The CloudForms 4.0 appliance must be registered to either Satellite Server version 6.1.5 or later or to Customer Portal Subscription Management hosted subscription service.</li><li translate="translate">Smart State Analysis capability is enabled for Red Hat Enterprise Linux virtual machines.</li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="registerappliance" class="section"><div class="step-num">3</div><h2 translate="translate" class="section-header">Verify CloudForms Appliance registration</h2><p translate="translate">All appliances configured for the UI role that will be used to view Red Hat Insights reports must be registered for Red Hat updates. In the CloudForms Management Engine UI, navigate to <strong>Configure -&gt; Configuration</strong>. Select a zone and verify that the appropriate appliance is registered.</p><p translate="translate"><strong>Note:&nbsp;</strong>The Satellite Server organization to which the CloudForms appliance is registered must have Insights enabled.</p><img src="static/images/img-cfme-appliance-register.jpg" class="screenshot"/></section><section id="configuresmartstate" class="section"><div class="step-num">4</div><h2 translate="translate" class="section-header">Configure Smart State Analysis</h2><p translate="translate">Configure the Smart State Analysis profile for your appliances to collect the contents of the file <strong>/etc/redhat-access-insights/machine-id</strong></p><img src="static/images/img-cfme-smartstate-config.png" class="screenshot"/></section><section id="register" class="section"><div class="step-num">5</div><h2 translate="translate" class="section-header">Register Your Virtual Machines</h2><p translate="translate"><strong> Important:</strong> All virtual machines must be registered to the same Red Hat account as the CloudForms appliance.</p><p translate="translate">To register virtual machines to Red Hat Insights, you\'ll need to install the Insights client RPM and then register virtual machines to the Insights service.</p><p translate="translate">Install the RPM in the virtual machine:</p><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-insights</code></pre><p translate="translate">Register the system to Insights service:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">These steps can be automated using the configuration tool of your choice.</p></section><section id="runsmartstate" class="section"><div class="step-num">6</div><h2 translate="translate" class="section-header">Run Smart State Analysis on RHEL virtual machines</h2><p translate="translate">A Smart State Analysis must be run once on all RHEL virtual machines you have registered to Red Hat Insights. This step is only required once. If a new virtual machine is created afterward, then a Smart State Analysis need only be run on that new virtual machine after it has been registered to Insights.</p><p translate="translate">For more information on how to configure and run Smart State Analysis, see the official CloudForms &nbsp;<a href="https://access.redhat.com/documentation/en-US/Red_Hat_CloudForms/3.2/html/Insight_Guide/sect-Virtual_Machines.html#sect-Analyzing_Virtual_Machines_and_Templates">documentation.</a></p></section><section id="viewingandmanaging" class="section"><div class="step-num">7</div><h2 translate="translate" class="section-header">View Reports and Manage Red Hat Insights From the CloudForms UI</h2><p translate="translate" class="margin-top">To view Insights reports in the CloudForms UI, navigate to <strong>Red Hat Insights -&gt; Overview</strong>.</p><img src="static/images/img-cfme-insights-overview.png" class="screenshot"/><p translate="translate" class="margin-top">To view and manage Insights rules, navigate to <strong>Red Hat Insights -&gt; Rules</strong>.</p><img src="static/images/img-cfme-insights-rules.png" class="screenshot"/><p translate="translate" class="margin-top">To view the list of systems that are reporting data to Insights, navigate to <strong>Red Hat Insights -&gt; Systems</strong>.</p><img src="static/images/img-cfme-insights-systems.png" class="screenshot"/></section><section id="userroles" class="section"><div class="step-num">8</div><h2 translate="translate" class="section-header">Assign Red Hat Insights to user roles</h2><p translate="translate">By default, only super administrators can view Insights Report and Configuration screens. You can give users who are not super administrators access to the Insights screens by assigning the appropriate features to their roles.</p><img src="static/images/img-cfme-insights-features.png" class="screenshot"/><p translate="translate">In addition to the feature controls above, a user can only view Insights reports on those virtual machines to which the user has permission to view in CloudForms.</p></section>');$templateCache.put('js/states/getting-started/views/getting-started-containers.html','<section id="prerequisites" class="section"></section><h2 translate="translate" class="section-header">Prerequisites for Installing Red Hat Insights</h2><p translate="translate">Before proceeding with installing Red Hat Insights, ensure the following prerequisites are met:</p><ul><li translate="translate">Red Hat Enterprise Linux (RHEL) 7.0 or later host configured to run containers</li><li translate="translate">RHEL firewall rules must allow Red Hat Insights to make outbound connections to https://api.access.redhat.com:443 and https://cert-api.access.redhat.com:443</li></ul><section id="enablerepo"><div class="step-num">1</div><h2 translate="translate" class="section-header">Enable the Red Hat Insights Repository</h2><p translate="translate">To start the installation, the Red Hat Insights repository must be enabled:</p><pre class="code-block code-terminal"><code class="language-shell"> ~ $ sudo yum-config-manager --add-repo </code>http://copr.fedorainfracloud.org/coprs/insights/insights-client-beta/repo/epel-7/insights-insights-client-beta-epel-7.repo</pre></section><section id="install"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights Client</h2><p translate="translate">The following command will install the Red Hat Insights client: </p><pre class="code-block code-terminal"><code>~ $ yum install insights-client -y --nogpgcheck</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Run and Register the Red Hat Insights Client</h2><p translate="translate">The following command will run and register the Insights client:</p><pre class="code-block code-terminal"><code>~ $ sudo insights-client --container --register </code></pre><p translate="translate">After running the Insights client, it will upload initial system and image information to Red Hat Insights. You should be able to immediately see your system and image information in the Insights user interface.</p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">3</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">4</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-direct.html','<section id="activate"><div class="step-num">1</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="install"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights Client and Register Your Systems</h2><p translate="translate">Register your system for updates with Red Hat Subscription Manager to resolve software dependencies:</p><pre class="code-block code-terminal"><code class="language-shell"> # subscription-manager register --auto-attach</code></pre><p translate="translate">Install the Red Hat Insights RPM:</p><pre class="code-block code-terminal"><code class="language-shell"> # yum install redhat-access-insights</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Register the system to Red Hat Insights</h2><p translate="translate"><strong>Note: </strong>Registration with <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic </a> is also available but requires <a href="#classic" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><pre class="code-block code-terminal"><code># redhat-access-insights --register</code></pre><p translate="translate">After registration, the Insights client will upload initial system information to Red Hat Insights. You should be able to immediately see your system in the <a ui-sref="app.inventory">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shorty thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">4</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">5</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-osp.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites for Installing the Red Hat Insights for OpenStack Private Beta</h2><p translate="translate">Before proceeding with installing the Red Hat Insights for OpenStack Private Beta, ensure the following prerequisites are met:</p><ul><li translate="translate">The OpenStack deployment must be Red Hat OpenStack Platform (OSP) 7 or later and set up with the OSP Director.</li><li translate="translate">The OSP Director node (also referred to as the Undercloud in these directions) must have the rhel-7-server-rh-common-rpms repository\nenabled.</li><li translate="translate">Firewall rules must allow the Insights Coordinator to make outbound connections to https://api.access.redhat.com:443 and https://cert-api.access.redhat.com:443</li></ul></section><section id="installrepo"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights for OpenStack Private Beta Repositories on the Undercloud</h2><p translate="translate">To start the installation, the Red Hat Insights for OpenStack Private Beta repositories must be installed on the OSP Director node.</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo yum-config-manager --add-repo http://copr.fedorainfracloud.org/coprs/insights/insights-client/repo/epel-7/insights-insights-client-epel-7.repo</code><br/><code class="language-shell"> stack@undercloud $ sudo yum-config-manager --add-repo http://copr.fedorainfracloud.org/coprs/insights/insights-coordinator-rhosp/repo/epel-7/insights-insights-coordinator-rhosp-epel-7.repo</code></pre></section><section id="completeinstallation"><div class="step-num">3</div><h2 translate="translate" class="section-header">Install the Red Hat Insights for OpenStack Private Beta Components</h2><p translate="translate">Follow this set of instructions to install the Insights Coordinator and Client packages. </p><p translate="translate">The following command will install the OpenStack Coordinator on the Undercloud node:</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo yum install insights-coordinator-rhosp --nogpgcheck -y</code></pre><p translate="translate">The following command will install the Client on the Undercloud and Overcloud nodes and register the stack with Red Hat Insights:</p><pre class="code-block code-terminal"><code class="language-shell">stack@undercloud $ sudo redhat-access-insights --register --no-schedule --no-upload --silent</code></pre><p translate="translate">The Client cron job and Coordinator cron jobs cannot be symlinked simultaneously or conflicts will occur. The following command will remove the symlink that will have been created in /etc/cron.daily for the Client:</p><pre class="code-block code-terminal"><code class="language-shell">sudo redhat-access-insights --no-schedule</code></pre><p translate="translate">Edit /etc/redhat-access-insights/redhat-access-insights.conf and add no_schedule=True. This value should already exist at the bottom of the file so it will just need to be uncommented and changed to True, but should it not exist it will need to be added.</p></section><p translate="translate">The following command will configure the Coordinator and Client installations:<pre class="code-block code-terminal"><code class="language-shell">stack@undercloud $ sudo insights-coordinator-rhosp --configure</code></pre><p translate="translate"><strong>Note: </strong>The Coordinator will attempt to auto-configure the communication to Red Hat based on the subscription-management information on the Undercloud node. However, using a proxy and/or using <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic</a>credentials is available but requires <a href="#proxy" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><p translate="translate">If issues arise with these commands, examine /etc/redhat-access-insights/redhat-access-insights.conf and ensure everything is set properly.</p><p translate="translate">Last, run the following command to complete the installation and view any messages from the Coordinator during the execution and upload of the archive:</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo insights-coordinator-rhosp --verbose</code></pre><p translate="translate">After the above command finishes, the Insights Coordinator has uploaded the initial deployment information to Red Hat Insights. \nYou should be able to immediately see your stack in the <a href="https://access.redhat.com/insightsbeta" target="_blank">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></p><section id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">5</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">6</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></section>');$templateCache.put('js/states/getting-started/views/getting-started-rhv.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites for Installing Red Hat Insights for RHV</h2><p translate="translate">Before proceeding with installing Red Hat Insights on RHV, ensure the following prerequisites are met:</p><ul><li translate="translate">The RHV deployment must be Red Hat Enterprise Virtualization (RHV) 3.5 or later and RHV Manager must be running Red Hat Enterprise Linux 6.7 or later.</li><li translate="translate">Firewall rules must allow Red Hat Insights to make outbound connections to https://api.redhat.com:443 and https://cert-api.access.redhat.com:443 </li><li translate="translate">Ensure that the RHV Manager can SSH into all individual hypervisor nodes, and that the SSH fingerprints have been accepted for all hypervisor nodes. The manager must have access to all of the individual hypervisors via public key access (defined in the configuration files, or by running --configure).</li></ul></section><section id="installrepo"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the repositories</h2><p translate="translate">To start the installation, the Red Hat Insights repositories must be installed.</p><p translate="translate">Run the following commands on the RHV Manager to obtain the Red Hat Insights repositories:</p><pre class="code-block code-terminal"><code class="language-shell"> sudo yum-config-manager --add-repo </code>https://copr.fedorainfracloud.org/coprs/insights/insights-client/repo/epel-6/insights-insights-client-epel-6.repo<br/><code class="language-shell"> sudo yum-config-manager --add-repo </code>http://copr.fedorainfracloud.org/coprs/insights/insights-coordinator-rhev/repo/epel-6/insights-insights-coordinator-rhev-epel-6.repo</pre></section><section id="installclient"><div class="step-num">3</div><h2 translate="translate" class="section-header">Install the Red Hat Insights client</h2><p translate="translate">The following command installs Red Hat Insights on the RHV Manager, which will collect information from all the virtualization hosts in the environment. </p><p translate="translate"><strong>Note: </strong>Registration with <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic </a>is also available but requires <a href="#classic" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><pre class="code-block code-terminal"><code class="language-shell"> sudo yum install insights-coordinator-rhev --nogpgcheck</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Registration</h2><p translate="translate">When configuring your RHV Manager for Red Hat Insights, be sure to have your RHV Manager API and Hypervisor SSH information ready; Red Hat Insights will guide you through the configuration.</p><pre class="code-block code-terminal"><code># sudo insights-coordinator-rhev --configure</code></pre><p translate="translate">Once configured, this next step installs Red Hat Insights on the RHV Manager and all of the hypervisor nodes.</p><pre class="code-block code-terminal"><code># sudo insights-coordinator-rhev --verbose</code></pre><p translate="translate">After registration, the Insights client will upload initial system metadata to Red Hat Insights. You should be able to immediately see your system in the Insights user interface.</p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">5</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it using the following commands on the RHV Manager:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">6</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password using the following commands on the RHV Manager:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-sat5.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Ensure that you\'re running Satellite 5.7.</li><li translate="translate">Install redhat-access-plugin-sat5:</li><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-plugin-sat5</code></pre><li translate="translate">Restart Satellite</li><pre class="code-block code-terminal"><code class="language-shell"># rhn-satellite restart</code></pre><li translate="translate">Satellite Organizations with Insights must be running in Connected mode. Any firewalls or proxies through which the Satellite server communicates to Red Hat must allow https communications to <a href="https://access.redhat.com">https://access.redhat.com</a></li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="enable"><div class="step-num">3</div><h2 translate="translate" class="section-header">Enable Red Hat Insights</h2><p translate="translate">Log in to the Satellite Administrator account. Navigate to the <strong>Admin --&gt; Insights</strong> page. Before enabling Insights, click \'Test Connection to Red Hat Insights API\'. If the test is successful you will see a green check circle next to the button. Otherwise you will see a red circle and a log will appear. When the test is successful, select "Enable Insights Service" then click the "Update" button. The Red Hat Insights GUI pieces will now appear in Satellite.</p><img src="static/images/img-sat5-step2-admin.png" class="screenshot"/></section><section id="rpm"><div class="step-num">4</div><h2 translate="translate" class="section-header">Install RPM on Systems</h2><p translate="translate">There are multiple ways to automate this process. See the <a href="#register" relative-hash="relative-hash" permalink="permalink">Register Systems</a> section for details.</p><p translate="translate">Navigate to the <strong>Systems --&gt; Insights --&gt; Setup</strong> tab as an Organization Administrator. Select the systems to install the redhat-access-insights RPM onto, then click "Apply".</p><img src="static/images/img-sat5-step3-setup.png" class="screenshot"/><p translate="translate">Check the status of the RPM installation by navigating to the <strong>Schedule --&gt; Pending Actions</strong> page.</p><img src="static/images/img-sat5-step3-pending.png" class="screenshot"/><p translate="translate">This could take some time depending on your Satellite configuration. <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/5.7/html/Installation_Guide/Enabling_Push_to_Clients.html">Enabling push to clients</a> will speed up the install. When the RPM is installed you are ready to move on to the next step.</p><img src="static/images/img-sat5-step3-completed.png" class="screenshot"/></section><section id="register"><div class="step-num">5</div><h2 translate="translate" class="section-header">Register Your Systems</h2><p translate="translate">To register a system manually:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">There are multiple ways to automate this process including Red Hat Satellite\'s built-in<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/5.7/html/Getting_Started_Guide/sect-Managing_Configuration_Channels.html" target="_blank"> Configuration Management Channels.</a></p><p translate="translate">We\'ve also provided several options for popular configuration management tools below:</p><ul><li><a href="https://forge.puppetlabs.com/lphiri/access_insights_client" target="_blank" translate="translate">Puppet</a></li><li><a href="https://supermarket.chef.io/cookbooks/redhat-access-insights-client" target="_blank" translate="translate">Chef</a></li><li><a href="https://galaxy.ansible.com/list#/roles/4098" target="_blank" translate="translate">Ansible</a></li></ul></section><section id="validate"><div class="step-num">6</div><h2 translate="translate" class="section-header">Validate Data was Reported</h2><p translate="translate">Shortly after you execute `redhat-access-insights --register` on at least one machine, navigate to <strong>Systems --&gt; Overview</strong> in Satellite. Find the system you registered. The status should either be a green check or a red exclamation point.</p><img src="static/images/img-sat5-step5-systems.png" class="screenshot"/><p translate="translate">If you see a red exclamation, click it to see the reports about your system.</p><img src="static/images/img-sat5-step5-reports.png" class="screenshot"/><p translate="translate">To view an overview of all system reports, navigate to <strong>Systems --&gt; Insights</strong>.</p><img src="static/images/img-sat5-step5-overview.png" class="screenshot"/></section>');$templateCache.put('js/states/getting-started/views/getting-started-sat6.html','<section id="prerequisites" class="section"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Ensure that you\u2019re running the latest Satellite 6.1.</li><li translate="translate">Ensure that you\u2019ve synchronized the latest RHEL 6.7 and RHEL 7.1.z RPMs to your Satellite, and that they are available to your clients.</li><li translate="translate">In order for the Red Hat Satellite Server to be an Insights client, please follow the <a ui-sref="info.getting-started.direct">direct</a> registration instructions and run the following command prior to installing the redhat-access-insights client.</li><pre class="code-block code-terminal"><code class="language-shell"># yum update python-requests</code></pre><li translate="translate">A manifest must be downloaded and imported into the Satellite Organization in which Insights will be enabled.\nFor more information on managing manifests, see the official Satellite 6<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/Installation_Guide/chap-Red_Hat_Satellite-Installation_Guide-Populating_Red_Hat_Satellite_with_Content.html#sect-Red_Hat_Satellite-Installation_Guide-Setting_up_a_Manifest"> documentation.</a></li><li translate="translate">Satellite Organizations with Insights must be running in Connected mode. Any firewalls or proxies through which the Satellite server communicates to Red Hat must allow https communications to <a href="https://cert-api.access.redhat.com">https://cert-api.access.redhat.com</a></li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="verifyconnection" class="section"><div class="step-num">3</div><h2 translate="translate" class="section-header">Verify Connection to Red Hat Insights</h2><p translate="translate">Verify that the Satellite server can successfully communicate with Red Hat Insights. In the Satellite UI, navigate to <strong>Insights -&gt; Manage</strong>. Verify that the engine connection status is "Connected" and that the account number displayed is correct for your organization.</p><img src="static/images/img-sat6-step2-manage.jpg" class="screenshot"/></section><section id="register" class="section"><div class="step-num">4</div><h2 translate="translate" class="section-header">Register Your Systems</h2><p translate="translate">To register Satellite clients to Red Hat Insights, you\'ll need to install the client rpm and then register the system.</p><p translate="translate">Install the RPM:</p><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-insights</code></pre><p translate="translate">Register the system:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">If you are using Red Hat Satellite\u2019s configuration management provided by Puppet this process can be automated by applying the preinstalled Puppet class \'access_insights_clients\'. This class can be imported from the Puppet Master into the appropriate Puppet environment and applied to hosts that you wish to subscribe to Red Hat Insights.\nFor more information on using on Puppet with Satellite 6, refer to the official <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/User_Guide/chap-Red_Hat_Satellite-User_Guide-Configuring_the_Provisioning_Environment.html#sect-Red_Hat_Satellite-User_Guide-Creating_a_Host_Group">documentation.</a></p></section><section id="viewingandmanaging" class="section"><div class="step-num">5</div><h2 translate="translate" class="section-header">Viewing Reports and Managing Access From the Satellite UI</h2><p translate="translate" class="margin-top">To view Insights reports, navigate to <strong>Insights -&gt; Overview</strong> in the Satellite 6 UI.</p><img src="static/images/img-sat6-step5-overview.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view and manage Insights rules, navigate to <strong>Insights -&gt; Rules</strong>.</p><img src="static/images/img-sat6-step5-rules.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view the list of systems that are reporting data to Red Hat Insights, navigate to <strong>Insights -&gt; Systems</strong>.</p><img src="static/images/img-sat6-step5-systems.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view connection status or enable/disable Red Hat Insights globally for an Organization, navigate to <strong>Insights -&gt; Manage</strong>.</p><img src="static/images/img-sat6-step5-manage.jpg" class="screenshot"/></section><section id="userroles" class="section"><div class="step-num">6</div><h2 translate="translate" class="section-header">Assign Red Hat Insights Roles to Users</h2><p translate="translate">By default, only administrators can view Insights Report and Configuration screens. You can give users who are not administrators access to the Insights screens by assigning them the appropriate roles as follows.</p><ul><li translate="translate">To give users access to all Insights screens, including the "Manage" screen, assign them the "Insights Admin" role. In addition, users must be granted the "view_content_host" permission.</li><li translate="translate">To give users Insights report and rule viewing access, assign them the "Insights Viewer" role. In addition, users must be granted the "view_content_host" permission.</li></ul><p translate="translate">For more information on roles refer to the official Satellite 6 <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/User_Guide/chap-Red_Hat_Satellite-User_Guide-Users_and_Roles.html">documentation.</a></p></section>');$templateCache.put('js/states/getting-started/views/getting-started.html','<div class="container getting-started-page-intro text-center"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div><div class="col-sm-8 col-sm-offset-2"><insights-tagline></insights-tagline></div></div></div><div id="getting-started" class="band getting-started info-page fixed-scroll-content"><div class="container"><div class="row flex-container"><div id="navvy-container" class="col-md-3 hidden-xs hidden-sm navvy-container"><div id="navvy" data-sticky-nav="" parent="#getting-started" child="#navvy" sibling="#info" offset="40" class="navvy"><div class="header"><h2 translate="translate">Getting Started</h2></div><div class="content"><nav><ul><li ng-repeat="s in sections()" class="fade-in ng-animate-enabled"><a ng-href="{{s.id}}" du-scrollspy="du-scrollspy" relative-hash="relative-hash" permalink="permalink"><span class="arrow"></span>{{s.text | translate}}</a></li></ul></nav></div></div></div><div id="info" class="col-md-9 info"><div class="content"><getting-started-tabs></getting-started-tabs><div ui-view="" class="ng-animate-enabled fade-in"></div><section class="section"><h2 translate="translate" class="section-header">Additional resources</h2><a ui-sref="info.info" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Learn More about Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></section></div></div></div></div></div>');$templateCache.put('js/states/hidden/components/components.html','<div class="components"><div class="page-header"><h1 class="page-title">Material Demo</h1></div><div id="popupcontainer" ng-cloak="ng-cloak" class="content-wrap"><md-content><md-tabs md-dynamic-height="" md-border-bottom=""><md-tab label="Jade/HTML Only"><md-content class="md-padding"><h1 class="md-display-2">Jade/HTML Only</h1><hr/><!-- --- BUTTONS CARD --><md-card class="md-padding"><md-header><h3>Buttons</h3></md-header><div class="row"><div class="col-md-12"><h4>Flat Buttons</h4><div class="col-md-3"><md-button>Basic</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button</code></pre></div><div class="col-md-3"><md-button md-no-ink="md-no-ink" class="md-primary">Primary (No Ink)</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary(md-no-ink)</code></pre></div><div class="col-md-3"><md-button ng-disabled="true" class="md-primary">Disabled</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary(ng-disabled="true")</code></pre></div><div class="col-md-3"><md-button class="md-warn">Warning</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-warn</code></pre></div></div></div><div class="row"><div class="col-md-12"><h4>Raised Buttons</h4><div class="col-md-3"><md-button class="md-raised">Basic</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised</code></pre></div><div class="col-md-3"><md-button md-no-ink="md-no-ink" class="md-raised md-primary">Primary (No Ink)</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-primary(md-no-ink)</code></pre></div><div class="col-md-3"><md-button ng-disabled="true" class="md-raised md-primary">Disabled</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-primary(ng-disabled="true")</code></pre></div><div class="col-md-3"><md-button class="md-raised md-warn">Warning</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-warn</code></pre></div></div></div></md-card><!-- --- FORMS--><md-card class="md-padding"><md-header><h3>Form Example</h3></md-header><div class="row"><div class="col-md-12"><h4>Checkbox</h4></div></div><div class="row"><div class="col-md-4"><md-checkbox aria-label="Checkbox 1">Checkbox 1: Default</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox(aria-label=\'Checkbox 1\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox ng-model="data.cb2" aria-label="Checkbox 2" ng-true-value="\'yup\'" ng-false-value="\'nope\'" flex="" class="md-warn md-align-top-left">Checkbox 2 (md-warn) <br/><span> </span></md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-warn(aria-label=\'Checkbox 2\', ng-true-value="\'yup\'", ng-false-value="\'nope\'")</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox ng-disabled="true" aria-label="Disabled checkbox" ng-model="data.cb3">Checkbox: Disabled</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox(ng-disabled=\'true\', aria-label=\'Disabled checkbox\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-no-ink="" aria-label="Checkbox No Ink" class="md-primary">Checkbox (md-primary): No Ink</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-no-ink=\'\', aria-label=\'Checkbox No Ink\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-indeterminate="" aria-label="Checkbox Indeterminate" class="md-primary">Checkbox: Indeterminate</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-indeterminate=\'\', aria-label=\'Checkbox Indeterminate\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-indeterminate="" aria-label="Checkbox Disabled Indeterminate" ng-disabled="true" class="md-primary">Checkbox: Disabled, Indeterminate</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-indeterminate=\'\', aria-label=\'Checkbox Disabled Indeterminate\', ng-disabled=\'true\')</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Inputs</h4></div></div><div class="row"><div class="col-md-4"><md-input-container class="md-block"><label>First Name</label><input/></md-input-container></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-input-container.md-block\n label [insert label]\n input</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Radio Buttons</h4></div></div><div class="row"><div class="col-md-4"><md-radio-group><md-radio-button value="Foo" class="md-primary">Foo</md-radio-button><md-radio-button value="Bar" class="md-accent">Bar</md-radio-button><md-radio-button value="Insights" class="md-warn">Insights</md-radio-button></md-radio-group></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-radio-button.md-primary(value="Foo") Foo\nmd-radio-button.md-accent(value="Bar") Bar\nmd-radio-button.md-warn(value="Insights") Insights</code></pre></div></div></md-card><!-- --- LOADING ICON CARD --><md-card class="md-padding"><md-header><h3>Loading Icons</h3></md-header><div class="row"><div class="col-md-12"><p>All loading icons can be configured to load based on percentage (determinate)</p></div></div><div class="row"><div class="col-md-12"><h4>Progress Linear</h4><md-progress-linear md-mode="indeterminate"></md-progress-linear><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-progress-linear(md-mode="indeterminate")</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Progress Circular</h4><md-progress-circular md-mode="indeterminate"></md-progress-circular><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-progress-circular(md-mode="indeterminate")</code></pre></div></div></md-card></md-content></md-tab><!-- --- Second Tab--><md-tab label="Needs Javascript"><md-content class="md-padding"><h1 class="md-display-2">Needs Javascript</h1><!-- --- DIALOG CARD --><md-card class="md-padding"><md-header><h3>Dialog Box</h3></md-header><div class="row"><div class="col-md-12"><md-button ng-click="showConfirm($event)" class="md-primary md-raised">Confirm Dialog</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary.md-raised(ng-click="showConfirm($event)") Comfirm Dialog</code></pre><pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">function [file-controller]Ctrl(\n $scope, \n $mdDialog) {\n $scope.status = \' \';\n $scope.customFullscreen = false;\n $scope.showConfirm = function (ev) {\n $mdDialog.show(\n .parent(angular.element(document.querySelector(\'#popupContainer\')))\n .clickOutsideToClose(true)\n .title(\'This is a title\')\n .textContent(\'This is the content\')\n .ariaLabel(\'Confirm Dialog Demo\')\n .ok(\'Confirm\')\n .cancel(\'Cancel\');\n .targetEvent(ev)\n );\n };\n}</code></pre></div></div></md-card><!-- --- Toast CARD --><md-card class="md-padding"><md-header><h3>Toasts</h3></md-header><div class="row"><div class="col-md-12"><md-button ng-click="showToast(\'top\', \'left\', \'fail\')" class="md-primary md-raised">Top Left Fail Toast</md-button><md-button ng-click="showToast(\'bottom\', \'right\', \'success\')" class="md-primary md-raised">Bottom Right Success Toast</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary.md-raised(ng-click="showToast(\'top\', \'left\', \'fail\')") Top Left Fail Toast\n \nmd-button.md-primary.md-raised(ng-click="showToast(\'bottom\', \'right\', \'success\')") Bottom Right Success Toast</code></pre><pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">function [file-controller]Ctrl(\n $scope, \n $mdToast) {\n $scope.showToast = function (h,v,state) {\n $mdToast.show(\n $mdToast.simple()\n .content(\'Toast Content!\')\n .hideDelay(\'3000\')\n .position(h + \' \' + v)\n .toastClass(\'stickyToast\' + \' \' + state)\n );\n }</code></pre></div></div></md-card><!-- Swipe Card--><md-card class="md-padding"><md-header><h3>Swiping</h3></md-header><div class="row"><div class="col-md-12"><md-card md-swipe-up="onSwipeUp()" class="demo-swipe text-center"><h4 class="no-select">Swipe Me Up</h4></md-card></div></div><div class="row"><div class="col-md-6"> <pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">[.element](md-swipe-up="onSwipeUp()")\n h4 Swipe Me Up</code></pre></div><div class="col-md-6"> <pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">$scope.onSwipeUp = function () {\n window.alert(\'You swiped up!!\');\n};</code></pre></div></div></md-card></md-content></md-tab><md-tab label="three"><md-content class="md-padding"><h1 class="md-display-2">Tab Three</h1><p>Integer turpis erat, porttitor vitae mi faucibus, laoreet interdum tellus. Curabitur posuere molestie dictum. Morbi eget congue risus, quis rhoncus quam. Suspendisse vitae hendrerit erat, at posuere mi. Cras eu fermentum nunc. Sed id ante eu orci commodo volutpat non ac est. Praesent ligula diam, congue eu enim scelerisque, finibus commodo lectus.</p></md-content></md-tab></md-tabs></md-content></div></div>');$templateCache.put('js/states/pages/views/402.html','<div class="page"><section><h1> <i class="fa fa-lock"> </i> 402 <small> No Red Hat Account Found</small></h1></section></div>');$templateCache.put('js/states/pages/views/403.html','<div class="page"><section><h1> <i class="fa fa-lock"> </i> 403 <small> Forbidden</small></h1></section></div>');$templateCache.put('js/states/topics/views/edit-topics.html','<div class="page topic-form"><div class="row margin-top"></div><div class="rha-notifications"></div><form novalidate="novalidate" name="topicForm" class="form-horizontal"><section><h2>Topic details</h2><div ng-class="{\'has-error\': topicForm.title.$invalid &amp;&amp; topicForm.title.$dirty}" class="form-group"><label for="title" class="control-label col-sm-2">Title</label><div class="col-sm-10"><input id="title" type="text" name="title" ng-model="topic.title" required="required" class="form-control"/></div></div><div ng-class="{\'has-error\': topicForm.slug.$invalid &amp;&amp; topicForm.slug.$dirty}" class="form-group"><label for="title" class="control-label col-sm-2">Slug</label><div class="col-sm-10"><div class="input-group"><div class="input-group-addon"><strong>/actions/</strong></div><input id="slug" type="text" name="slug" ng-model="topic.slug" class="form-control"/></div></div></div><div class="form-group"><label for="priority" class="control-label col-sm-2">Priority</label><div class="col-sm-1"><p id="priority" class="form-control-static">{{topic.priority + 1}}</p></div><div class="col-sm-9"><p class="form-control-static">Priority is determined from the order of topics in the &nbsp;<a ui-sref="app.admin-topic">topic admin table</a></p></div></div><div class="form-group"><label class="control-label col-sm-2">Topic listing behavior<i tooltip="Controls when this topic shows up for a customer in the topic list (actions page)." class="fa fa-question-circle inline-left"></i></label><div class="col-sm-10"><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="\'always\'"/>Always<i tooltip="This topic will be shown always, no matter if customer\'s systems are affected or not. The topic content should use interpolation and conditionals to react to different scenarios (e.g. there are no hits, user has 0 systems registered, product with 0 hits selected, user ignored certain rules, ...)" class="fa fa-question-circle inline-left"></i></label><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="&quot;has_hits&quot;"/>Systems affected<i tooltip="This topic will only be shown to a customer if at least one of their systems is affected. More precisely, the topic is shown if any of the active non-ignored rules associated with this topic (see below) has hits (unresolved actions) on customer\'s systems. If the customer used the product filter to select a particular product, the topic is only shown if there are hits for the selected product." class="fa fa-question-circle inline-left"></i></label><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="&quot;never&quot;"/>Never<i tooltip="This topic is never shown in the topic list. It can still be accessed by a direct link. It can also be used for backing a widget. Implicit topics (based on severity or category) will typically use this option." class="fa fa-question-circle inline-left"></i></label></div></div><div ng-class="{\'has-error\': error.content}" class="form-group"><label for="content" class="control-label col-sm-2">Content</label><div class="col-sm-10"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no><yes-no yes="true" text="doT"></yes-no></div><topic-admin-help-bar text-area="content"></topic-admin-help-bar><textarea id="content" placeholder="Topic content" ng-model="topic.content" rows="20" class="form-control content"></textarea><div ng-show="error.content" class="error red"><strong>{{error.content}}</strong></div><button ng-click="preview(topic, false, true)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-secondary pull-right"><span class="icon-inline"><i class="fa fa-picture-o"></i></span>Preview</button></div></div><div ng-class="{\'has-error\': error.summary}" class="form-group"><label for="summary" class="control-label col-sm-2">Summary</label><div class="col-sm-10"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no><yes-no yes="true" text="doT"></yes-no></div><topic-admin-help-bar text-area="summary"></topic-admin-help-bar><textarea id="summary" placeholder="Topic summary" ng-model="topic.summary" rows="10" class="form-control summary"></textarea><div ng-show="error.summary" class="error red"><strong>{{error.summary}}</strong></div><button ng-click="preview(topic, true, false)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-secondary pull-right"><span class="icon-inline"><i class="fa fa-picture-o"></i></span>Preview</button></div></div><hr/></section><section><h2>Rule selection</h2><p>There are multiple ways of associating rules with this topic. Choose the one that best suits the type of this topic.</p><div ng-class="{selected: ruleBinding === \'tagged\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="tagged" class="col-sm-2"/><label ng-click="ruleBinding = \'tagged\'">Tagged</label></div><div class="col-sm-10"><ui-select ng-model="topic.tag" append-to-body="false" ng-disabled="ruleBinding !== \'tagged\'" on-select="updateTaggedRules()"><ui-select-match placeholder="Select a tag" class="form-control ui-select-match">{{$select.selected}}</ui-select-match><ui-select-choices repeat="tag in (availableTags | filter: $select.search)" class="ui-select-choices">{{tag}}</ui-select-choices></ui-select><p class="form-control-static"><span translate="translate" translate-n="taggedRules.length" translate-plural="There are {{$count}} rules currently tagged with this tag.">There is 1 rule currently tagged with this tag.</span><span>&nbsp;This number may change in the future if additional rules are tagged with &nbsp;<strong ng-show="topic.tag">{{topic.tag}}.</strong><strong ng-hide="topic.tag">the tag.</strong></span><span>(or if the tag is removed from any of these rules)</span></p><rule-list-simple rules="taggedRules" on-select="selectedRule = rule.rule_id" order="[\'-severityNum\', \'-count\']"></rule-list-simple><p class="form-control-static">If you select an existing tag then all the rules tagged with this tag become part of this topic.\nThis binding is dynamic so if more rules are tagged by this tag in the future, these rules will become part of this topic.\nYou can also create a&nbsp;<a ui-sref="app.admin-rule-tags">new tag</a></p></div></div><div ng-class="{selected: ruleBinding === \'explicit\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="explicit" class="col-sm-2"/><label ng-click="ruleBinding = \'explicit\'">Explicit</label></div><div class="col-sm-10"><ui-select ng-model="select.rule" append-to-body="false" ng-disabled="ruleBinding !== \'explicit\'" on-select="addRule($item)"><ui-select-match placeholder="Add a rule" class="form-control ui-select-match">{{$select.selected.description}}</ui-select-match><ui-select-choices repeat="rule in (getAvailableRules() | filter: {description: $select.search}) | orderBy:[\'-severityNum\', \'-date\'] track by rule.rule_id" class="ui-select-choices"><div class="title">{{rule.description}}</div><all-severity-icons rule="rule"></all-severity-icons></ui-select-choices></ui-select><p class="form-control-static">You can explicitly pick one or multiple rules.</p><p ng-hide="topic.rules.length">No rules selected</p><rule-list-simple rules="topic.rules" on-select="selectedRule = rule.rule_id" on-delete="removeRule(rule)"></rule-list-simple></div></div><div ng-class="{selected: ruleBinding === \'implicit\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="implicit" class="col-sm-2"/><label ng-click="ruleBinding = \'implicit\'" class="text-muted">Implicit</label></div><div class="col-sm-10"><div class="row"><div class="col-sm-5"><simple-select model="topic.category" options="categories" disabled="ruleBinding !== \'implicit\'"></simple-select></div><div class="col-sm-2 text-center"><strong>AND</strong></div><div class="col-sm-5"><simple-select model="topic.severity" options="severities" disabled="ruleBinding !== \'implicit\'"></simple-select></div></div><div class="row"><div class="col-sm-12"><p ng-hide="implicitRules.length" class="form-control-static">No rules with this category</p><p class="form-control-static"><rule-list-simple rules="implicitRules" on-select="selectedRule = rule.rule_id" order="[\'-severityNum\', \'-count\']"></rule-list-simple></p><p class="form-control-static text-muted">Binds all rules that are of certain severity, belong to a certain category or combination of there of.\nThis binding is dynamic so if more rules are added for this category/severity in the future, these rules will become part of this topic.</p></div></div></div></div><hr/></section><div class="btn-group pull-right"><button ng-click="goBack()" class="btn btn-sm btn-default">Cancel</button><button ng-click="update(topic)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-primary">Save</button></div></form></div>');$templateCache.put('js/states/topics/views/topic-admin.html','<div class="page"><div class="row margin-top"></div><div class="rha-notifications"></div><section><h2 class="push-top-narrow">Topic administration</h2><table class="table table-striped table-bordered ng-table"><thead><tr><th>Title&nbsp;<i tooltip="User-facing name of this topic" class="fa fa-question-circle"></i></th><th>URL</th><th>Rules</th><th>Visibility<i tooltip="Controls when this topic shows up for a customer in the topic list (actions page)." class="fa fa-question-circle inline-left"></i></th><th>Actions</th></tr></thead><tbody><tr ng-repeat="topic in topics track by topic.id" ng-show="!loader.loading" class="ng-cloak"><td><a ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id})">{{topic.title}}</a></td><td><a ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id})">/actions/{{topic.slug ? topic.slug : topic.id}}</a></td><td>{{topic.rules.length}} ({{topic.ruleBinding}})<span ng-show="topic.ruleBinding === \'tagged\'">&nbsp;-&nbsp;<em>{{topic.tag}}</em></span><span ng-show="topic.ruleBinding === \'implicit\'">&nbsp;-&nbsp;<em ng-if="topic.category">{{topic.category}}</em><em ng-if="topic.category &amp;&amp; topic.severity">,&nbsp;</em><em ng-if="topic.severity">{{topic.severity}}</em></span></td><td><span ng-if="topic.listed === &quot;always&quot;">Always</span><span ng-if="topic.listed === &quot;has_hits&quot;">If systems affected</span><span ng-if="topic.listed === &quot;never&quot;">Never</span><span ng-show="topic.hidden" class="icon-inline"><i tooltip="This topic is not published. Only internal users can see it. Use the actions column to publish this topic." class="red fa fa-eye-slash inline-left"></i></span></td><td><span ng-show="topic.hidden" ng-click="hide(topic, false)" class="icon-inline"><i tooltip="Publish this topic" class="fa fa-eye"></i></span><span ng-hide="topic.hidden" ng-click="hide(topic, true)" class="icon-inline"><i tooltip="Hide this topic" class="fa fa-eye-slash"></i></span><span class="icon-inline"><a ui-sref="app.edit-topic({id: topic.id})" tooltip="Edit this topic"><i class="fa fa-pencil-square-o pointer"></i></a></span><span class="icon-inline"><i ng-click="delete(topic)" tooltip="Remove this topic" class="fa fa-remove"></i></span><a ng-click="move(topic, true)" ng-disabled="topic.priority === 0" tooltip="Move this topic higher in the priority list. This affects the order in which topics are presented to customers." class="icon-inline"><i class="fa fa-arrow-up"></i></a><a ng-click="move(topic, false)" ng-disabled="topic.priority === topics.length - 1" tooltip="Move this topic lower in the priority list. This affects the order in which topics are presented to customers." class="icon-inline"><i class="fa fa-arrow-down"></i></a></td></tr><tr ng-show="loader.loading"><td colspan="5"><div class="spinner spinner-lg"></div></td></tr><tr ng-show="!loader.loading &amp;&amp; !topics.length"><td colspan="5" class="text-center">No topics</td></tr></tbody><tfoot><tr><td colspan="5"><button ng-click="newTopic()" class="btn btn-secondary btn-sm pull-right">New topic</button></td></tr></tfoot></table></section></div>');$templateCache.put('js/states/topics/views/topic-list.html','<div class="actions-page actions-back"><page-header title="Actions" icon="fa-file-text"></page-header><topic-rule-filters ng-hide="loading"></topic-rule-filters><div ng-hide="loading" class="content-wrap"><actions-breadcrumbs ng-hide="loading" class="actions-breadcrumbs"></actions-breadcrumbs><section class="gray section-topic-details"><topic-details ng-hide="loading" topic="topic"></topic-details></section><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box placeholder="{{\'Search rules\' | translate}}" on-search="search.doFilter(model)"></search-box></div><div class="col-xs-5 col-sm-7 text-right"><list-type></list-type></div></div></section><section class="section-rules-group-content"><topic-rule-list ng-if="!loading" topic="topic"></topic-rule-list></section></div><!-- Spinner--><div ng-show="loading" class="margin-top text-center"><div class="spinner spinner-lg"></div></div></div>');$templateCache.put('js/components/overview/widgets/goals/goalsLite.html','<div id="goals-lite"><div ng-if="loading" class="row"><div class="col-sm-12 block-lg"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="goals-lite"><div class="info-box"><div ng-if="systemCount &gt; 0" class="row"><div class="col-sm-12 block-lg"><goals-gauge ng-init="buildGauge({getGaugeMax: getMaxFreeSystems, getGaugeNumber: getSystemCount})"></goals-gauge><div class="info"><h4 translate="translate">Systems Registered</h4><div ng-if="!systemLimitReached" class="free"><span translate="translate">{{maxFreeSystems - systemCount}} more Insights entitlements available&nbsp;</span><br/><span>Your evaluation will expire on {{expiration}}</span></div><div ng-if="systemLimitReached" class="free full"><span translate="translate">Congratulations! You have registered all available systems.</span></div></div></div><div ng-if="securityErrors" class="col-sm-6 block-md"><div class="count circle">{{securityErrors}}</div><h4 translate="translate">Protect yourself!</h4><p translate="translate">Fix all of your<br/>{{securityErrors}} security issues</p><a translate="translate" ui-sref="app.topic({id: \'security\'})" class="cta-link">View security issues</a></div><div ng-if="!securityErrors" class="col-sm-6 block-md"><div class="check circle"><i class="fa fa-check"></i></div><h4 translate="translate">You have no high severity security errors</h4></div><div ng-if="stabilityErrors" class="col-sm-6 block-md"><div class="count circle">{{stabilityErrors}}</div><h4 translate="translate">Increase your uptime!</h4><p translate="translate">Fix all of your<br/>{{stabilityErrors}} stability issues</p><a translate="translate" ui-sref="app.topic({id: \'stability\'})" class="cta-link">View stability issues</a></div><div ng-if="!stabilityErrors" class="col-sm-6 block-md"><div class="check circle"><i class="fa fa-check"></i></div><h4 translate="translate">You have no high severity stability errors</h4></div></div></div><div ng-if="systemCount === 0" class="row"><div class="col-sm-12 text-center"><h3>You have no systems registered. Take full advantage of Red Hat Insights by&nbsp;<!-- need to make this link clickable--><a translate="translate" href="{{gettingStartedLink}}" target="_blank" class="link">registering systems.</a></h3></div></div></div></div>');$templateCache.put('js/components/overview/widgets/handcraftedContent/handcraftedContent.html','<div id="handcrafted-conent" class="handcrafted-conent"><h3><strong>{{overview.article.title}}</strong></h3><span ng-bind-html="overview.article.content_html | trust_html" class="handcrafted-content"></span></div>');$templateCache.put('js/components/overview/widgets/highPrio/highPrio.html','<div ng-show="items.staleSystems" class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-wrench"></i><span translate="translate">Alerts&nbsp;</span></h2><div class="high-prio list-alert"><div ng-if="loading" class="spinner spinner-lg"></div><table ng-if="items.staleSystems &amp;&amp; !loading" class="table table-separated error"><tbody><tr><td width="50%"><strong>{{items.staleSystems}}&nbsp;</strong>Systems not checking in</td><td class="text-right"><a ui-sref="app.inventory({offline:true})" class="link">View Offline Systems</a></td><td ng-if="false" class="dismiss"><i class="fa fa-moon-o"></i></td></tr></tbody></table></div></section></div>');$templateCache.put('js/components/overview/widgets/maintenancePlanLite/maintenancePlanLite.html','<section class="widget-block"><h2 class="title"><i class="fa fa-wrench"></i><span translate="translate">Plan&nbsp;</span><span translate="translate" class="light">Summary</span><a ui-sref="app.maintenance" translate="translate" class="cta-link">View planner</a></h2><div class="maintenance-plan-lite"><div ng-if="getFirstSuggestion()" class="row row-short padding-top"><div class="col-sm-12"><div class="maintenance-plan-lite"><a ng-click="openPlan(getFirstSuggestion())" class="suggestions"><span class="icon-inline"><i aria-hidden="true" class="fa fa-check-square-o"></i><strong translate="translate" translate-n="plans.suggested[0].actions.length" translate-plural="You have a new plan suggestion ({{$count}} actions)" class="underline">You have a new plan suggestion (1 action)</strong></span></a></div></div></div><div ng-if="plans.future.length" class="row row-short"><div class="col-sm-12"><maintenance-plan-lite-table plans="plans.future" silence="silence" duration="duration"></maintenance-plan-lite-table></div></div><div ng-if="!plans.future.length &amp;&amp; plans.unscheduled.length" class="row"><div class="col-sm-12"><table class="table table-separated"><thead class="lite"><tr><th translate="translate"><b>Newest Plans</b></th><th width="11%" translate="translate"><b>Actions</b></th></tr></thead><tbody><tr ng-repeat="plan in (plans.unscheduled | limitTo:3 | orderBy:\'-maintenance_id\') track by plan.maintenance_id"><td ng-click="openPlan(plan)" class="start"><a>{{MaintenanceService.getPlanName(plan)}}</a></td><td ng-click="openPlan(plan)" class="action-count"><span>{{plan.actionsDone}}/{{plan.actions.length}}</span></td></tr></tbody></table></div></div><div ng-if="stats.rules.ansible" class="row row-short"><div class="col-sm-12 text-center"><strong translate="translate" translate-n="stats.rules.ansible" translate-plural="{{$count}} issues can be resolved automatically">1 issue can be resolved automatically</strong><span translate="translate">&nbsp;using&nbsp;</span><ansible-icon value="true" show-tooltip="false" class="inline-right"></ansible-icon><span translate="translate">Ansible</span></div></div><div class="row"><div class="col-sm-12 text-center"><a ng-click="MaintenanceService.showMaintenanceModal()" class="btn btn-accent"><strong translate="translate">Create a new Plan/Playbook</strong></a></div></div></div></section>');$templateCache.put('js/components/overview/widgets/newSystems/newSystems.html','<div class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-database"></i><span translate="translate">Newest Systems</span><a ui-sref="app.inventory" translate="translate" class="cta-link">View inventory</a></h2><div class="content"><div ng-show="loader.loading" class="spinner"></div><table ng-show="!loader.loading &amp;&amp; systems.length" class="table table-separated"><thead class="lite"><tr><th translate="translate">System</th><th translate="translate">Registration Date</th></tr></thead><tbody><tr ng-repeat="system in systems | orderBy:\'system.created_at\' track by system.system_id"><td><a ng-click="showSystemModal(system)" class="strong">{{system.toString}}</a></td><td><span>{{system.created_at | timeAgo}}</span></td></tr></tbody></table><p ng-show="!loader.loading &amp;&amp; !systems.length" translate="translate">No systems registered</p></div></section></div>');$templateCache.put('js/components/overview/widgets/goals/goalsBar/goalsBar.html','<div class="gauge"><div class="bar-chart-wrapper"></div></div>');$templateCache.put('js/components/overview/widgets/goals/goalsGauge/goalsGauge.html','<div class="gauge"><div class="chart-wrapper"></div><div class="chart-metrics"><span ng-if="gaugeMax === 0">{{gaugeNumber}}</span><span ng-if="gaugeMax &gt; 0">{{gaugeNumber + \'/\' + gaugeMax}}</span></div></div>');$templateCache.put('js/components/overview/widgets/maintenancePlanLite/maintenancePlanLiteTable/maintenancePlanLiteTable.html','<table class="table table-separated"><thead class="lite"><tr><th width="5%" class="count"><span>{{plans.length}}</span></th><th width="30%" translate="translate">Scheduled Plans</th><th translate="translate" class="start">Start</th><th translate="translate" class="duration">Duration</th><th width="11%" translate="translate">Actions</th></tr></thead><tbody><tr ng-repeat="plan in (plans | limitTo:3 | orderBy:\'start\') track by plan.maintenance_id"><td colspan="2" ng-click="openPlan(plan)" tooltip="{{MaintenanceService.getPlanName(plan)}}"><strong>{{plan.start | moment:\'LL\'}}</strong></td><td ng-click="openPlan(plan)" class="start">{{plan.start | moment:\'LT\' | lowercase}}</td><td ng-click="openPlan(plan)" translate="translate" translate-n="duration(plan.start, plan.end)" translate-plural="{{$count}} minutes" class="duration">1 minute</td><td ng-click="openPlan(plan)" class="action-count"><span>{{plan.actionsDone}}/{{plan.actions.length}}</span></td></tr></tbody></table>');}]);},{}],242:[function(require,module,exports){/**
1325
+ */function TopicAdminCtrl($scope,sweetAlert,Topic,$state,Utils){$scope.loader=new Utils.Loader();var loadData=$scope.loader.bind(function(){return Topic.admin().then(function(resp){$scope.topics=resp.data;});});loadData();$scope.$watchCollection('topics',updateTopicOrder);$scope.newTopic=function(){Topic.create({title:'Unnamed topic'}).then(function(res){$state.go('app.edit-topic',{id:res.data.id});});};function updateTopicOrder(){if(angular.isDefined($scope.topics)){for(var i=0;i<$scope.topics.length;i++){$scope.topics[i].priority=i;}}}$scope.move=function(topic,up){if(topic.priority===0&&up||topic.priority===$scope.topics.length-1&&!up){return;}var otherIndex=(up?-1:1)+topic.priority;var t1=$scope.topics[topic.priority]=$scope.topics[otherIndex];var t2=$scope.topics[otherIndex]=topic;updateTopicOrder();Topic.update({id:t1.id,priority:t1.priority});Topic.update({id:t2.id,priority:t2.priority});};$scope.delete=function(topic){createAlert('Are you sure?','Topic will be lost.','Yes',function(){Topic.remove(topic.id).then(function(){$scope.topics.splice($scope.topics.indexOf(topic),1);});});};function hideInternal(topic,value){Topic.update({id:topic.id,hidden:value}).then(function(){topic.hidden=value;});}$scope.hide=function(topic,value){if(!value){return createAlert('Are you sure?','Publishing this topic makes it visible to customers.','Publish',function(){hideInternal(topic,value);});}hideInternal(topic,value);};function createAlert(title,text,confirmButtonText,cb){sweetAlert({title:title,text:text}).then(cb);}}statesModule.controller('TopicAdminCtrl',TopicAdminCtrl);},{"../../":227}],241:[function(require,module,exports){'use strict';module.exports=angular.module('insights.templates',[]).run(['$templateCache',function($templateCache){$templateCache.put('js/components/accountSelect/accountSelect.html','<div ng-show="showAccountSelector()" class="header-block account-select"><div class="tam"><div class="account-number"><label>Account Number</label><div ng-click="reset()" class="fa fa-home pull-right pointer"></div><div ng-click="accountChange(account_number)" class="fa fa-refresh pull-right tam-icon pointer"></div><input ng-model="account_number" ng-keyup="$event.keyCode == 13 &amp;&amp; accountChange(account_number)" class="accNumbInput"/></div><div class="internal"><input type="checkbox" ng-model="isInternal" ng-change="changeInternal()" id="is-internal" class="action"/><label for="is-internal">Internal</label></div></div></div>');$templateCache.put('js/components/actionbar/actionbar.html','<div class="actionbar"><button ng-repeat="action in myActions" ng-click="action.fn()" class="action btn btn-sm btn-open-blue"><i ng-class="action.icon" class="pointer fa"></i>{{action.title | translate}}</button></div>');$templateCache.put('js/components/actions/actions.html','<div class="chart-container"><span ng-show="loading" class="preloader"></span><div class="donut-container"><div class="donut-hole"><div class="content"><span class="num">{{getTotal()}}</span><div translate="translate" translate-n="getTotal()" translate-plural="Actions" class="text">Action</div></div></div><div class="rha-telemetry-donut"></div><div class="row row-tall"></div><div class="col-sm-10 col-sm-offset-1"><p translate="translate">Use this chart to drill down and discover problems within your organization.</p><hr/><p ng-if="isActions()" translate="translate" translate-n="getTotal()" translate-plural="There are &lt;strong&gt;{{$count}}&lt;/strong&gt; actions detected from systems in your organization." class="light"> \nThere is <strong>1 </strong>action detected from systems in your organization.</p><p ng-if="!isActions()" translate="translate" translate-n="getTotal()" translate-plural="There are &lt;strong&gt;{{$count}}&lt;/strong&gt; {{getCategory()|translate}} actions detected from systems in your organization." class="light"> \nThere is <strong>1</strong>{{getCategory() | translate}} action detected from systems in your organization.</p></div></div></div>');$templateCache.put('js/components/ansibleIcon/ansibleIcon.html','<i tooltip="{{tooltip}}" ng-class="svgClass" class="svg"><img ng-src="{{icon}}" alt="{{tooltip}}"/></i>');$templateCache.put('js/components/betaSwitchButton/betaSwitchButton.html','<div class="beta-switch"><a ng-click="switchVersion(true)" ng-show="!isOnBeta()" class="btn btn-default"><!-- The default "take me to the Beta page" option--><span translate="translate">Try Insights Beta</span></a><a ng-show="isOnBeta() &amp;&amp; !isOptedIn()" ng-click="switchStatus(true)"><!-- in this case we are on Beta, but it is not our default--><span translate="translate">Default to</span><span translate="translate" class="btn btn-blue">Beta</span></a><a ng-click="leaveBeta()" ng-show="isOnBeta() &amp;&amp; isOptedIn()"><!-- in this case the user is on Beta and Opted in... if they click they want to leave the Beta experience--><span translate="translate">Leave</span><span translate="translate" class="btn">Beta</span></a></div>');$templateCache.put('js/components/bullhorn/bullhorn.html','<span dropdown="" on-toggle="toggled(open)" class="dropdown dropdown-notification"><a href="" dropdown-toggle="" class="dropdown-toggle"><i class="fa {{icon}}"></i><span ng-if="unackedCount !== 0" class="count">{{unackedCount}}</span></a><ul class="dropdown-menu preview"><li ng-repeat="item in items" ng-class="{ acked: (item.acked) }" ng-click="item.acked ? selectAnnouncement(item) : ack(item)" class="announcement"><div class="row"><div class="col-sm-12"><b>{{item.title}}</b><div class="message-status-toggle"><i ng-if="item.acked" class="fa fa-check-circle-o acked"></i><i ng-if="!item.acked" class="fa fa-circle-o"></i></div></div></div><div class="row"><div class="col-sm-12"><div class="message">{{item.body.length > 140 ? item.body.substring(0, 140) + \'...\' : item.body.substring(0, item.body.length)}}</div></div></div></li><li ng-if="items.length === 0"><strong translate="translate">You have no announcements</strong></li><li ng-if="items.length !== 0" class="view-all"><a ui-sref="app.announcements" translate="translate" class="btn btn-accent">View All</a></li></ul></span>');$templateCache.put('js/components/card/card.html','<div class="content-block content-block-card"><div ng-click="toggleContent()" ng-if="expandable" class="expandable-toggle hidden-xs"><i class="fa fa-caret-right"></i></div><div ng-transclude="ng-transclude"></div></div>');$templateCache.put('js/components/card/cardContent.html','<div ng-hide="card.expandable &amp;&amp; (card.collapsed || card.loading)" ng-transclude="ng-transclude" class="content"><div ng-show="card.loading" ng-if="card.expandable" class="spinner spinner-xs"></div></div>');$templateCache.put('js/components/card/cardFooter.html','<button ng-click="card.toggleContent()" class="btn btn-accent footer footer-with-toggle visible-xs"><div class="footer-toggle"><i class="fa fa-caret-down"></i></div><div ng-transclude="ng-transclude"></div></button>');$templateCache.put('js/components/card/cardHeader.html','<header class="header"><!-- we do this click wrap junk because angular adds clickable styles to--><!-- an ng-click (hand pointer), and we cant remove the ng-click itself conditionally--><div ng-click="card.toggleContent()" ng-if="$parent.expandable" class="click-wrap"><div ng-transclude="ng-transclude"></div></div><div ng-transclude="ng-transclude" ng-if="!$parent.expandable"></div></header>');$templateCache.put('js/components/categoryIcon/categoryIcon.html','<i ng-class="category.toLowerCase() + \'-category-icon\'" class="fa"></i>');$templateCache.put('js/components/collapsibleFilter/collapsibleFilter.html','<div id="dataFilters" ng-class="{open: open, tags: hasTags()}" class="dataFilters"><div id="dataFiltersBody" class="data-filters-body collapse"><div ng-transclude="ng-transclude"></div></div><div id="activeFilter" ng-show="hasTags()" ng-model="tags" class="active-filters"><div class="flexgrid"><strong translate="translate">Active filters:&nbsp;</strong><!-- remove filter on click--><button ng-repeat="(key, value) in tags" ng-click="removeFilter(key)" class="btn btn-accent"><span translate="translate">{{value | translate}}</span><i aria-hidden="true" class="fa fa-times-circle-o"></i></button></div></div><footer id="dataFiltersControlBar" class="data-filters-control-bar"><div data-toggle="collapse" href="#dataFiltersBody" aria-expanded="false" aria-controls="dataFiltersBody" ng-class="{active: open}" class="toggle"><div class="icon-inline"><i class="fa fa-caret-down"></i><strong>Page Filters</strong><i class="fa fa-caret-down"></i></div></div></footer></div>');$templateCache.put('js/components/collapsibleFilter/collapsibleFilterContent.html','<div class="collpase in"><div class="flexgrid equalheights"><div ng-transclude="ng-transclude"></div></div></div>');$templateCache.put('js/components/demoAccountSwitcher/demoAccountSwitcher.html','<div class="demo-account-switcher"><a ng-show="showDemoSwitcher() &amp;&amp; !demoAccountEnabled" ng-click="toggleDemoAccount()" translate="translate">Enable Demo Account</a><a ng-show="showDemoSwitcher() &amp;&amp; demoAccountEnabled" ng-click="toggleDemoAccount()" translate="translate">Disable Demo Account</a></div>');$templateCache.put('js/components/digest/digestGraph.html','<div class="graph-container"><div ng-if="dropDown" class="graph graph-filters"><div class="row"><div class="col-sm-3 col-sm-offset-9"><div class="dropdown full-width show"><button data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><div translate="translate">{{dropDown}}</div><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="trace in traces" ng-click="$event.stopPropagation()"><label class="checkbox-inline"><input type="checkbox" name="availability" ng-model="trace.enabled" ng-click="toggleTrace(trace)"/><div translate="translate">{{trace.name}}</div></label></li></ul></div></div></div></div><div class="digest-graph"></div></div>');$templateCache.put('js/components/expandAllButton/expandAllButton.html','<a ng-click="onClick()"><strong translate="translate" ng-hide="expand">Collapse All</strong><strong translate="translate" ng-show="expand">Expand All</strong><i ng-class="{\'fa-compress\': !expand, \'fa-expand\': expand}" class="fa inline-left"></i></a>');$templateCache.put('js/components/feedback/feedbackButton.html','<a ng-click="openFeedbackPage()" class="btn"><i aria-hidden="true" class="fa fa-comments"></i><strong translate="translate" class="small">Provide feedback</strong></a>');$templateCache.put('js/components/feedback/feedbackModal.html','<div class="page"><div class="section"><div class="row push-top"><div class="col-sm-12"><!-- This needs form validation--><form name="form"><div class="form-group"><label translate="translate" class="control-label">Page Reported</label><p class="form-control-static">{{ feedbackInfo.fromPage }}</p></div><div class="form-group"><label translate="translate" class="control-label">Email</label><p translate="translate">{{ feedbackInfo.user.email }}&nbsp;<small translate="translate">(to change your Red Hat email address&nbsp;<a translate="translate" href="https://www.redhat.com/wapps/ugc/protected/emailChange.html">click here</a>)</small></p><input ng-if="emailOverride" type="email" ng-model="feedbackInfo.user.email" class="form-control"/></div><div class="form-group"><label translate="translate" class="control-label">Comment</label><textarea type="text" rows="5" ng-model="comment" class="form-control"></textarea></div><div class="pull-right"><small ng-show="isError" translate="translate" class="text-danger">An error occurred. Please try again later.&nbsp;</small><div class="btn-group"><button name="cancel" ng-click="close()" translate="translate" class="btn btn-accent">Cancel</button><button name="submit" ng-click="submitForm()" ng-disabled="!form.$valid || !isCommentPopulated()" translate="translate" class="btn btn-accent">Submit</button></div></div></form></div></div></div></div>');$templateCache.put('js/components/gaugeMarker/gaugeMarker.html','<div style="transform: rotate({{rotate}}deg)" class="pivot"><div class="arm"><div style="transform: rotate(-{{rotate}}deg)" tooltip="{{tooltip}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="marker {{diffClass}}"><div ng-if="difference != 0"><i aria-hidden="true" class="fa fa-caret-up"></i><div class="num">{{difference}}</div><i aria-hidden="true" class="fa fa-caret-down"></i></div></div></div></div>');$templateCache.put('js/components/gettingStartedTabs/gettingStartedTabs.html','<nav class="system-selector"><div class="row"><div class="col-lg-5"><h4 translate="translate">Select your registration method</h4></div><div class="col-lg-7 nomari"><div class="filters"><button ui-sref="info.getting-started.direct" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Direct</button><button ui-sref="info.getting-started.sat5" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Satellite 5</button><button ui-sref="info.getting-started.sat6" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Satellite 6</button><button ui-sref="info.getting-started.cloudforms" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">CloudForms</button><button ui-sref="info.getting-started.rhv" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">RHV</button><button ui-sref="info.getting-started.osp" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Openstack</button><button ui-sref="info.getting-started.containers" ui-sref-active="active" ui-sref-opts="{location: \'replace\'}" type="button" translate="translate">Containers</button></div></div></div></nav>');$templateCache.put('js/components/groupSelect/groupSelect.html','<div class="hidden-in-product group-select"><label><i aria-hidden="true" class="fa fa-globe"></i><span translate="translate">Global filters</span></label><div id="global-filter-dropdown" ng-click="toggleDropdown()" class="dropdown"><button type="button" ng-click="resetFilter();" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" ng-disabled="disabled" class="btn dropdown-toggle"><span ng-show="!disabled &amp;&amp; !isGroupSelected() &amp;&amp; !groups.length" translate="translate" class="text">Group select</span><span ng-show="disabled || (!isGroupSelected() &amp;&amp; groups.length)" translate="translate" class="text">All Systems</span><b ng-show="isGroupSelected() &amp;&amp; !disabled" class="text active">{{group.display_name}}</b><span class="caret"></span></button><ul role="menu" class="dropdown-menu"><li><search-box on-search="searchGroups(model)" ng-click="$event.stopPropagation();" ng-keyup="keypress($event)" placeholder="{{\'Find A Group\' | translate}}"></search-box></li><li ng-show="showAllSystems()"><a href="javascript:void(0)" ng-click="triggerChange(null)" translate="translate" class="link">- Show all systems -</a></li><li ng-repeat="g in groups | filter:hideSelectedGroup | orderBy:&quot;display_name&quot; track by g.id" class="system-group"><a href="javascript:void(0)" ng-click="triggerChange(g);" class="icon-inline-right"><trimmed-text length="20" text="{{g.display_name}}"></trimmed-text>&nbsp;({{g.systems.length}})<i ng-click="deleteGroup(g); $event.stopPropagation();" tooltip="{{\'Delete group\' | translate}}" class="fa fa-trash-o group-control"></i></a></li></ul></div><a ng-click="createGroup()" tooltip="{{&quot;Create new system group&quot; | translate}}" class="add-group"><i aria-hidden="true" class="fa fa-plus-circle pad-left"></i></a></div>');$templateCache.put('js/components/insightsLogo/insightsLogo.html','<h1 class="logo-insights"><span>Red Hat</span><div class="block"><span translate="translate">Insights</span></div></h1>');$templateCache.put('js/components/insightsTagline/insightsTagline.html','<p class="intro text-center text-white hidden"> </p>');$templateCache.put('js/components/linkGroup/linkGroup.html','<div ng-if="group.length === 1" class="member-group"><strong></strong><type-icon type-id="group[0].system_type_id" include-text="true"></type-icon>&nbsp;&nbsp;<i ng-class="{{getLinkStatus(group[0])}}" title="{{getLinkReportCount(group[0])}}" class="fa link-status">&nbsp;&nbsp;</i><a ng-click="goToSystem(group[0])">{{getLinkName(group[0])}}</a></div><div ng-if="group.length &gt; 1" class="member-group"><div ng-click="toggleCollapsed()" class="member-group-head"><i ng-if="!collapsed" class="group-twisty fa fa-caret-down">&nbsp;&nbsp;</i><i ng-if="collapsed" class="group-twisty fa fa-caret-right">&nbsp;&nbsp;</i><type-icon type-id="typeid" include-text="false"></type-icon><span ng-if="hasReports()">&nbsp;&nbsp;<i tooltip="A system in this group has actions!" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="fa fa-exclamation-triangle i-warning"></i></span>{{linkGroupText}}</div><div ng-if="!collapsed" class="member-group-content"><div class="row"><div ng-repeat="link in group" class="link-text"><div class="col-sm-4"><i ng-class="{{getLinkStatus(link)}}" title="{{getLinkReportCount(link)}}" class="fa link-status"></i><a ng-click="goToSystem(link)" title="{{getLinkName(link)}}">&nbsp; {{getLinkName(link)}}</a></div></div></div></div></div>');$templateCache.put('js/components/listType/listType.html','<div class="list-switch"><a ng-click="setListType(listTypes.card)" ng-class="{active: getListType() === listTypes.card}" class="link"><i class="fa fa-list"></i></a><a ng-click="setListType(listTypes.table)" ng-class="{active: getListType() === listTypes.table}" class="link"><i class="fa fa-table"></i></a></div>');$templateCache.put('js/components/mitigationTrend/mitigationTrend.html','<div class="mitigation-chart"></div>');$templateCache.put('js/components/notifications/notifications.html','<div class="notifications"><alert ng-repeat="alert in alerts" type="{{alert.level}}" close="dismiss($index, alert.type)"><span ng-bind-html="alert.msg | trust_html"></span></alert></div>');$templateCache.put('js/components/pageHeader/pageHeader.html','<div class="page-header"><div ng-transclude="ng-transclude"></div><h1 class="page-title"><i class="fa {{icon}}"></i><span translate="translate" class="text">{{titleTranslated}}</span></h1></div>');$templateCache.put('js/components/platformFilter/platformFilter.html','<section ng-class="{active: getSelectedProduct() !== \'all\'}" ng-show="platforms.length &gt; 1" class="platform-select platform-{{getSelectedProduct()}}"><div class="row"><div class="col-sm-12"><div class="pull-right"><a translate="translate" ng-click="viewAll()" ng-show="getSelectedProduct() !== \'all\'" class="btn btn-rounded"><i aria-hidden="true" class="fa fa-refresh"></i>View all platforms</a></div></div></div><div class="row row-short"><div ng-if="getSelectedProduct() !== \'all\'" class="platform"><div class="col-sm-6"><img ng-src="{{getImage()}}"/></div></div><div ng-if="getSelectedProduct() === \'all\'" class="platform-filters"><div ng-repeat="filter in platforms" class="col-sm-6 col-md-3"><div ng-class="{active: filter.active}" ng-click="selectFilter(filter)" class="btn btn-quick-filter platform-{{filter.product.code}}"><div class="platform quick-filter-btn-content">{{filter.displayName}}</div><!--.summary(ng-show=\'summaryType === "categories" && !loadingSummary\') --><div ng-show="!loadingSummary" class="summary"> <span ng-repeat="item in getSummaryItems(filter.product.code)"><span>{{item}}</span><div ng-if="!$last" class="sep"></div></span></div><!--.summary(ng-show=\'summaryType === "systems" && !loadingSummary\')//a(ng-repeat=\'subFilter in filter.subFilters\',\n //ng-click=\'selectSubFilter(subFilter); $event.stopPropagation()\') ({{subFilter.count}}) {{subFilter.displayName}}\n //.sep(ng-if=\'!$last\') |--></div></div></div></div></section>');$templateCache.put('js/components/recommendedKbase/recommendedKbase.html','<div ng-show="solution &amp;&amp; !loading" class="matched-solution"><span ng-if="showLabel" class="link-label"><i class="fa fa-circular fa-lightbulb-o"></i><strong translate="translate"> Related Knowledgebase articles:</strong></span><a target="_blank" href="{{solution.viewUri}}"> {{solution.title}}</a></div><div ng-show="loading" class="spinner spinner-sm spinner-inline"></div>');$templateCache.put('js/components/riskOfChange/riskOfChange.html','<div id="riskOfChange" class="risk-of-change"><img src="/assets/insights/i_risk-of-change.svg" alt="Risk of change icon" aria-hidden="aria-hidden" class="icon icon-med"/><strong ng-hide="hideLabel">Risk of change:&nbsp;</strong><b ng-if="changeRisk === 1" translate="translate" class="alert-text alert-text-green">Very Low</b><b ng-if="changeRisk === 2" translate="translate" class="alert-text alert-text-blue">Low</b><b ng-if="changeRisk === 3" translate="translate" class="alert-text alert-text-orange">Moderate</b><b ng-if="changeRisk === 4" translate="translate" class="alert-text alert-text-red">High</b></div>');$templateCache.put('js/components/ruleStateIcon/ruleStateIcon.html','<i ng-class="state + \'-rule-state-icon\'" class="fa"></i>');$templateCache.put('js/components/severityIcon/allSeverityIcons.html','<div class="icon-group icon-group-severity"><severity-icon type="impact" severity="rule.rec_impact"></severity-icon><severity-icon type="likelihood" severity="rule.rec_likelihood"></severity-icon><severity-icon type="severity" severity="rule.severity"></severity-icon></div>');$templateCache.put('js/components/severityIcon/severityIcon.html','<div ng-init="init()" class="severity"><i tooltip="{{tooltip}}" class="severity-icon {{getClass(type)}} {{sevClass}}"></i><span ng-if="label" translate="translate" class="title {{getClass(type)}}">{{label}}</span></div>');$templateCache.put('js/components/sideNav/sideNav.html','<div class="dashboard-navigation-container"><!--aside.dashboard-navigation(ng-class="(!isHidden) ? \'profile-image-visible\': \'profile-image-hidden\'")--><aside class="dashboard-navigation"><!--.header-block.user-profile(ng-if="utils.isBeta()").profile-image\n img(gravatar-src="user.email" gravatar-size="200" gravatar-d="blank")\n a(href="#") Edit Info\n.profile-info {{user.first_name}} {{user.last_name}}\n .toggleProfile.hidden-xs(ng-class="(!isHidden) ? \'expanded\': \'compressed\'", ng-click="toggleNav()")\n i.fa.fa-compress\n i.fa.fa-expand--><account-select></account-select><menu class="nav"><ul><li><a ui-sref="app.overview" ui-sref-active="current" translate="translate">Overview</a></li><rha-telemetry-actions-side-nav></rha-telemetry-actions-side-nav><li><a ui-sref="app.inventory" ui-sref-active="current" translate="translate">Inventory</a></li><li ng-if="config.isPlannerEnabled"><a ui-sref="app.maintenance" ui-sref-active="current" translate="translate">Planner</a></li><li><a ui-sref="app.rules" ng-class="{current: includes(states.rules, state.current.name)}" translate="translate">Rules</a></li><li><a ui-sref="app.digests" ui-sref-active="current" translate="translate">Executive Report</a></li><li><a ui-sref="app.config" ng-class="{current: includes(states.config, state.current.name)}" translate="translate">Configuration</a></li></ul></menu></aside></div>');$templateCache.put('js/components/simpleSelect/simpleSelect.html','<div class="dropdown gray"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" ng-disabled="disabled" class="btn btn-default dropdown-toggle"><strong>{{selected.label}}</strong><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div>');$templateCache.put('js/components/statusIcon/statusIcon.html','<span><i ng-show="status" tooltip="{{\'This issue has been resolved\' | translate}}" class="fa fa-check"></i><i ng-hide="status" tooltip="{{\'This issue has NOT yet been resolved. This field will be updated automatically once the system checks in.\' | translate}}" class="fa fa-minus"></i></span>');$templateCache.put('js/components/systemMetadata/systemMetadata.html','<div ng-if="loading" class="row"><div class="col-sm-12"><i class="fa spinner-xs spinner"></i><span>Loading...</span></div></div><div ng-if="!loading" class="row system-metadata"><div ng-repeat="facts in systemFacts" class="col-sm-6"><table class="meta-table table-fixed"><tbody><tr ng-repeat="data in facts"><td translate="translate">{{data.label}}</td><td translate="translate" class="metadata-value">{{data.value}}</td></tr></tbody></table></div></div>');$templateCache.put('js/components/tag/tag.html','<span ng-bind="$getDisplayText()" tooltip="{{data.description}}"></span><a ng-click="$removeTag()" ng-bind="::$$removeTagSymbol" class="remove-button"></a>');$templateCache.put('js/components/timeRange/timeRange.html','<time><span class="from">{{startTime | lowercase}}</span><span ng-if="startDate">&nbsp;({{startDate}})</span><span>&nbsp;-&nbsp;</span><span class="to">{{endTime | lowercase}}</span><span ng-if="endDate">&nbsp;({{endDate}})</span></time>');$templateCache.put('js/components/topbar/topbar.html','<div class="top-bar"><feedback-button class="btn-feedback"></feedback-button><div class="row"><div class="col-sm-7 col-md-8"><!-- .global-filters.disabled.disabled class added if the filters are not applicable to view--><div ng-class="{disabled: disabled}" class="global-filters"><group-select disabled="disabled" ng-if="isGroupsEnabled"></group-select></div></div><div class="col-sm-5 col-md-4 text-right-sm"><menu class="notifications"><bullhorn icon="fa-bullhorn" type="announcements"></bullhorn><alerts icon="fa-bell" type="alerts"></alerts></menu><span class="sep"></span><span dropdown="" on-toggle="toggled(open)" class="dropdown help"><a href="" dropdown-toggle="" class="dropdown-toggle"><strong translate="translate" class="small">Help</strong><i class="inline-left fa fa-question-circle"></i></a><ul class="dropdown-menu"><li><a href="{{gettingStartedLink}}" target="_blank" translate="translate">Getting Started</a></li><li><a href="https://access.redhat.com/documentation/en/red-hat-insights/" target="_blank" translate="translate">Product Documentation</a></li><li><a ui-sref="info.info" translate="translate">More Info</a></li><li><a ui-sref="info.security" translate="translate">Security</a><!-- if this is the Portal hosted Insights... link to the Portal Browser Support Policy page--></li><li><a href="/help/browsers" target="_self" translate="translate" ng-if="isPortal">Browser Support</a></li><li><a href="/r/insights/docs/" translate="translate">Insights API Documentation</a></li><li><demo-account-switcher></demo-account-switcher></li></ul></span></div></div></div>');$templateCache.put('js/components/typeIcon/typeIcon.html','<span><span tooltip="{{systemTypeDisplayName}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="title"><i ng-class="systemTypeIcon" class="fa spinner-xs system-type-icon"></i></span><strong ng-if="includeText">&nbsp;&nbsp;{{systemTypeDisplayNameShort}}</strong></span>');$templateCache.put('js/components/userInfo/userInfo.html','<div class="user-info"><h2 class="title-widget"><i class="fa fa-user"></i><span translate="translate">Profile</span></h2><menu class="messaging-menu"><div class="heading heading-w-profile-image"><div class="profile-image"><img gravatar-src="user.email" gravatar-size="100" gravatar-d="blank"/></div><div class="info"><div class="name"><strong>{{user.first_name}} {{user.last_name}}</strong></div><div class="last-login"><strong>Last login:</strong><date>07/22/15</date></div></div></div><nav class="user-info-nav"><li><a ui-sref="app.announcements"><i class="fa fa-bullhorn"></i><span translate="translate">Announcements</span><span class="count">{{ alerts.unseen.length }}</span></a></li><li ng-if="false"><a><i class="fa fa-bell"></i><span translate="translate">Alerts</span><span class="count unread">50</span></a></li><li ng-if="false"><a><i class="fa fa-bullseye"></i><span translate="translate">Goals</span><span class="count">120</span></a></li><li ng-if="false"><a><i class="fa fa-envelope"></i><span translate="translate">Messages</span><span class="count unread">100</span></a></li><li ng-if="false"><a><i class="fa fa-comments-o"></i><span translate="translate">Mentions</span><span class="count">10</span></a></li><li ng-if="false"><a><i class="fa fa-certificate"></i><span translate="translate">Marketing</span><span class="count">120</span></a></li></nav></menu></div>');$templateCache.put('js/components/yesNo/yesNo.html','<span><i ng-class="{\'fa-times fail\': no, \'fa-check success\': yes}" class="fa"> </i><strong> {{text}}</strong></span>');$templateCache.put('js/states/actions/actions.html','<div class="actions-page"><page-header title="Actions" icon="fa-file-text"></page-header><new-actions-graph></new-actions-graph><div ng-if="loading" class="content-wrap"><div class="row ng-animate-enabled"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="content-wrap"><section class="metrics"><div class="rha-notifications"></div><div class="row"><div class="col-md-6 chart-col clearfix"><div class="chart-container text-center"><div class="donut-container"><div class="donut-hole"><div class="content"><div class="num">{{stats.rules.total}}</div><div translate="translate" class="text">Issues</div></div></div><div stats="stats" class="rha-telemetry-donut"></div></div></div><div class="row"><div class="col-lg-10 col-lg-offset-1"><table class="legend"><tbody></tbody><tr><td ng-repeat="category in categoryTopics.slice(0,(categoryTopics.length &gt; 3 ? 2 : categoryTopics.length))"><a ng-class="category.id" ui-sref="app.topic({id: category.id, product: getSelectedProduct()})"><i ng-class="category.id + \'-color\'" aria-hidden="true" class="fa fa-square inline-right"></i><span translate="translate" class="desc">{{category.id | titlecase}}</span><span class="count">&nbsp;({{category.count}})</span></a></td></tr><tr ng-if="categoryTopics.length &gt; 3"><td ng-repeat="category in categoryTopics.slice(2,categoryTopics.length)"><a ng-class="category.id" ui-sref="app.topic({id: category.id, product: getSelectedProduct()})"><i ng-class="category.id + \'-color\'" aria-hidden="true" class="fa fa-square inline-right"></i><span translate="translate" class="desc">{{category.id | titlecase}}</span><span class="count">&nbsp;({{category.count}})</span></a></td></tr></table></div></div></div><div class="col-md-6"><card id="widgetIncidentSummary" ng-if="isBeta" class="widget widgetIncidentSummary"><card-header class="gray"><h4 translate="translate">Incident summary</h4></card-header><card-content><incident-summary incident-count="incidentCount" incident-system-count="incidentSystemCount" rule-hits="stats.rules.total" ng-show="incidentCount !== undefined" class="incident-summary"></incident-summary><div ng-show="incidentCount === undefined" class="spinner"></div></card-content></card><card><card-header class="gray"><h4 translate="translate">Risk summary</h4></card-header><card-content><severity-summary stats="stats"></severity-summary></card-content></card></div></div></section><section class="gray full-width"><span ng-show="isContentManager" class="pull-right">[<a ui-sref="app.admin-topic">edit</a>]</span><h2 translate="translate" class="section-title section-title-red">Featured Topics</h2><div class="flexgrid equalheights other-topics"><div ng-if="featuredTopics.length" class="row"><other-topic ng-repeat="topic in featuredTopics | orderBy:\'topic.order\' track by topic.id" topic="topic"></other-topic></div><div ng-if="!show.extraTopics &amp;&amp; extraTopics.length" class="row"><div class="text-center extra-topics"><button ng-click="show.extraTopics = true" translate="translate" class="btn btn-sm btn-default">More topics</button></div></div><div ng-if="!featuredTopics.length" class="row"><div class="col-xs-12 text-center"><strong>No topics currently available.&nbsp;<a ui-sref="info.getting-started.direct" translate="translate">Register more systems.</a></strong></div></div></div></section><section ng-if="show.extraTopics" class="full-width"><div class="flexgrid equalheights other-topics"><div class="row"><other-topic ng-repeat="topic in extraTopics | orderBy:\'topic.order\' track by topic.id" topic="topic"></other-topic></div></div></section></div></div>');$templateCache.put('js/states/analytics/analytics.html','<div class="page"><div class="section"><div class="row margin-top"><div class="col-sm-12"><h1 class="page-title">Analytics</h1></div></div><div class="row margin-top"><div class="col-sm-12"><div id="chart"></div></div></div></div></div>');$templateCache.put('js/states/announcements/announcements.html','<div class="page-header"><h1 class="page-title pull-left"><i class="fa fa-bullhorn">&nbsp;</i><span translate="translate">Announcements</span></h1></div><div class="content-wrap"><div ng-if="canCreate" class="row"><div class="col-sm-12"><label translate="translate" class="full-width">Show hidden</label><div class="switch"><input id="cmn-toggle-2" type="checkbox" ng-model="params.showHidden" ng-change="reload()" class="cmn-toggle cmn-toggle-square"/><label for="cmn-toggle-2"></label></div></div></div><div class="row"><announcements-scroll announcementId="{{$scope.announcementId}}"></announcements-scroll></div><div class="row row-short"><div class="col-xs-12"><a ui-sref="app.new-announcement" ng-if="canCreate" class="pull-right btn btn-app">Create Announcement</a></div></div></div>');$templateCache.put('js/states/announcements/edit-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div class="col-xs-12"><h1 class="page-title">Edit Announcement</h1></div></div><div ng-if="announcementError" class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{announcementError}}</span></span></div></div><div class="row"><div ng-if="loadingAnnouncement" class="col-xs-12 col-m-8"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12 col-m-8"><form ng-submit="save()" name="form" class="form-horizontal"><fieldset><div class="row"><div class="col-xs-12"><label class="control-label">Title</label><input ng-model="announcement.title" type="text" placeholder="Announcement Title" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Slug</label><input ng-model="announcement.slug" type="text" placeholder="Slug" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Body</label><textarea ng-model="announcement.body" type="text" placeholder="Body" class="form-control"></textarea></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Start Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.start" type="text" placeholder="Start Date" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">End Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.end" type="text" placeholder="End Date" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="hidden" value="true" ng-model="announcement.hidden"/>&nbsp;</label><label for="hidden" class="control-label">Hidden</label></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="important" value="false" ng-model="announcement.important"/>&nbsp;</label><label for="hidden" class="control-label">Important</label></div></div><div class="row"><div class="col-xs-12"><a ui-sref="app.announcements">Back to Announcements</a><button name="submit" ng-disabled="form.$error.required" class="btn btn-app pull-right">Save Announcement</button></div></div></fieldset></form></div></div></div>');$templateCache.put('js/states/announcements/new-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div class="col-xs-12"><h1 class="page-title">New Announcement</h1></div></div><div ng-if="announcementError" class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{announcementError}}</span></span></div></div><div class="row"><div class="col-xs-12 col-m-8"><form ng-submit="create()" name="form" class="form-horizontal"><fieldset><div class="row"><div class="col-xs-12"><label class="control-label">Title</label><input ng-model="announcement.title" type="text" placeholder="Announcement Title" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Slug</label><input ng-model="announcement.slug" type="text" placeholder="Slug" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Body</label><textarea ng-model="announcement.body" type="text" placeholder="Body" class="form-control"></textarea></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">Start Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.start" type="text" placeholder="Start Date" required="required" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="control-label">End Date&nbsp;<small>ex: 2016-01-01T12:00:00.000Z</small></label><input ng-model="announcement.end" type="text" placeholder="End Date" class="form-control"/></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="hidden" value="true" ng-model="announcement.hidden"/>&nbsp;</label><label for="hidden" class="control-label">Hidden</label></div></div><div class="row row-short"><div class="col-xs-12"><label class="checkbox-inline"><input type="checkbox" name="important" value="false" ng-model="announcement.important"/>&nbsp;</label><label for="hidden" class="control-label">Important</label></div></div><div class="row"><div class="col-xs-12"><a ui-sref="app.announcements">Back to Announcements</a><button name="submit" ng-disabled="form.$error.required" class="btn btn-app pull-right">Create Announcement</button></div></div></fieldset></form></div></div></div>');$templateCache.put('js/states/announcements/view-announcement.html','<div class="page-standard page-announcements section-announcements"><div class="row"><div ng-if="loadingAnnouncement" class="col-xs-12"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12"><strong class="pull-right">{{announcement.created_at | date}}</strong><h1 class="page-title">{{announcement.title}}</h1></div></div><div class="row push-top border-top"><div ng-if="loadingAnnouncement" class="col-xs-12"><div class="spinner spinner-lg"></div></div><div ng-if="!loadingAnnouncement" class="col-xs-12"><div ng-bind-html="announcement.body_html | trust_html" target-blank=""></div></div></div></div>');$templateCache.put('js/states/base/app.html','<!--#fullscreen.fullscreen--><!-- a(ng-click="toggleFullScreen()", translate) Fullscreen--><div id="telemetry" class="page-wrap container"><beta-switch-button></beta-switch-button><side-nav></side-nav><div data-esc-key="" class="main-content insights-main-content"><topbar></topbar><div ui-view="" class="wrapper"></div><actionbar></actionbar></div></div>');$templateCache.put('js/states/base/base.html','<div ui-view="" class="ng-cloak"></div>');$templateCache.put('js/states/base/info.html','<div ui-view="" class="ng-cloak ng-animate-enabled fade-in"></div>');$templateCache.put('js/states/digests/digests.html','<div class="digests-page"><page-header title="Executive Report" icon="fa-bar-chart" ng-class="{\'inactive\': !expandBar, \'active\': expandBar}"><div ng-if="downloading" class="spinner spinner-sm pull-right"></div><button ng-click="downloadPdf()" ng-if="!downloading" translate="translate" class="btn btn-sm btn-accent pull-right">Download PDF</button></page-header><div ng-show="loading" class="content-wrap margin-top"><div class="text-center"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading &amp;&amp; digestError" class="content-wrap"><div class="row"><div class="col-xs-12 col-lg-8 alert alert-danger"><span class="col-xs-9"><span class="icon-inline"><i class="glyphicon glyphicon-exclamation-sign"></i><span translate="translate">{{digestError}}</span></span></span></div></div></div><div ng-show="!loading &amp;&amp; systemsTilTen &gt; 0" class="content-wrap margin-top"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1 translate="translate">Executive Reporting requires 10 or more systems to be registered with Insights.</h1><h2 translate="translate">Please register<span translate="translate" translate-n="systemsTilTen" translate-plural="{{$count}} more systems">{{systemsTilTen}} more system</span>&nbsp;to enable reporting for your account.</h2></div></div></div><div ng-show="!loading &amp;&amp; systemsTilTen &lt; 1" class="content-wrap"><section><div class="row"><div class="col-md-4"><h2 translate="translate" class="section-title">Overall score</h2><div class="gauge gauge-score"><div class="crop"><div class="grad"></div></div><gauge-marker current="latest_score" difference="score_difference"></gauge-marker><div class="score"><h3>{{latest_score}}</h3><span translate="translate" ng-if="latest_score &lt; 400">Score needs attention</span><span translate="translate" ng-if="latest_score &gt;= 400 &amp;&amp; latest_score &lt; 550">Score is poor</span><span translate="translate" ng-if="latest_score &gt;= 550 &amp;&amp; latest_score &lt; 700">Score is good</span><span translate="translate" ng-if="latest_score &gt;= 700">Score is excellent</span></div><footer class="footer"><span class="num floor">250</span><span class="num ceiling">850</span></footer></div></div><div class="col-md-8"><h2 translate="translate" class="section-title">Weekly action count by category</h2><div class="row padding-top"><div ng-repeat="cat in digest_hits_per_cat" class="col-xs-6 col-md-3"><div class="gauge gauge-count-and-change"><div class="count-and-change"><div class="count large bold">{{cat.current}}</div><div class="change"><i ng-if="cat.direction &gt; 0" class="fa fa-caret-up increase"></i><i ng-if="cat.direction &lt; 0" class="fa fa-caret-down decrease"></i><i ng-if="cat.direction === 0" class="fa fa-minus no-change"></i></div></div><div class="title"><i aria-hidden="true" ng-class="cat.icon" class="fa"></i><strong class="uppercase">&nbsp;{{cat.label}}</strong></div></div></div><div class="col-sm-12"><hr/><span ng-show="!loading" translate="translate" class="large-text"><i ng-if="resolvedIssues &gt; 0" class="fa fa-check-circle green"></i><i ng-if="resolvedIssues === 0" class="fa fa-exclamation-circle red"></i>&nbsp;You\'ve resolved&nbsp;<strong ng-class="{&quot;green&quot;: resolvedIssues &gt; 0, &quot;red&quot;: resolvedIssues === 0}" translate="translate" translate-n="resolvedIssues" translate-plural="{{$count}} issues">{{resolvedIssues}} issue</strong>&nbsp;in the past {{timePeriod()}} days.</span></div></div></div></div></section><section class="gray full-width"><ul role="tablist" class="nav nav-tabs-simple underline"><li role="presentation" class="active"><a href="#metrics" aria-controls="metrics" role="tab" data-toggle="tab" translate="translate">Action trends</a></li><li role="presentation"><a href="#systemsRegistered" aria-controls="systemsRegistered" role="tab" data-toggle="tab" translate="translate">Active Systems</a></li><li role="presentation"><a href="#scoreHistory" aria-controls="messages" role="tab" data-toggle="tab" translate="translate">Score history</a></li><li role="presentation"><a href="#allRuleHits" aria-controls="allRules" role="tab" data-toggle="tab" translate="translate">All Rule hits</a></li></ul><!-- Tab panes--><div class="tab-content"><div id="metrics" role="tabpanel" class="metrics tab-pane fade in active"><digest-graph drop-down="Category" digest-key="metrics" digest="digest_metrics" height="400" ng-if="!loading"></digest-graph></div><div id="systemsRegistered" role="tabpanel" class="tab-pane fade"><digest-graph digest-key="registered" digest="digest_registered" height="400" ng-if="!loading"></digest-graph></div><div id="scoreHistory" role="tabpanel" class="tab-pane fade"><digest-graph digest-key="score" digest="digest_score" height="400" ng-if="!loading"></digest-graph></div><div id="allRuleHits" role="tabpanel" ng-if="!loading" class="tab-pane fade"><table style="background-color: #fff"><thead><tr><th translate="translate">Rule</th><th translate="translate">Impacted Systems</th><th translate="translate">Total Risk</th></tr></thead><tbody><tr ng-repeat="rule in allRuleHits"><td><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})">{{ rule.description }}</a></td><td>{{rule.report_count}}</td><td><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td></tr></tbody></table></div></div></section><section><div class="row"><div class="col-md-6"><h2 translate="translate" class="section-title">Ten Most Impacted Systems</h2><!--with hostname, registered date, and score--><table class="table-break"><thead><tr><th translate="translate" class="hostname">Hostname</th><th translate="translate">Hits</th></tr></thead><tbody><tr ng-repeat="system in topTenWorstSystems"><td class="hostname"><a ng-click="showSystem(system)">{{ system | getSystemDisplayName }}</a></td><td>{{ system.report_count }}</td></tr></tbody></table></div><div class="col-md-6"><h2 class="section-title">Ten Most Frequently Hit Rules</h2><!-- grouped by criticality, sub grouped by count--><table><thead><tr><th translate="translate">Rule</th><th translate="translate">Impacted Systems</th><th translate="translate">Total Risk</th></tr></thead><tbody><tr ng-repeat="rule in topTenRules"><td><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})">{{ rule.description }}</a></td><td>{{rule.impacted_systems}}</td><td><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td></tr></tbody></table></div></div></section></div></div>');$templateCache.put('js/states/evaluation/evaluation.html','<div class="page-wrap container eval"><div> </div><div class="main-content insights-main-content full-width"><div class="content-wrap"><div class="row text-center"><i ng-if="loading" class="fa spinner-lg spinner"></i></div><div ng-if="!loading &amp;&amp; !error"><div ng-if="status.current" class="status-current"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">You are currently on a {{status.current.systems}} system evaluation of Red Hat Insights</h1><hr class="eval-hr"/><h2 translate="translate" class="eval-subhead">Your evaluation will expire on <strong>{{getExpiration()}}.</strong></h2></div></div><div class="row text-center"><div class="col-lg-3 col-lg-offset-3"><a href="https://access.redhat.com/products/red-hat-insights#getstarted"> <button translate="translate" class="btn btn-md btn-accent">Getting started guide</button></a></div><div class="col-lg-3"><button ui-sref="app.overview" translate="translate" class="btn btn-md btn-accent">Go to the application</button></div></div></div><div ng-if="status.expired" class="status-expired"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">Your evaluation has expired </h1><h2 translate="translate" class="eval-subhead">Thank you for trying Red Hat Insights</h2><hr class="eval-hr"/><h3 translate="translate" class="eval-content">Please contact sales to purchase Insights</h3></div></div><div class="flexgrid equalheights sales-cards"><div class="row"><div class="col-sm-12 col-md-4 col-md-offset-2"><card><card-header class="gray"><h4 translate="translate">North America</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:19197543700">+1 (888) REDHAT-1 or +1 (919) 754 3700</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:19197543701">+1 (919) 754 3701</a></span></li></ul></card-content></card></div><div class="col-sm-12 col-md-4"><card><card-header class="gray"><h4 translate="translate">Asia Pacific</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:6564904200">+65 6490 4200</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:6564904201">+65 6490 4201</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:1800733428">1800 733 428 (Australia)</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:0800733428">0800 733 428 (New Zealand)</a></span></li></ul></card-content></card></div></div></div><div class="flexgrid equalheights"><div class="row"><div class="col-sm-12 col-md-4 col-md-offset-2"><card><card-header class="gray"><h4 translate="translate">Europe, Middle East, and Africa</h4></card-header><card-content><ul class="sales-info"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:0080073342835">+00800 7334 2835</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:441252548117">+44 1252 548 117</a></span></li></ul></card-content></card></div><div class="col-sm-12 col-md-4"><card><card-header class="gray"><h4 translate="translate">Latin America</h4></card-header><card-content><ul class="sales-info list-plain"><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:541143297300">+54 (11) 4329-7300</a></span></li><li class="icon-inline"><i class="fa fa-fax"></i><span><a href="fax:541143425292">+54 (11) 4342-5292</a></span></li><li class="icon-inline"><i class="fa fa-phone"></i><span><a href="tel:551135296000">+55 (11) 3529-6000 (Brazil)</a></span></li></ul></card-content></card></div><div class="col-md-12 text-center"><span><a href="https://engage.redhat.com/content/contact-japan-sales" translate="translate">Customers in Japan, please use this form to contact sales in Japan.</a></span></div></div></div></div><div ng-if="getNonLegacyEval() &amp;&amp; !successfulActivation" class="status-available"><div class="row text-center"><div class="col-sm-12 col-md-10 col-md-offset-1"><h1 translate="translate" class="eval-header"><span>Your {{getNonLegacyEval().systems}} system {{getNonLegacyEval().duration}} day evaluation is ready.</span></h1><hr class="eval-hr"/></div></div><div class="row text-center"><div class="col-sm-12"><h2 translate="translate" class="eval-subhead">READ AND ACCEPT THESE TERMS TO GET STARTED.</h2></div></div><div class="row"><div class="col-md-8 col-md-offset-2"><p translate="translate">Red Hat is providing each Red Hat Subscription Evaluation for evaluation purposes subject to the terms of the <a href="http://www.redhat.com/licenses/" target="_blank">Red Hat Enterprise Agreement</a>. If you use the Red Hat Subscription for any purpose other than <b>evaluation</b>, you agree to pay Red Hat the Subscription Fee(s) for each Unit pursuant to the Enterprise Agreement, which is in addition to any and all other remedies available to Red Hat under applicable law.</p><div id="terms" translate="translate">Examples of situations where you would incur additional fees and be in violation of the Agreement include, but are not limited to:<ul class="list-plain"><li>Using the service provided under the evaluation program for a production installation,</li><li>Offering support services to third parties, or</li><li>Complementing or supplementing third party support services with services received through the Red Hat Subscription evaluation program.</li></ul></div><p translate="translate">By proceeding, I acknowledge that I have read and agree to the terms and conditions of the <a href="http://www.redhat.com/licenses/" target="_blank">Red Hat Enterprise Agreement</a> which governs my use.</p></div></div><div class="row text-center"><div class="col-sm-12"><button ng-click="activateNonLegacy()" translate="translate" class="btn btn-md btn-accent">Agree and Get Started</button></div></div><div class="row text-center"><div class="col-sm-12"><p><a href="https://access.redhat.com/insights/splash/" translate="translate">Decline</a><br/><small translate="translate">If you decline, you will not receive an evaluation at this time and will be redirected to additional information on Red Hat Insights</small></p></div></div><div class="row text-center"><div ng-if="getLegacyEval() &amp;&amp; !successfulActivation" style="margin-top:60px" class="col-sm-12"><a ng-click="activateLegacy()" translate="translate">Looking for the legacy 10 system evaluation? Click here to activate.</a></div></div></div><div ng-if="status.purchased" class="status-purchased"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><span aria-hidden="true" class="green i fa fa-check fa-4x"> </span><h1 translate="translate" class="eval-header">Thank you!</h1><hr class="eval-hr"/><h2 translate="translate" class="eval-subhead">Thank you for purchasing Red Hat Insights</h2></div></div><div class="row text-center"><div class="col-sm-12"><button ui-sref="app.overview" translate="translate" class="btn btn-md btn-accent">Continue to Insights</button></div></div></div></div><div ng-if="error" class="status-error"><div class="row text-center"><div class="col-sm-12 col-md-8 col-md-offset-2"><h1 translate="translate" class="eval-header">Oops!</h1><h2 translate="translate" class="eval-subhead">There was an error</h2><hr class="eval-hr"/><h3 translate="translate" class="eval-content">{{error}}</h3></div></div></div></div></div></div>');$templateCache.put('js/states/info/info.html','<div class="info-page"><div class="container info-page-intro text-center band band-hero"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div><div class="col-sm-8 col-sm-offset-2"><insights-tagline></insights-tagline></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Proactive systems management</h2><p translate="translate">Red Hat Insights is a hosted service designed to help you proactively identify and resolve technical issues in Red Hat Enterprise Linux and Red Hat Cloud Infrastructure environments. Decreasing time spent discovering, researching, and resolving critical issues allows you to focus on driving high value, strategic initiatives.</p></section></div><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Misc_Lifestyle_RGB_Button.png" alt="Management"/></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10"><section class="section"><h2 translate="translate" class="section-title">Insights powered by Red Hat</h2><p translate="translate"><strong>The Insights engine</strong>is powered by the unparalleled expertise that comes from over 700 Red Hat Certified Engineers, over 30,000 documented technical solutions, and over 1,000,000 resolved issues. Based on Red Hat\u2019s continuously expanding knowledge base, which includes expertise in third-party hardware and software integration, deterministic rules are constantly being created.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Software_Data_CMYK_Button.png" alt="Data Collection"/></div><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Lightweight data collection</h2><p translate="translate">For analysis by the Insights engine, a minimal subset of information commonly provided in a standard support case is collected by the Insights client. This data is collected via secure protocols at defined intervals then analyzed and discarded at the next upload, or no longer than two weeks later.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-10 vcenter"><section class="section"><h2 translate="translate" class="section-title">Clear, tailored, and actionable intelligence</h2><p translate="translate">The Insights engine delivers results for review through the Insights UI in Red Hat Satellite and in the Red Hat Customer Portal. Through the intuitive Insights UI, configuration issues discovered during analysis are clearly displayed and prioritized by severity. Tailored remediation steps are presented to help you optimize workloads and confidently resolve critical issues and prevent future issues.</p></section></div><div class="col-md-2 info-image vcenter"><img src="static/images/Icon_RH_Document_Blueprint_RGB_Button.png" alt="Actionable Intelligences"/></div></div></div></div><div id="availability" class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Availability</h2><p translate="translate">Red Hat Insights is available for current Red Hat customers on Red Hat Enterprise Linux, delivered through either the Customer Portal or Red Hat Satellite. Your current subscription includes Red Hat Insights for up to 10 systems. To enroll additional systems, contact<a href="http://www.redhat.com/en/about/contact/sales">sales</a>.</p><div class="row"><div class="col-md-6"><table class="table table-cp table-striped table-bordered"><thead><tr><th translate="translate">Red Hat Insights supports</th></tr></thead><tbody><tr><td translate="translate">Red Hat Enterprise Linux 6</td></tr><tr><td translate="translate">Red Hat Enterprise Linux 7</td></tr></tbody></table></div><div class="col-md-6"><table class="table table-cp table-striped table-bordered"><thead><tr><th translate="translate">Delivered via</th></tr></thead><tbody><tr><td translate="translate">Red Hat Customer Portal</td></tr><tr><td translate="translate">Red Hat Satellite 5</td></tr><tr><td translate="translate">Red Hat Satellite 6</td></tr></tbody></table></div></div></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Security comes standard</h2><p translate="translate">Like all products and services from Red Hat, Red Hat Insights is developed with a focus on security and rigorous deployment controls.</p><p translate="translate"><a ui-sref="info.security">Learn more</a> about how Red Hat Insights keeps your data secure while enabling you to proactively manage systems.</p></section></div></div></div></div><div class="band band-white band-narrow"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h2 translate="translate" class="section-title">Additional resources</h2><div class="row"><div class="col-xs-12 col-sm-7 col-md-8 vcenter"><a href="static/misc/datasheet.pdf" target="_blank" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Datasheet</a><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Getting started with Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></div></div></section></div></div></div></div></div>');$templateCache.put('js/states/inventory/inventory.html','<section class="inventory"><page-header title="Inventory" icon="fa-database"></page-header><inventory-filters></inventory-filters><div class="rha-notifications"></div><div class="content-wrap"><div class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box on-search="filter.setSearchTerm(model); filter.doFilter();" throttle="1000" placeholder="{{\'Find a system\' | translate}}"></search-box></div></div></div><inventory-actions></inventory-actions><div ng-show="getListType() === listTypes.card" class="card-table-header"><div class="row"><div class="col-sm-4"><input tooltip="{{\'Select All\' | translate}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, getSelectableSystems())" class="action-checkbox"/><label translate="translate" ng-click="sort(\'system_type_id\')">&nbsp; Type</label></div><div class="col-sm-4"><strong translate="translate" ng-click="sort(\'toString\')">Name</strong></div><div class="col-sm-4 text-right"><strong translate="translate" ng-click="sort(\'report_count\')">Action Count</strong></div></div></div><div ng-show="getListType() === listTypes.card &amp;&amp; !loading" class="row row-short"><div class="col-sm-12"><system-card ng-repeat="system in systems track by system.system_id" system="system" checkboxes="checkboxes" checkbox-tooltip="canSelectSystem(system) ? defaultTooltip : getDisabledCheckboxTooltip(system)" class="ng-animate-enabled"></system-card></div></div><div class="row row-short"><div class="col-md-12"><table ng-show="getListType() === listTypes.table" class="table ng-table"><thead><tr><th><input tooltip="Select All" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, getSelectableSystems())" class="selectme"/></th><th ng-class="predicate | sortClass:\'system_type_id\':reverse" ng-click="sort(\'system_type_id\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">System Type</div></th><th ng-class="predicate | sortClass:\'toString\':reverse" ng-click="sort(\'toString\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">System Name</div></th><th ng-class="predicate | sortClass:\'last_check_in\':!reverse" ng-click="sort(\'last_check_in\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">Last Check In</div></th><th ng-class="predicate | sortClass:\'report_count\':reverse" ng-click="sort(\'report_count\')" class="sortable nowrap"><div translate="translate" class="sort-indicator">Status</div></th></tr></thead><tbody ng-show="!loading"><tr ng-repeat="system in systems track by system.system_id" ng-class="{\'stale\': !system.isCheckingIn}" ng-click="checkboxes.rowClick($event, system.system_id)" ng-mousedown="checkboxes.rowClick($event, system.system_id)" data-id="{{system.system_id}}"><td><input type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" class="selectme"/></td><td class="nowrap"><type-icon type-id="system.system_type_id" include-text="true"></type-icon></td><td class="nowrap long-name"><a ng-click="showActions(system)">{{system.toString}}</a></td><td class="nowrap">{{ system.last_check_in | timeAgo }}</td><td class="nowrap"><a ng-click="showActions(system)" class="action-count"><span translate="translate" translate-n="system.report_count" translate-plural="{{$count}} Actions" class="text">{{system.report_count}} Action</span><span ng-class="{\'success\': !system.report_count, \'fail\': system.report_count}" class="pull-right status-icon"><i ng-class="{\'no-action\': !system.report_count, \'yes-action\': system.report_count}" class="fa"></i></span></a></td></tr></tbody></table></div></div><div ng-show="!loading" class="row row-short"><div class="col-sm-12"><pagination ng-if="totalSystems() &gt; pager.perPage" total-items="totalSystems()" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="doScroll()" class="pull-right pagination-blue"></pagination></div></div></div><div class="animate-wrapper margin-top"><div ng-show="loading" class="row row-short ng-animate-enabled"><div class="col-xs-12"><div class="load text-center"><div class="spinner spinner-lg"></div><span translate="translate">Loading system information\u2026</span></div></div></div></div></section>');$templateCache.put('js/states/invites/invites.html','<div class="page-wrap container eval"><div class="main-content insights-main-content full-width"><div class="row"><div ng-if="loading" class="col-sm-12 text-center"><i class="fa spinner-lg spinner"></i></div></div><div ng-if="!loading &amp;&amp; forbidden" class="status-error"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1>Your account is not authorized to view this page.</h1></div></div></div><div ng-if="!loading &amp;&amp; !forbidden" class="status-available"><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-center"><h1><i aria-hidden="true" class="fa fa-address-book-o"></i>&nbsp;Insights Evaluation</h1></div></div><div class="row"><div class="col-sm-12 col-md-8 col-md-offset-2 text-left"><p>This internal form is used to invite an account to a 30 day evaluation of Red Hat Insights (more info available at &nbsp;<a href="https://mojo.redhat.com/docs/DOC-1104175" target="_blank"><b>Insights Evaluation guide</b></a>)</p></div><div class="col-sm-12 col-md-8 col-md-offset-2 text-left"><card ng-if="!failedInvite &amp;&amp; !successfulInvite" class="invite"><card-content class="gray"><form class="form-horizontal"><div class="form-group"><label class="col-sm-4"><h4>Account Number</h4></label><div class="col-sm-8"><input ng-model="data.account"/></div></div><div class="form-group"><label class="col-sm-4"><h4>Customer Email</h4></label><div class="col-sm-8"><input ng-model="data.email"/></div></div><div class="form-group"><label class="col-sm-4"><h4>System Count</h4></label><div class="col-sm-8 text-left-md"><select ng-options="e as e.systems for e in evals" ng-model="data.newInvite"></select></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="createNewInvite()" class="btn btn-lg btn-accent">Invite</button></div></div></form></card-content></card><card ng-if="successfulInvite" class="success"><card class="success"><card-content class="gray text-center"><div class="row"><div class="col-sm-12"><h4 class="nomar"><span aria-hidden="true" class="icon-check-alt green">&nbsp;</span><span class="light">You have successfully invited&nbsp;</span>{{successfulInvite.email}}&nbsp;<span class="light">with account number&nbsp;</span>{{successfulInvite.account_number}}.</h4></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="reset()" class="btn btn-lg btn-accent">Reload form</button></div></div></card-content></card></card><card ng-if="failedInvite" class="failure"><card class="success"><card-content class="gray text-center"><div class="row"><div class="col-sm-12"><h4 class="nomar"><i aria-hidden="true" class="fa fa-times-circle red">&nbsp;</i>Invitation to {{failedInvite.email}} with account number {{failedInvite.account_number}} failed. &nbsp;<!--If its a duplicate error. We have a specific message.--><span ng-if="error.status == 409">This account has previously activated a sales invited evaluation. &nbsp;\nPlease contact <a href="mailto:insights@redhat.com">insights@redhat.com</a>&nbsp; to grant additional invitations.</span><!--otherwise, just show the raw error from the api.--><span ng-if="error.status != 409">{{error.data}}</span></h4></div></div><div class="row"><div class="col-sm-12 text-center"><button ng-click="reset()" class="btn btn-lg btn-accent">Try again</button></div></div></card-content></card></card></div></div></div></div></div>');$templateCache.put('js/states/maintenance/maintenance.html','<div class="maintenance-page"><page-header title="Planner" icon="fa-wrench" ng-class="{\'inactive\': !expandBar, \'active\': expandBar}"><div class="create-plan-actions text-right pull-right"><a ng-click="MaintenanceService.showMaintenanceModal()" class="create-plan"><span translate="translate">&nbsp;Create a plan</span><i class="fa fa-plus-circle"></i></a><a ng-click="newSuggestion()" ng-if="isInternal" class="create-plan"><small translate="translate" class="red">New suggested plan<i class="fa fa-plus-circle"></i></small></a></div></page-header><section><collapsible-filter><collapsible-filter-content><div class="row"><maintenance-category-select category="category" on-select="setCategory(category)" class="col-xs-6 col-md-4 col-lg-3"></maintenance-category-select></div></collapsible-filter-content></collapsible-filter></section><div class="content-wrap"><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box ng-model="searchTerm" placeholder="{{\'Search plans\' | translate}}"></search-box></div></div></section><section><div ng-show="loading" class="row row-short"><div class="col-xs-12"><div class="load text-center"><div class="spinner spinner-lg"></div><span translate="translate">Loading plans\u2026</span></div></div></div><div class="rha-notifications"></div><div ng-if="!loading"><div ng-if="!plans[category].length" class="row"><div class="text-center"><h4 translate="translate">No plans</h4></div></div><plan-list ng-if="category === \'unscheduled\'" plans="plans.unscheduled | searchMaintenancePlans: searchTerm" page-size="8"></plan-list><plan-list ng-if="category === \'suggested\'" plans="plans.suggested | searchMaintenancePlans: searchTerm" page-size="8"></plan-list><plan-list ng-if="category === \'past\'" plans="plans.past | searchMaintenancePlans: searchTerm" group="true" page-size="6"></plan-list><plan-list ng-if="category === \'future\'" plans="plans.future | searchMaintenancePlans: searchTerm" group="true" page-size="6"></plan-list><span ng-if="category === \'all\'"><h2 translate="translate" ng-if="plans.suggested.length">Suggested Plans</h2><plan-list plans="plans.suggested | searchMaintenancePlans: searchTerm" page-size="2"></plan-list><h2 translate="translate" ng-if="plans.unscheduled.length">Plans</h2><plan-list plans="plans.unscheduled | searchMaintenancePlans: searchTerm" page-size="6"></plan-list><h2 translate="translate" ng-if="plans.scheduled.length">Scheduled Plans</h2><plan-list plans="plans.scheduled | searchMaintenancePlans: searchTerm" group="true" page-size="4"></plan-list></span></div></section></div></div>');$templateCache.put('js/states/overview/overview.html','<div class="overview"><page-header title="Overview" icon="fa-tachometer"></page-header><div class="page flexgrid equalheights"><div class="rha-notifications"></div><div class="row"><div class="col-md-5 col-lg-6 left-col"><div class="grid-block"><section class="widget-block"><span ng-show="isInternal" class="pull-right">[<a ng-click="edit()">edit</a>]</span><h2 class="title"><i class="fa fa-fire"></i><span translate="translate">Latest</span></h2><handcrafted-content></handcrafted-content></section></div><new-systems></new-systems></div><div class="col-md-7 col-lg-6 right-col border-bottom"><div class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-file-text"></i><span translate="translate">Actions&nbsp;</span><span translate="translate" class="light">Summary</span><a translate="translate" ui-sref="app.actions" class="cta-link">View actions</a></h2><severity-summary stats="stats"></severity-summary></section></div><div ng-if="isBeta" class="grid-block"><section class="widget-block widget-block-narrow"><incident-lite></incident-lite></section></div><div ng-if="!paid()" class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-bullseye">&nbsp;</i><span translate="translate">Optimize&nbsp;</span><span translate="translate" class="light">Your Experience</span></h2><goals-lite></goals-lite></section></div><div ng-if="config.isPlannerEnabled" class="grid-block"><maintenance-plan-lite></maintenance-plan-lite></div></div></div></div></div>');$templateCache.put('js/states/rules/list-rules.html','<section><page-header title="Rules" icon="fa-institution"></page-header><rule-filter></rule-filter><div class="content-wrap"><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box placeholder="{{\'Search rules\' | translate}}" on-search="search(model)" throttle="1000"></search-box></div><div class="col-xs-5 col-sm-7 btn-group"><a ui-sref="app.admin-topic" ng-show="user.is_internal" class="btn btn-sm btn-app pull-right">Topics Admin</a></div><div ng-hide="loading" class="push-top-narrow rules-filters"></div></div></section><section><div class="row"><div class="col-sm-12"><section ng-show="loading"><div class="spinner spinner-lg"></div></section><div class="rha-notifications"></div><div ng-hide="loading" class="rules-group"><div class="rules-group-content"><div ng-repeat="rule in pagedRules | filter:filter | orderBy:\'description\'" ng-class="{faded: rule.ack_id, hidden: (hideIgnored &amp;&amp; rule.ack_id)}" class="content-block content-block-outline rule"><div id="{{::rule.rule_id}}" class="header"><!--TODO: activate new item--><!--.new-item NEW!--><div class="pull-right"><span translate="translate" ng-class="{\'rule-inactive\': rule.ack_id, \'rule-active\': !rule.ack_id}" class="label label-default inline-right">INACTIVE</span><incident-icon rule-id="rule.rule_id" class="inline-right">&nbsp;</incident-icon><ansible-icon value="rule.ansible" ng-if="config.isPlannerEnabled"></ansible-icon></div><span ng-click="permalink(rule.rule_id, true, 30)" class="title pointer"><i ng-class="rule.category.toLowerCase()" class="fa category-icon inline-right"></i><span>{{ ::rule.category }} &gt; {{ ::rule.description }}</span><i class="fa fa-link permalink"></i></span></div><div class="content ng-animate-enabled"><div class="row"><div class="col-sm-6"><rule-toggle rule="rule"></rule-toggle></div><div class="col-sm-6 text-right"><a ng-if="rule.article" href="{{rule.article}}" translate="translate" target="_blank">Knowledgebase</a></div></div><div class="row row-short"><div class="col-sm-12"><div ng-bind-html="::rule.summary_html | trust_html" target-blank="" class="gray"></div></div></div></div><div ng-if="canIgnoreRules" class="footer footer-short"><div class="flexgrid equal-heights"><div class="row"><div class="col-sm-8"><div class="icon-group icon-group-severity"><severity-icon severity="rule.rec_impact" type="impact"></severity-icon><severity-icon severity="rule.rec_likelihood" type="likelihood"></severity-icon><severity-icon severity="rule.severity" type="severity"></severity-icon></div><risk-of-change change-risk="rule.resolution_risk"></risk-of-change></div><div class="col-sm-4 text-right"><strong ng-if="rule.impacted_systems !== undefined &amp;&amp; !rule.ack_id"><a ui-sref="app.actions-rule({category: rule.category.toLowerCase(), rule: rule.rule_id})" translate="translate" ng-disabled="rule.impacted_systems === 0">View Impacted Systems ({{rule.impacted_systems}})</a></strong></div></div></div></div></div><div ng-show="rules.length === 0" class="row row-short"><div class="col-xs-12 text-center"><strong translate="translate">There are no rules for the selected filters.&nbsp;</strong></div></div></div></div></div></div><div ng-show="!loading" class="row row-short"><div class="col-sm-12"><pagination ng-if="rules.length &gt; pager.perPage" total-items="rules.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="doPage()" class="pull-right pagination-blue"></pagination></div></div></section></div></section>');$templateCache.put('js/states/security/security.html','<div class="container info-page-intro text-center band band-hero"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div></div></div><div class="band band-white info-page band-last"><div class="container info-page"><div class="row"><div class="col-md-12"><section class="section"><h1 translate="translate">Security</h1></section><section id="introduction" class="section introduction"><h3 translate="translate">Introduction</h3><p translate="translate">Red Hat Insights provides a mechanism for customers to get actionable intelligence regarding suggested improvements to deployed Red Hat software. As part of this optional offering, Red Hat processes configuration data about a customer\u2019s environment using Red Hat hosted and/or provided tools; this document covers the security measures Red Hat puts in place to provide secure transmission, processing, and analysis of this data by those tools.</p><p translate="translate">Red Hat is committed to evaluating, implementing and monitoring the industry security standards for those tools as they continue to evolve.</p></section><section id="on-premise" class="section on-premise"><h3 translate="translate">On Premise Security</h3><p translate="translate">Security of customer systems is paramount and Red Hat Insights has made extensive efforts to ensure that our shipped software meets the highest standards.</p><ul><li translate="translate">Insights software which executes on premise has been through a security review by Red Hat Product Security which is the same team that addresses security concerns in all other products across the Red Hat portfolio.</li><li translate="translate">Communication with Red Hat can be sent through secure proxies for audit and network ACLs.</li><li translate="translate">Enrollment is opt-in, which means we\u2019ll never collect data from systems without your explicit approval and can be scheduled daily or weekly.</li><li translate="translate">All communication with Red Hat occurs over encrypted channels using TLS</li><li translate="translate">All TLS traffic with Red Hat servers is verified with a trusted certificate that is bundled with the application, ensuring that communications can not be intercepted, such as by a man in the middle attack.</li><li translate="translate">The default communication model from client systems to Red Hat servers occurs with mutual TLS or two-way authentication using digital certificates.</li></ul></section><section id="client-side" class="section client-side"><h3 translate="translate">Client Side On Premise Data Control</h3><p translate="translate">Red Hat Insights allows customers to have control of the information that is monitored for analytical purposes; and Red Hat Insights makes it simple for subscribers to view the information which is monitored.</p><ul><li translate="translate">Red Hat Insights collects both targeted and minimal system information rather than entire logs.</li><li translate="translate">Red Hat automatically attempts to remove critical security information such as passwords before uploading when stored in standard locations</li><li translate="translate">Common types of sensitive information can be opted out of through pre-built configuration profiles</li><li translate="translate">Subscribers can blacklist any command, file, or piece of metadata that they prefer not be monitored by Red Hat Insights.</li><li translate="translate">The commands, files, and metadata monitored by Red Hat Insights are listed in a single file that is GPG signed and available at any time for easy inspection.</li><li translate="translate">Personally Identifiable Information is not collected.</li></ul></section><section id="infrastructure" class="section infrastructure"><h3 translate="translate">Infrastructure Security</h3><p translate="translate">Security of customer data in Red Hat is a priority and every effort is made to ensure that information is not unnecessarily persisted and that it is secured using industry standard best practices.</p><ul><li translate="translate">All customer data is stored within a secure physical data center with controlled access.</li><li translate="translate">Our internal 3-tiered infrastructure is compartmentalized into different physical networks and firewalled to ensure services are isolated for maximum security.</li><li translate="translate">All volumes containing customer data at rest are encrypted with LUKS encryption</li><li translate="translate">All parts of the internal infrastructure transmit their logs to a centralized log aggregator for inspection and analysis.</li></ul></section><section id="best-practices" class="section best-practices"><h3 translate="translate">Development Best Practices</h3><ul><li translate="translate">All software is analyzed with static code analyzers and all reported issues are fixed before code is deployed into production.</li><li translate="translate">Code is peer reviewed.</li></ul></section></div></div></div></div><div class="band band-alt band-narrow info-page"><div class="container"><div class="row"><div class="col-md-12"><section class="section"><h3 translate="translate">Additional Resources</h3><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Getting started with Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></section></div></div></div></div>');$templateCache.put('js/states/splash/splash.html','<div class="landing-page-top band band-hero band-first band-narrow"><div class="container"><div class="row"><div class="col-sm-10 col-sm-offset-1"><h1 translate="translate" class="headline">You can\'t fix what you can\'t see</h1><div translate="translate" class="strapline">Take the guesswork out of infrastructure optimization with Red Hat Insights proactive analytics and real-time intelligence.</div></div></div><div class="row"><div class="col-sm-12 text-center"><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app">Getting started guide</a><span translate="translate" class="strapline btn-seperator">or</span><a ui-sref="app.overview" translate="translate" class="btn btn-app">Go to the application</a></div></div></div></div><div class="intro-video band band-whispy"><div class="container"><div class="row"><div class="col-sm-12"><h2 translate="translate" class="section-header text-center">Introduction to Red Hat Insights</h2><div class="videowrapper"><iframe width="752" height="423" src="https://www.youtube.com/embed/MfRnKe-xxLM" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div></div></div></div></div><div id="ansible" class="ansible band band-white"><div class="container"><div class="row"><div class="col-sm-4 col-md-offset-1 hidden-xs text-center"><img src="static/images/g_ansible-venn.png"/></div><div class="col-sm-8 col-md-6"><!--img.logo.logo-ansible(src=\'../static/images/l_ansible.svg\')--><h2 translate="translate" class="section-title">Automate discovery and remediation</h2><p translate="translate">Automate the resolution of Insights findings through Ansible Playbooks.</p><p><strong>Red Hat Insights&nbsp;</strong><span translate="translate">creates significant time savings and helps avoid firefighting by enabling automatic resolution of critical issues before they affect your business. Optimize your environment and boost security with</span><strong>Red Hat Insights.</strong></p></div></div></div></div><div class="pre-footer band band-white"><div class="container text-center"><h2 translate="translate" class="section-header">Start proactively finding and fixing infrastructure risks today</h2><h2 translate="translate">Your current subscription provides a free 30-day evaluation</h2><a href="{{gettingStartedLink}}" translate="translate" class="btn btn-app">TRY IT</a></div></div><div class="core-values band band-gray-light"><div class="container"><div class="row"><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split"><i class="fa fa-sliders"></i></div><h4 translate="translate" class="uppercase bold">Avoid firefighting</h4><p translate="translate">Get in-depth analysis of risks on an individual system, topic, or site-wide level, so you can address them before they affect your business.</p></div></div><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split icon-split-orange"><i class="fa fa-crosshairs"></i></div><h4 translate="translate" class="uppercase bold">Act on advice you can trust</h4><p translate="translate">Resolve issues quickly and take the guesswork out of remediation using tailored resolutions created by domain experts and cross-referenced against thousands of similar environments.</p></div></div><div class="col-sm-4 core-value"><div class="text-center"><div class="icon icon-split icon-split-red"><i class="fa fa-cogs"></i></div><h4 translate="translate" class="uppercase bold">Master complexity</h4><p translate="translate">Ensure integration of high-priority security analysis in an operations-friendly workflow with a view of all actions prioritized by level of risk.</p></div></div></div></div></div><div class="testimonial band band-black"><div class="container"><blockquote><p translate="translate">...With Red Hat Insights, we can resolve critical issues before they occur. We no longer have to look at individual systems because we have one tool that gives us much more comprehensive and actionable information on our infrastructure.</p><p translate="translate">It\'s important to have a company like Red Hat that\'s working toward the same goals we are, that understands our business and what we\'re trying to accomplish, and understands our infrastructure and our businesses. As the market continues to change and new technologies are released, we\'ll continue to change as well, and we expect Red Hat to be an important partner to help us on that journey.</p></blockquote><author class="author"><strong>Jason Cornell,&nbsp;</strong>Manager of Cloud and Infrastructure Automation, Cox Automotive</author></div></div><div class="heartbleed band band-white"><div class="container"><h2 translate="translate" class="section-header text-center">Real-Time Risk Assessment</h2><div class="row"><div class="col-sm-8 col-sm-offset-2"><img src="static/images/g_heartbleed.png"/></div></div></div></div><div class="whitepaper band band-whispy"><div class="container"><h2 translate="translate" class="section-header text-center">Related Resources</h2><div class="flexgrid equalheights related-resources"><div class="row"><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Red Hat Insights Blog</h4><p translate="translate">Want to learn about the newest Red Hat Insights features and discover how to get the most out of the Insights service?</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://access.redhat.com/blogs/insights" translate="translate" class="btn">Read Blog Posts</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Datasheet</h4><p translate="translate">Learn about the benefits Insights can provide and technical requirements.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="static/misc/rh-insights-datasheet-3-2017.pdf" translate="translate" class="btn">Read More</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">2017 Summit Announcement</h4><p translate="translate">Predict and prevent problems before they occur in your IT infrastructure with actionable intelligence powered by Red Hat.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://www.redhat.com/en/about/press-releases/red-hat-delivers-analytics-driven-automation-latest-version-insights-ansible-integration" translate="translate" class="btn">View Press Release</a></div></div></div><div class="col-sm-6 col-lg-3"><div class="card card-white"><h4 translate="translate" class="uppercase bold card-title">Virtual Security Event</h4><p translate="translate">Hear Mayo Clinic explain how they used Red Hat Insights to proactively intercept security risks.</p><div class="full-width-button-wrapper bottom"><a target="_blank" href="https://vts.inxpo.com/Launch/Event.htm?ShowKey=31574" translate="translate" class="btn">View Virtual Event</a></div></div></div></div></div></div></div><div class="video band band-gray-light"><div class="container"><div class="row"><div class="col-sm-12"><h2 translate="translate" class="section-header text-center">See Insights in Action</h2></div></div><div class="row"><div class="col-sm-12 text-center"><div class="file-video"><iframe width="1139" height="641" src="https://www.youtube.com/embed/t1tlntxyJyc" frameborder="0" allowfullscreen="allowfullscreen" class="media-youtube-player rh-analytics-youtube"></iframe></div></div></div></div></div>');$templateCache.put('js/components/actions/actionsBreadcrumbs/actionsBreadcrumbs.html','<div class="actions-breadcrumbs"><ol ng-show="getCrumbs().length" class="breadcrumb actions-crumbs"><li ng-repeat="crumb in getCrumbs()" ng-class="{active: $last}" ng-show="getCrumbs().length &gt; 1"><a ng-hide="$last" ng-click="crumbClick(crumb)">{{crumb.label | translate | titlecase}}</a><span ng-show="$last &amp;&amp; $index &lt; 2">{{crumb.label| translate | titlecase }}</span><span ng-show="$last &amp;&amp; $index &gt;= 2">{{crumb.label| translate}}</span></li></ol></div>');$templateCache.put('js/components/actions/actionsRule/actionsRule.html','<div class="actions-rule"><page-header title="Actions" icon="fa-file-text"></page-header><actions-rule-filters></actions-rule-filters><div ng-hide="loading" class="content-wrap"><actions-breadcrumbs ng-hide="loading" class="actions-breadcrumbs"></actions-breadcrumbs><section class="actions-rule-details gray"><h4 ng-if="isIncident(ruleDetails.rule_id) &amp;&amp; isBeta"><div class="icon-inline"><incident-icon rule-id="ruleDetails.rule_id">&nbsp;</incident-icon><span translate="translate" class="red">This issue is an incident, it has already occurred.</span></div></h4><h2><div ng-if="config.isPlannerEnabled" class="pull-right"><ansible-icon value="ruleDetails.ansible"></ansible-icon></div>{{ruleDetails.description}}</h2><p ng-bind-html="ruleDetails.generic_html | trust_html"></p><all-severity-icons rule="ruleDetails" ng-if="!loading"></all-severity-icons><risk-of-change change-risk="ruleDetails.resolution_risk"></risk-of-change></section><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box on-search="search(model)" placeholder="{{\'Find a system\' | translate}}"></search-box></div></div></section><!-- Show Create Playbook, Add to Plan if at least one system has been selected--><div class="row row-short"><div class="col-xs-4 col-sm-2"><div class="dropdown"><button data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" translate="translate" ng-disabled="!checkboxes.totalChecked || !config.isPlannerEnabled" class="btn btn-default dropdown-toggle">Actions<span class="caret"></span></button><ul class="dropdown-menu"><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(false)" translate="translate">Create a new Plan/Playbook<ansible-icon value="true" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(true)" ng-disabled="!plans.future.length &amp;&amp; !plans.unscheduled.length" translate="translate">Add to existing Plan/Playbook<ansible-icon value="plans.future.length || plans.unscheduled.length" show-tooltip="false" class="inline-left"></ansible-icon></a></li></ul></div></div><div class="col-xs-8 col-sm-8 text-center"><span ng-if="!loadingSystems"><h3 translate="translate" translate-n="{{totalRuleSystems}}" translate-plural="{{$count}} Impacted Systems" ng-if="ruleDetails.type !== &quot;osp&quot;" class="system-count">1 Impacted System</h3><h3 translate="translate" translate-n="{{totalRuleSystems}}" translate-plural="{{$count}} Impacted Deployments" ng-if="ruleDetails.type === &quot;osp&quot;" class="system-count">1 Impacted Deployment</h3><small ng-if="checkboxes.totalChecked" translate="translate" class="light">&nbsp; ({{numberOfSelected()}} Selected<span ng-show="allSelected &amp;&amp; pager.perPage &lt; totalRuleSystems">.<a ng-show="!reallyAllSelected" ng-click="reallySelectAll()">&nbsp;Select All Systems.</a><a ng-show="reallyAllSelected" ng-click="deselectAll()">&nbsp;Deselect All Systems.</a></span><span>)</span></small></span></div><div class="col-xs-4 col-sm-2 hidden-xs text-right"><list-type ng-hide="hideListSwitch"></list-type></div></div><div ng-show="getListType() === listTypes.card" class="card-table-header"><div class="row"><div class="col-sm-4"><input tooltip="Select All" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, ruleSystems);" class="action-checkbox"/><label translate="translate" ng-click="sort(\'system_type_id\')">&nbsp; Type</label></div><div class="col-sm-4"><strong translate="translate" ng-click="sort(\'toString\')">Name &nbsp;</strong></div><div class="col-sm-4 text-right"><strong translate="translate" ng-click="sort(\'report_count\')">Action Count</strong></div></div></div><div ng-show="getListType() === listTypes.card &amp;&amp; !loadingSystems" class="row row-short"><div class="col-sm-12"><system-card ng-repeat="system in ruleSystems" system="system" rule="ruleDetails" checkboxes="checkboxes"></system-card></div></div><div ng-show="getListType() === listTypes.table" class="row row-short"><div class="col-sm-12"><table class="table nomar ng-table table-fixed"><thead><tr><th style="width: 30px"><input tooltip="Select All" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-model="checkboxes.checked" ng-change="selectAll(); checkboxes.checkboxChecked(checkboxes.checked, ruleSystems)" class="action-checkbox"/></th><th style="width: 27%;" ng-class="predicate | sortClass:\'system_type_id\':reverse" ng-click="sort(\'system_type_id\')" class="sortable"><div translate="translate" class="sort-indicator">Type</div></th><th ng-class="predicate | sortClass:\'toString\':reverse" ng-click="sort(\'toString\')" class="sortable"><div translate="translate" class="sort-indicator">Name</div></th><th style="width: 27%;" ng-class="predicate | sortClass:\'last_check_in\':!reverse" ng-click="sort(\'last_check_in\')" class="sortable"><div translate="translate" class="sort-indicator">Reported</div></th></tr></thead><tbody ng-show="!loadingSystems"><tr ng-click="checkboxes.rowClick($event, system.system_id)" ng-mousedown="checkboxes.rowClick($event, system.system_id)" ng-class="{\'stale\': !system.isCheckingIn}" ng-repeat="system in ruleSystems" data-id="{{system.system_id}}"><td style="width: 30px"><input type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" class="selectme"/></td><td style="width: 27%;"><type-icon type-id="system.system_type_id" include-text="true"></type-icon></td><td class="break"><a ng-click="showSystem(system)">{{ system.toString }}</a></td><td style="width: 27%;">{{ ::system.last_check_in | timeAgo}}</td></tr></tbody></table></div></div><div ng-hide="loading || loadingSystems" class="row row-short"><pagination ng-if="totalRuleSystems &gt; pager.perPage" total-items="totalRuleSystems" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="paginate()" class="pull-right pagination-blue"></pagination></div></div><div ng-show="loading || loadingSystems" class="margin-top"><div class="text-center"><div class="spinner spinner-lg"></div></div></div></div>');$templateCache.put('js/components/actions/actionsRuleFilters/actionsRuleFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><check-in-select class="col-xs-6 col-md-4 col-lg-3"></check-in-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/actions/severitySummary/severitySummary.html','<div class="widget severity-summary"><ul><li><div ng-if="ruleCount.info || !loaded" ui-sref="app.topic({id: \'low-risk\', \'filters:totalRisk\': \'INFO\'})" class="pointer"><div class="metrics"><strong>{{\'Low\' | translate}}</strong><span ng-if="(ruleCount.info / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.info / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.info / ruleCount.total | toWidth" class="progress green"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.info &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of low severity</span></div></li><li><div ng-if="ruleCount.warn || !loaded" ui-sref="app.topic({id: \'medium-risk\', \'filters:totalRisk\': \'WARN\'})" class="pointer"><div class="metrics"><strong>{{\'Medium\' | translate}}</strong><span ng-if="(ruleCount.warn / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.warn / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.warn / ruleCount.total | toWidth" class="progress yellow"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.warn &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of medium severity</span></div></li><li><div ng-if="ruleCount.error || !loaded" ui-sref="app.topic({id: \'high-risk\', \'filters:totalRisk\': \'ERROR\'})" class="pointer"><div class="metrics"><strong>{{\'High\' | translate}}</strong><span ng-if="(ruleCount.error / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.error / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.error / ruleCount.total | toWidth" class="progress orange"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.error &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of high severity</span></div></li><li><div ng-if="ruleCount.critical || !loaded" ui-sref="app.topic({id: \'critical-risk\', \'filters:totalRisk\': \'CRITICAL\'})" class="pointer"><div class="metrics"><strong>{{\'Critical\' | translate}}</strong><span ng-if="(ruleCount.critical / ruleCount.total) &lt; 80" class="num">&nbsp;({{100 * ruleCount.critical / ruleCount.total || 0 | number:1}}%)</span></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="ruleCount.critical / ruleCount.total | toWidth" class="progress red"></div><div class="bar"></div></div></div><div ng-if="!ruleCount.critical &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right green"></i><span translate="translate">You have no issues of critical severity</span></div></li></ul></div>');$templateCache.put('js/components/actions/systemSummary/systemSummary.html','<div class="widget key-issues"><div class="row"><div class="col-sm-12"><div ng-if="stats.systems.affected &gt; 0 || !loaded" ui-sref="app.topic({id: \'critical\'})" class="pointer"><div class="metrics"><strong translate="translate">{{stats.systems.affected}} of {{stats.systems.total}} systems have critical issues</strong></div><div class="progress-bar"><div role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="stats.systems.affected / stats.systems.total | toWidth" class="progress red"></div><div class="bar"></div></div></div><div ng-if="stats.systems.affected === 0 &amp;&amp; loaded" class="no-errors"><i aria-hidden="true" class="fa fa-check-circle inline-right"></i><span translate="translate">You have no issues of critical severity</span></div></div></div></div>');$templateCache.put('js/components/announcements/announcementsScroll/announcementsScroll.html','<div class="col-sm-12"><!-- add the \'active\' class only when the caret has been clicked and the notification is expanded--><h3 ng-if="items.length === 0" translate="translate" class="text-center">You have no announcements.</h3><div ng-repeat="a in announcements" ng-class="{\'acked\': a.acked}" class="content-block content-block-outline announcement"><header id="{{::a.id.toString()}}" class="header gray"><div class="row"><div class="col-sm-8 col-md-9 col-lg-10"><div ng-click="permalink(a.id.toString(), true, 30)" class="title pointer"><span>{{a.title}}</span></div></div><div class="col-sm-4 col-md-3 col-lg-2 text-right"><date><strong>{{ (a.start || a.created_at) | date }}&nbsp;&nbsp;</strong></date><span ng-class="{\'read\' : read}" class="message-status-toggle"><i ng-if="a.acked" ng-click="ackAnnouncement(a)" class="fa fa-check-circle-o acked"></i><i ng-if="!a.acked" ng-click="ackAnnouncement(a)" class="fa fa-circle-o"></i></span></div></div></header><div class="content"><div ng-if="canCreate" class="row"><div class="col-sm-9"><div ng-if="canCreate &amp;&amp; a.start || a.end" class="row"><div class="col-sm-12"><strong translate="translate">Start/End:&nbsp;</strong>{{a.start | date}} - {{a.end | date}}</div></div><div ng-if="a.body" class="row row-short"><div class="col-sm-12"><p>{{a.body}}</p></div></div></div><div class="col-sm-3 text-right"><strong><a title="Delete" ng-click="deleteAnnouncement(a)">Delete</a><div class="sep"></div><a title="Edit" ng-click="editAnnouncement(a)">Edit</a></strong></div></div><!-- show dismiss button if announcement has not been acked--><div ng-if="!canCreate &amp;&amp; !a.acked" class="row"><div class="col-sm-8"><p>{{a.body}}</p></div><div class="col-sm-4"><button ng-click="ackAnnouncement(a)" class="btn">Dismiss</button></div></div><div ng-if="!canCreate &amp;&amp; a.acked" class="row"><div class="col-sm-12"><p>{{a.body}}</p></div></div></div><!--footer.footer.gray(ng-if="canCreate")--></div></div>');$templateCache.put('js/components/card/systemCard/systemCard.html','<div ng-class="{\'stale\': !system.isCheckingIn}" class="system-card"><card expandable="expandable" on-toggle="toggleContent(ctx)"><card-header><div class="row"><div class="col-sm-4"><div style="display: inline-block;padding:1px;" tooltip="{{checkboxTooltip}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top"><input ng-if="checkboxes" type="checkbox" ng-model="checkboxes.items[system.system_id]" ng-click="checkboxes.rowClick($event, system.system_id); $event.stopPropagation();" ng-disabled="!selectable" class="selectme"/>&nbsp;&nbsp;</div><type-icon type-id="system.system_type_id" ng-if="!loading" include-text="true"></type-icon><span ng-if="!system.isCheckingIn">&nbsp;(stale system)</span><i ng-if="loading" class="fa spinner-xs spinner"></i></div><div class="col-sm-4"><div class="ellipsis-wrapper"><strong title="{{hostnameTitle}}" ng-click="showActions(); $event.stopPropagation();" tooltip="{{getSystemName(system)}}" tooltip-trigger="mouseenter" tooltip-append-to-body="true" tooltip-placement="top" class="hostname">&nbsp;{{getSystemName(system)}}</strong></div></div><div class="col-sm-4 text-right"><a ng-click="showActions(); $event.stopPropagation();" class="action-count"><span translate="translate" translate-n="system.report_count" translate-plural="{{$count}} Actions" class="text">{{system.report_count}} Action</span><span ng-class="{\'success\': !system.report_count, \'fail\': system.report_count}" class="pull-right status-icon"><i ng-click="showActions(); $event.stopPropagation();" ng-class="{\'no-action\': !system.report_count, \'yes-action\': system.report_count}" class="fa"></i></span></a></div></div></card-header><card-content><div ng-if="!system.isCheckingIn"><strong>Last checkin:&nbsp;</strong><span ng-hide="system.last_check_in" translate="translate">never</span><span ng-show="system.last_check_in">{{system.last_check_in | timeAgo}}</span></div><div ng-if="hasFamilyMembers()" class="separation-header"><h4>Related Systems</h4></div><!-- Family members--><div class="row"><div class="col-sm-12"><div ng-if="hasFamilyMembers()" class="family-members"><div class="row"><link-group ng-repeat="linkGroup in linkGroups | orderBy: &quot;+priority&quot;" group="linkGroup.members" typeid="linkGroup.system_type_id" class="link-group col-md-12"></link-group></div><!-- System metadata--><div class="separation-header metadata-separator"><h4>System Metadata</h4></div></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="metadata"><system-metadata ng-if="!$parent.card.collapsed" system="system"></system-metadata></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="system-card-actions"><div translate="translate" ng-disabled="!selectable" ng-click="unregister()" class="btn btn-outline btn-xs">Unregister</div></div></div></div></card-content><card-footer></card-footer></card></div>');$templateCache.put('js/components/config/groups/groups.html','<div class="groups"><section><div ng-bind="message" ng-show="message.length &gt; 0" role="alert" class="alert alert-danger"></div><group-form></group-form></section><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading group list info \u2026</span></section><section><div class="row"><div class="col-xs-12"><h2 ng-show="!loading" translate="translate" class="page-title">Groups List</h2><div ng-show="isCreating" class="text-center"><div class="spinner spinner-lg"></div><span translate="translate">Creating group \u2026</span></div></div></div><div class="row"><div class="col-xs-12"><div class="group-list"><group ng-repeat="group in groups | orderBy:\'display_name\'" class="group"></group></div></div></div></section></div>');$templateCache.put('js/components/config/hidden/hidden.html','<div class="acks row active"><div class="col-md-8"><h2 translate="translate" class="page-title">Hidden Rules</h2><p translate="translate" translate-n="acks.length" translate-plural="You currently have {{$count}} hidden rules.">You currently have 1 hidden rule.</p><p translate="translate"><strong>Note: </strong>These are account wide. You must be an Org Admin to make these changes.</p></div><div class="col-md-12"><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading hidden rules\u2026</span></section></div><div class="col-md-12"><section ng-hide="loading"><table ng-show="acks.length" class="table table-striped"><thead><tr><th translate="translate">Category</th><th translate="translate">Rule</th><th></th></tr></thead><tbody><tr ng-repeat="ack in acks"><td>{{ack.rule.category}}</td><td>{{ack.rule.description}}</td><td><div ng-click="delete(ack)" class="fa fa-times pointer pull-right"></div></td></tr></tbody></table></section></div></div>');$templateCache.put('js/components/config/dev/dev.html','<div class="dev"><div class="user"><h2>Demo Mode<div><button ng-show="user.demo_mode || user.is_internal" ng-click="demoModeButtonOnClick()" class="btn btn-small">{{getDemoModeButtonText()}}</button></div></h2><h2>API Prefix</h2><table><tbody><tr><td>Presets</td><td><select ng-options="v as k for (k, v) in presets.apiPrefix" ng-model="tmp.apiPrefix" ng-change="updateApiPrefix()"></select></td></tr><tr><td>Choose your own adventure</td><td><input ng-model="tmp.apiPrefix" class="full-width"/></td></tr></tbody></table><h2>API Version</h2><table><tbody><tr><td>Presets</td><td><select ng-options="v for v in presets.apiVersions" ng-model="tmp.apiVersion" ng-change="updateApiVersion()"></select></td></tr></tbody></table><div style="padding-top: 20px;"><button ng-click="save()" class="btn btn-small pull-right">Save API Settings</button></div><h2>Fake user info</h2><table><tbody><tr><td>email</td><td><input ng-model="user.email"/></td></tr><tr><td>name</td><td><input ng-model="user.first_name"/><input ng-model="user.last_name"/></td></tr></tbody></table><h2>Fake Entitlements</h2><table><tbody><tr><td>Presets</td><td><select ng-options="k as k for (k, v) in presets.entitlements" ng-model="tmp.tmpEnt" ng-change="setEntitlements()"></select></td></tr><tr><td> State</td><td><pre>{{getPretty(user.current_entitlements)}}</pre></td></tr></tbody></table></div></div>');$templateCache.put('js/components/config/permissions/permissions.html','<div class="user-permissions"><div class="row"><div class="col-xs-12"><input ng-model="newPermission.sso_username"/><select ng-options="p as p.label for p in permissions" ng-model="tmpPermission"></select><div ng-click="addNewPermission()" class="btn">Add</div></div></div><div class="row group-list"><div ng-repeat="user in users | filter:newPermission.sso_username" class="col-sm-4"><div class="group user-permission"><div class="name header"><a ng-click="newPermission.sso_username = user">{{user}}</a></div><div class="content"><div class="permissions"><div ng-repeat="p in userMap[user]" class="perm">{{p.permission.label}}<div ng-click="removeSingle(p)" class="remove fa fa-times"></div></div></div><div class="remove pull-right"><a ng-click="removeAll(userMap[user])" class="fa fa-times">Remove all!</a></div></div></div></div></div></div>');$templateCache.put('js/components/config/messaging/messaging.html','<div class="acks row active"><div class="col-md-12"><h2 translate="translate" class="page-title">Messaging Preferences</h2><p translate="translate">Manage Red Hat Insights email subscriptions for your personal login. All emails will be sent to the email address associated with your login. To update your address see <a href="https://www.redhat.com/wapps/ugc/protected/personalInfo.html" target="_blank">Personal Info</a>.</p><form ng-submit="save(form)" name="form"><fieldset><div ng-repeat="campaign in campaigns | orderBy:\'id\' track by campaign.id" class="checkbox push-bottom-narrow"><label><input type="checkbox" ng-model="campaign.enrolled"/>{{campaign.label|translate}}<div ng-if="campaign.description" class="small"> {{campaign.description|translate}}</div></label></div><button name="submit" ng-disabled="form.$pristine" translate="translate" class="btn btn-app">Update</button></fieldset></form></div></div>');$templateCache.put('js/components/config/webhooks/webhooks.html','<div class="webhooks"><h2 translate="translate" class="page-title">Webhooks</h2><p translate="translate">Webhooks allow external services to be notified of updates in Red Hat Insights. An HTTP POST request will be issued for a configured URL every time an event occurs in Red Hat Insights.&nbsp; See&nbsp;<a translate="translate" target="_blank" href="https://github.com/RedHatInsights/insights-webhooks/wiki/Documentation">webhook documentation</a>&nbsp; for more details.</p><section><div ng-show="loader.loading" class="spinner"></div><p translate="translate" ng-if="!webhooks.length &amp;&amp; !loader.loading">No webhooks configured</p><table ng-if="webhooks.length" class="table table-striped"><thead><tr><th translate="translate">URL</th><th translate="translate">Event Types</th><th translate="translate">Active</th><th translate="translate">Actions</th></tr></thead><tbody><tr ng-repeat="webhook in webhooks | orderBy:&quot;id&quot; track by webhook.id"><td class="break"><a ui-sref="app.config-webhook-edit({id: webhook.id})">{{webhook.url}}</a></td><td>{{webhook.event_types.length}}</td><td class="text-center"><input type="checkbox" ng-model="webhook.active" ng-change="activeChanged(webhook)"/></td><td class="text-center"><span class="icon-inline"><a ui-sref="app.config-webhook-edit({id: webhook.id})"><i tooltip="{{\'Edit\' | translate}}" class="fa fa-pencil-square-o pointer"></i></a><a ng-click="delete(webhook)"><i tooltip="{{\'Remove\' | translate}}" class="fa fa-remove"></i></a></span></td></tr></tbody></table><div class="pull-right"><div class="btn-group"><button ng-click="ping()" translate="translate" ng-disabled="!isPingable()" class="btn btn-sm btn-secondary">Test event</button><button ui-sref="app.config-webhook-edit({id: &quot;new&quot;})" translate="translate" class="btn btn-sm btn-accent">Add webhook</button></div></div></section></div>');$templateCache.put('js/components/config/settings/settings.html','<div class="acks row active"><div class="col-md-8"><h2 translate="translate" class="page-title">Settings</h2><p translate="translate"><strong>Note: </strong>These are account wide. You must be an Org Admin to make these changes.</p></div><div class="col-md-12"><section ng-show="loading"><div class="spinner spinner-lg"></div><span translate="translate">Loading Settings</span></section></div><div class="col-md-12"><section ng-hide="loading"><table class="table table-striped"><thead><tr><th translate="translate">Setting</th><th translate="translate">Value</th></tr></thead><tbody><tr ng-repeat="setting in settings"><td>{{setting.name}}</td><td> <input type="checkbox" ng-model="setting.value"/></td></tr></tbody></table><button ng-click="save()" translate="translate">Save</button></section></div></div>');$templateCache.put('js/components/filterComponents/actionsSelect/actionsSelect.html','<div class="actions-select"><label translate="translate">System Health</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/ansibleSupportTriState/ansibleSupportTriState.html','<div class="filter-group"><label translate="translate"><strong>Ansible Support</strong></label><div class="radio-group"><div ng-repeat="(k, v) in AnsibleSupportFilters" class="radio-inline"><label translate="translate"><input type="radio" name="ansibleSupportFilterRadio" ng-model="showAnsibleSupport" value="{{k}}" ng-click="filterAnsibleSupport(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/checkInSelect/checkInSelect.html','<div class="checkin-select"><label translate="translate">System Status</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a ng-click="select(option)">{{option.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/categorySelect/categorySelect.html','<div class="checkin-select"><label translate="translate">Category</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/filterButton/filterButton.html','<a ng-class="{active: getShowFilters()}" ng-click="toggleShowFilters()" class="btn btn-outline btn-xs filter-label"><i class="fa fa-filter fa-2x filter-button"></i>Filter</a>');$templateCache.put('js/components/filterComponents/impactSelect/impactSelect.html','<div class="checkin-select"><label translate="translate">Impact</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.title}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.title}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/hideIgnoredToggle/hideIgnoredToggle.html','<div class="col-toggle"><label translate="translate" class="full-width">Hide Ignored</label><div class="switch"><input id="cmn-toggle-2" type="checkbox" ng-model="hideIgnored" ng-change="persistHideIgnored()" class="cmn-toggle cmn-toggle-square"/><label for="cmn-toggle-2"></label></div></div>');$templateCache.put('js/components/filterComponents/incidentsTriState/incidentsTriState.html','<div class="filter-group"><label translate="translate"><strong>Incidents</strong></label><div class="radio-group"><div ng-repeat="(k, v) in incidentFilters" class="radio-inline"><label translate="translate"><input type="radio" name="incidentFilterRadio" ng-model="showIncidents" value="{{k}}" ng-click="filterIncidents(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/likelihoodSelect/likelihoodSelect.html','<div class="checkin-select"><label translate="translate">Likelihood</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.title}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.title}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/riskOfChangeSelect/riskOfChangeSelect.html','<div class="risk-of-change-select"><label translate="translate">Risk of Change</label><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="(key, value) in options"><a ng-click="select(key)">{{value.label}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/productSelect/productSelect.html','<div ng-if="!getRHELOnly()" class="environment-buttons"><label translate="translate">Platform</label><div class="dropdown gray"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle">{{getProductLabel(getSelectedProduct())}}<span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="product in products"><a ng-click="doSelectProduct(product)">{{getProductLabel(product)}}</a></li></ul></div></div>');$templateCache.put('js/components/filterComponents/ruleStatusTriState/ruleStatusTriState.html','<div class="filter-group"><label translate="translate"><strong>Rule Status</strong></label><div class="radio-group"><div ng-repeat="(k, v) in RuleStatusFilters" class="radio-inline"><label translate="translate"><input type="radio" name="ruleStatusFilterRadio" ng-model="showRuleStatus" value="{{k}}" ng-click="filterRuleStatus(k)"/><span>{{v.title | translate}}</span></label></div></div></div>');$templateCache.put('js/components/filterComponents/searchBox/searchBox.html','<div class="table-search"><input type="text" autofocus="autofocus" placeholder="{{placeholder}}" ng-keypress="keyPressed($event)" ng-model="model" ng-change="change()" ng-class="{\'search-box form-control\': isFullLength}"/><i ng-hide="searching()" class="fa fa-search"></i><i ng-show="searching()" ng-click="resetSearch()" class="fa fa-times"></i></div>');$templateCache.put('js/components/filterComponents/totalRiskSelect/totalRiskSelect.html','<div class="filter-group"><label translate="translate"> <strong>Total Risk</strong></label><div class="dropdown full-width"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn dropdown-toggle"><span ng-model="label" class="text active">{{label | translate}}</span><span class="caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options"><a href="#" ng-click="select(option)">{{option.label | translate}}</a></li></ul></div></div>');$templateCache.put('js/components/incident/incidentIcon/incidentIcon.html','<i tooltip="{{tooltip}}" ng-show="isIncident" aria-label="Incident icon" class="fa fa-bullseye"></i>');$templateCache.put('js/components/incident/incidentLite/incidentLite.html','<div ng-if="loading" class="row"><div class="col-sm-12 block-lg"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="incident-lite"><div class="cell icon"><i aria-hidden="true" class="fa fa-bullseye"></i></div><!-- If incidents--><div ng-if="incidentCount &gt; 0" class="cell count"><strong translate="translate">{{incidentCount}} of {{totalHits}}</strong><br/><span translate="translate">Issues are incidents</span></div><div ng-if="incidentCount &gt; 0" translate="translate" class="cell supporting-text">An&nbsp;<strong translate="translate">incident&nbsp;</strong><span translate="translate">is an issue that is currently or has already affected systems.&nbsp;</span><a ui-sref="app.topic({id: \'incidents\'})" class="link"><strong translate="translate">View incidents</strong></a></div><!-- If no incidents--><div ng-if="incidentCount === 0" class="cell count"><strong>0</strong><br/><span translate="translate">Incidents</span></div><div ng-if="incidentCount === 0" class="cell supporting-text">An&nbsp;<strong translate="translate">incident&nbsp;</strong><span translate="translate">is an issue that is currently or has already affected systems. You currently have no incidents.</span></div></div>');$templateCache.put('js/components/incident/incidentSummary/incidentSummary.html','<div ng-if="incidentCount &gt; 0" class="cell counts"><div class="count"><h4 class="num">{{incidentCount}}</h4><span translate="translate">Incidents</span></div><div class="count"><h4 class="num">{{incidentSystemCount}}</h4><span translate="translate">Systems</span></div></div><div ng-if="incidentCount === 0" class="cell counts"><div class="count"><h4 class="num success">0</h4><span translate="translate">incidents</span></div></div><div class="cell supporting-text"><div ng-if="incidentCount &gt; 0" class="icon-inline"><i aria-hidden="true" class="fa fa-bullseye"></i><p>An&nbsp;<strong translate="translate">incident&nbsp;</strong>is an issue that is currently or has already affected systems. {{incidentCount}} of <span translate="translate" translate-n="ruleHits" translate-plural=" {{$count}} issues">{{ruleHits}} issue </span><span translate="translate" translate-n="incidentCount" translate-plural="&amp;nbsp;are INCIDENTS affecting">&nbsp;is an INCIDENT affecting </span><span translate="translate" translate-n="incidentSystemCount" translate-plural="&amp;nbsp;{{$count}} systems.">&nbsp;{{incidentSystemCount}} system. </span><span translate="translate">&nbsp;It is imperative that these incidents be addressed to ensure optimal performance.</span><br/><a translate="translate" ui-sref="app.topic({id: \'incidents\'})" class="link strong">View incidents</a></p></div><div ng-if="incidentCount === 0" class="icon-inline"><i aria-hidden="true" class="fa fa-bullseye"></i><p translate="translate">An&nbsp;<strong>incident&nbsp;</strong>is an issue that is currently or has already affected systems. You have 0 issues that are INCIDENTS.</p></div></div>');$templateCache.put('js/components/inventory/inventoryFilters/inventoryFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><check-in-select class="col-xs-6 col-md-4 col-lg-3"></check-in-select><actions-select class="col-xs-6 col-md-4 col-lg-3"></actions-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/inventory/inventoryActions/inventoryActions.html','<div class="row row-short table-options"><div class="col-xs-4 col-sm-2"><div class="dropdown"><button data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" translate="translate" ng-disabled="!checkboxes.totalChecked" class="btn btn-default dropdown-toggle">Actions<span class="caret"></span></button><ul class="dropdown-menu"><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(false)" ng-disabled="!isFixableSelected()" translate="translate">Create a new Plan/Playbook<ansible-icon value="isFixableSelected()" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li ng-if="config.isPlannerEnabled"><a ng-click="addToPlan(true)" ng-disabled="!isFixableSelected() || (!plans.future.length &amp;&amp; !plans.unscheduled.length)" translate="translate">Add to existing Plan/Playbook<ansible-icon value="isFixableSelected() &amp;&amp; (plans.future.length || plans.unscheduled.length)" show-tooltip="false" class="inline-left"></ansible-icon></a></li><li><a ng-click="groupSystems(systemsToAction())" translate="translate">Group systems</a></li><li ng-if="Group.current().id"><a ng-click="removeFromGroup()"><span translate="translate" translate-n="systemsToAction().length" translate-plural="Remove systems from group">Remove system from group</span><strong>&nbsp;{{Group.current().display_name}}</strong></a></li><li tooltip="{{unregisterButtonTooltip}}"><a ng-disabled="!isUnregistrableSelected()" ng-click="isUnregistrableSelected() &amp;&amp; doUnregisterSelected()" translate="translate" class="pointer-events-auto">Unregister</a></li></ul></div></div><div class="col-xs-8 col-sm-8 text-center"><span ng-hide="reloading"><h3 translate="translate" translate-n="totalSystems()" translate-plural="{{$count}} Systems" class="system-count">1 System</h3><small ng-if="checkboxes.totalChecked" translate="translate" class="light">&nbsp; ({{totalSystemsSelected}} Selected<span ng-show="allSelected &amp;&amp; pager.perPage &lt; totalSystems()">.<a ng-show="!reallyAllSelected" ng-click="reallySelectAll()" translate="translate">&nbsp;Select All Systems.</a><a ng-show="reallyAllSelected" ng-click="deselectAll()" translate="translate">&nbsp;Deselect All Systems.</a></span><span>)</span></small><br/><a ng-click="registerSystem()" ng-if="isPortal" class="icon-inline"><i class="fa fa-plus"></i><strong translate="translate">Register More</strong></a></span></div><div class="col-sm-2 hidden-xs text-right-sm"><list-type></list-type></div></div>');$templateCache.put('js/components/inventory/inventoryActions/unregisterConflict.html','<div class="wrapper"><div class="unregister-conflict"><p translate="translate">The following systems types cannot be unregistered on their own:</p><ul><li ng-repeat="role in roles">{{role.name}} ({{role.count}}x)</li></ul><p translate="translate">Unregister their entire deployment to remove them.</p><p><strong translate="translate" translate-n="validCount" translate-plural="Do you want to proceed with the remaining {{$count}} systems?"> \nDo you want to proceed with the remaining 1 system?</strong></p></div></div>');$templateCache.put('js/components/inventory/system/system.html','');$templateCache.put('js/components/maintenance/expandableSystemList/expandableSystemList.html','<div><ul><li ng-repeat="system in systems | orderBy: \'toString\' | limitTo:limit track by system.system_id"><a href="#" ng-click="InventoryService.showSystemModal(system, true)">{{system.toString}}</a></li></ul><div ng-if="limit &amp;&amp; systems.length &gt; limit"><a href="#" ng-click="toggle()" translate="translate">+ {{systems.length - limit}} more</a></div><div ng-if="!limit"><a href="#" ng-click="toggle()" translate="translate">Hide</a></div></div>');$templateCache.put('js/components/maintenance/maintenanceCategorySelect/maintenanceCategorySelect.html','<div class="category-select"><div class="dropdown"><button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-default dropdown-toggle"><span>{{selected.label}} ({{plans[selected.id].length}})</span><span class="caret dropdown-caret"></span></button><ul class="dropdown-menu"><li ng-repeat="option in options" ng-if="plans[option.id].length || option.id !== &quot;suggested&quot;"><a ng-click="select(option)" ng-disabled="!plans[option.id].length &amp;&amp; option.id !== &quot;unscheduled&quot;">{{option.label}} ({{plans[option.id].length}})</a></li></ul></div></div>');$templateCache.put('js/components/maintenance/maintenanceModal/maintenanceModal.html','<div ng-class="{updating: loader.loading}" class="maintenance-plan-modal main-content updatable"><div ng-if="loader.loading" class="spinner spinner-lg"></div><div class="modal-actions"><div ng-click="close()" class="fa fa-close pull-right"></div></div><div class="modal-header"><div class="text-center"><i class="rh-icon-book"></i><h2 translate="translate">Plan / Playbook Builder</h2></div></div><div class="content-block"><div class="form-group"><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="newPlan" ng-value="true"/><strong translate="translate">Create new plan</strong></label></div><div ng-click="!newPlan &amp;&amp; (newPlan = true)" class="col-sm-8"><input type="text" name="name" maxlength="255" ng-disabled="!newPlan" ng-model="newPlanAlias" placeholder="{{\'Plan Name\' | translate}}" autofocus="autofocus" class="form-control"/></div></div><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="newPlan" ng-value="false" ng-disabled="!availablePlans.length"/><strong>Add to existing plan</strong></label></div><div ng-click="newPlan &amp;&amp; availablePlans.length &amp;&amp; (newPlan = false)" class="col-sm-8"><ui-select ng-model="selected.plan" append-to-body="false" ng-disabled="newPlan"><ui-select-match placeholder="{{\'Plan Name\' | translate}}" class="form-control ui-select-match"><span ng-if="!selected.plan.name.length" translate="translate">Unnamed plan ({{selected.plan.maintenance_id}})</span><span ng-if="selected.plan.name.length">{{selected.plan.name}} ({{selected.plan.maintenance_id}})</span><span ng-if="selected.plan.start">&nbsp;- {{selected.plan.start | moment:\'LL\'}}</span></ui-select-match><ui-select-choices repeat="plan in availablePlans | searchMaintenancePlans: $select.search | orderBy:[\'start\', getPlanName, \'maintenance_id\']" group-by="planGroupFn" group-filter="planOrderFn" class="ui-select-choices"><span ng-if="!plan.name.length" translate="translate">Unnamed plan ({{plan.maintenance_id}})</span><span ng-if="plan.name.length">{{plan.name}} ({{plan.maintenance_id}})</span><span ng-if="plan.start">&nbsp; - {{plan.start | moment:\'LL\'}}</span></ui-select-choices></ui-select></div></div></div><div ng-if="systemSelection !==&quot;preselected&quot;" class="form-group"><hr/><div ng-show="config.isGroupsEnabled" class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;group&quot;" ng-disabled="!Group.groups.length" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">System Group</strong></label></div><div ng-click="systemSelection !== &quot;group&quot; &amp;&amp; Group.groups.length &amp;&amp; systemSelectionChanged(&quot;group&quot;)" class="col-sm-8"><ui-select ng-model="selected.group" append-to-body="false" ng-disabled="systemSelection !== &quot;group&quot;"><ui-select-match placeholder="{{\'Select group\' | translate}}" class="form-control ui-select-match"><span>{{selected.group.display_name}}</span></ui-select-match><ui-select-choices repeat="group in Group.groups | filter:{display_name: $select.search} | orderBy:[\'display_name\', \'id\']" class="ui-select-choices"><span>{{group.display_name}}</span></ui-select-choices></ui-select></div></div><div class="row row-short"><div class="radio col-sm-3"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;system&quot;" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">Specific System</strong></label></div><div class="col-sm-1"><div ng-show="loadingSystems" class="spinner"></div></div><div ng-click="systemSelection !== &quot;system&quot; &amp;&amp; systemSelectionChanged(&quot;system&quot;)" class="col-sm-8"><ui-select ng-model="selected.system" append-to-body="false" ng-disabled="systemSelection !== &quot;system&quot;"><ui-select-match placeholder="{{\'Select system\' | translate}}" class="form-control ui-select-match"><span>{{selected.system.toString}} ({{selected.system.report_count}})</span></ui-select-match><ui-select-choices repeat="system in availableSystems | orderBy:[\'toString\', \'system_id\']" refresh="searchSystems($select.search)" refresh-delay="200" class="ui-select-choices"><span>{{system.toString}} ({{system.report_count}})</span></ui-select-choices></ui-select></div></div><div class="row row-short"><div class="radio col-sm-4"><label class="control-label"><input type="radio" ng-model="systemSelection" ng-value="&quot;all&quot;" ng-change="systemSelectionChanged(systemSelection)"/><strong translate="translate">All Systems</strong></label></div></div></div><hr/><div class="row available-actions"><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.rule &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><div class="title"><strong>{{rule.description}}</strong></div><all-severity-icons rule="rule" ng-if="!loader.loading"></all-severity-icons></div><div class="nopad table-responsive"><maintenance-table-systems params="tableParams" edit="tableEdit" item="rule" on-save="postSave()" on-cancel="close()"></maintenance-table-systems></div></div><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.system &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><span class="icon-inline"><type-icon type-id="selected.system.system_type_id" include-text="false"></type-icon><a ng-click="showSystemModal(system)"><strong>{{selected.system.toString}} &nbsp;&nbsp;</strong></a></span><div class="pull-right item"><strong translate="translate">Last check in:</strong><span ng-class="selected.system | checkInStyle">&nbsp;&nbsp;{{selected.system.last_check_in | timeAgo}}</span></div></div><div class="nopad table-responsive"><maintenance-table-actions params="tableParams" edit="tableEdit" item="true" on-save="postSave()" on-cancel="close()"></maintenance-table-actions></div></div><div ng-if="plan &amp;&amp; tableParams &amp;&amp; mode === MODES.multi &amp;&amp; !noActions" class="content-block maintenance-plan rule"><div class="header bordered"><strong translate="translate" translate-n="systems.length" translate-plural="Actions available for {{$count}} selected systems" ng-if="systemSelection === &quot;preselected&quot;">Actions available for selected system</strong><strong ng-if="systemSelection === &quot;group&quot;"><span translate="translate">Actions available for group: {{selected.group.display_name}}&nbsp;</span><span translate="translate" translate-n="selected.group.systems.length" translate-plural="({{$count}} systems)">(1 system)</span></strong><strong translate="translate" ng-if="systemSelection === &quot;all&quot;">Actions available for your inventory</strong></div><div class="nopad table-responsive"><maintenance-table-multi params="tableParams" edit="tableEdit" item="true" on-save="postSave()" on-cancel="close()"></maintenance-table-multi></div></div><div ng-if="tableParams &amp;&amp; noActions" class="content-block"><div class="text-center"><strong><i class="fa fa-check-circle success inline-right"></i><span translate="translate">No actions available on selected systems.</span></strong></div></div></div></div></div>');$templateCache.put('js/components/maintenance/maintenancePlan/maintenancePlan.html','<div ng-class="{\'col-md-12 active\' : edit.isActive(plan.maintenance_id), \'col-md-6\': !edit.isActive(plan.maintenance_id)}" id="maintenance-plan-{{plan.maintenance_id}}" class="plan-outer-wrap"><div ng-class="{\'active\' : edit.isActive(plan.maintenance_id), pointer: !edit.isActive(plan.maintenance_id)}" class="plan-wrap"><div ng-class="{\'overdue\': plan.overdue &amp;&amp; !plan.silenced, updating: loader.loading}" class="content-block maintenance-plan updatable"><div ng-if="loader.loading" class="spinner spinner-lg"></div><div class="header plan-header"><div ng-class="{\'active\': edit.isActive(plan.maintenance_id), \'inactive\' : !edit.isActive(plan.maintenance_id)}" class="actions-panel"><i ng-if="edit.isActive(plan.maintenance_id) &amp;&amp; !isReadOnly()" ng-click="delete()" tooltip="{{\'Delete this plan\' | translate}}" class="fa fa-trash-o action"></i><i ng-click="minimize()" ng-show="edit.isActive(plan.maintenance_id)" class="fa fa-compress action"></i><i ng-click="silence()" ng-if="plan.overdue &amp;&amp; !plan.silenced" tooltip="{{\'Snooze this plan\' | translate}}" class="fa fa-moon-o action"></i></div><div ng-if="!editBasic.active &amp;&amp; (!plan.suggestion || plan.suggestion === \'accepted\')" class="details"><div class="header-title editable"><span ng-if="plan.overdue"><i class="fa fa-calendar-times-o red"></i><i ng-if="!editBasic.active &amp;&amp; plan.hidden &amp;&amp; isInternal" class="fa fa-eye-slash"></i></span><h2 ng-class="{\'red\': plan.overdue}" ng-dblclick="editBasic.toggle()" class="title"><span ng-if="plan.name.length" ng-dblclick="editBasic.toggle()">{{plan.name}} ({{plan.maintenance_id}})</span><span ng-if="!plan.name || !plan.name.length" translate="translate">Unnamed plan ({{plan.maintenance_id}})</span><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></h2><p ng-if="error" class="red">{{error}}</p></div><div ng-if="plan.start" class="date-time editable"><div ng-if="plan.start" class="start"><b>{{plan.start | moment:\'dddd, LL\'}}</b></div><div class="group"><i class="fa fa-clock-o"></i><time-range start="plan.start" end="plan.end" ng-dblclick="editBasic.toggle()" class="time-local"></time-range><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></div><div class="group"><i class="fa fa-clock-o"></i><span translate="translate">UTC&nbsp;</span><time-range start="plan.start" end="plan.end" timezone="\'UTC\'" ng-dblclick="editBasic.toggle()" class="time-utc"></time-range></div></div></div><div ng-if="editBasic.active" class="details-edit pull-left"><form novalidate="novalidate" name="editBasicForm" ng-submit="editBasic.save()" class="editable-form"><div ng-if="plan.suggestion === \'proposed\' &amp;&amp; isInternal" class="form-group"><label class="full-width red">Suggested plan</label><textarea placeholder="Describe why Red Hat is suggesting this plan" ng-model="editBasic.description" class="form-control"></textarea><hr/></div><div ng-class="{\'has-error\': editBasicForm.name.$invalid}" class="form-group nick"><label translate="translate">Plan Name:&nbsp;</label><input type="text" name="name" placeholder="{{\'Unnamed plan\' | translate}}" maxlength="255" ng-model="editBasic.name" class="form-control"/></div><div ng-class="{\'has-error\': editBasicForm.date.$invalid}" class="form-group title"><label translate="translate">Date:&nbsp;<i tooltip="{{editDateTooltip}}" class="fa fa-question-circle"></i></label><input type="text" name="date" id="planEditDate-{{plan.maintenance_id}}" date-time="date-time" ng-model="editBasic.start" view="date" min-view="date" max-view="date" format="LL" auto-close="true" highlights="calendarDates" date-change="dateChanged" class="form-control"/></div><div class="date-time"><div ng-class="{\'has-error\': editBasicForm.time.$invalid}" class="form-group form-group-inline"><label class="full-width">Start time:&nbsp;</label><input type="time" name="time" ng-model="editBasic.time" ng-change="editBasic.sync()" step="900" ng-required="editBasic.start" class="time"/></div><div ng-class="{\'has-error\': editBasicForm.number.$invalid}" class="form-group form-group-inline"><label class="full-width">Duration:&nbsp;</label><input type="number" name="duration" min="0" step="15" ng-model="editBasic.duration" ng-required="editBasic.start" class="duration"/></div></div><div ng-if="editBasic.start" class="form-group form-group-inline"><label class="full-width">UTC time:&nbsp;</label>{{editBasic.start | moment:\'LLL\':\'UTC\'}}</div><div class="form-group"><div role="group" class="pull-right btn-group"><button type="button" ng-click="editBasic.toggle()" translate="translate" class="btn btn-sm btn-blank action">Cancel</button><button type="submit" ng-disabled="editBasicForm.$invalid" translate="translate" class="btn btn-sm btn-accent action">Save</button></div></div></form></div><div ng-if="!editBasic.active &amp;&amp; (plan.suggestion === \'proposed\' || plan.suggestion === \'rejected\')" class="details-suggested editable"><p class="description"><span ng-if="plan.hidden &amp;&amp; isInternal"><i class="fa fa-eye-slash"></i><i ng-if="plan.suggestion === \'rejected\'" tooltip="This suggestion was rejected by the customer" class="fa fa-meh-o red"></i></span><strong ng-show="plan.description" ng-dblclick="editBasic.toggle()">{{plan.description}}</strong><strong ng-hide="plan.description" ng-dblclick="editBasic.toggle()" translate="translate">&nbsp; This is a plan suggested by Red Hat</strong><i ng-click="editBasic.toggle()" ng-if="!isReadOnly()" tooltip="{{\'Click to edit this plan\' | translate}}" class="fa fa-pencil-square-o edit-toggle"></i></p></div></div><div ng-class="{\'hidden\' : edit.isActive(plan.maintenance_id)}" class="plan-summary"><div class="metrics"><strong>{{plan.actionsDone}}/{{plan.actions.length}}&nbsp;</strong><span translate="translate">Actions resolved</span></div><div class="progress-bar"><div ng-style="plan.actionsDone / plan.actions.length | toWidth" class="progress"></div><div class="bar"></div></div></div><!-- Edit mode--><div ng-if="edit.isActive(plan.maintenance_id)" class="content content-tabs nobordertop active"><tabset type="noformat" vertical="false" justified="true" role="tablist" class="nav nav-justified"><!-- Actions Tab--><tab role="tabpanel" heading="{{\'Actions\' | translate}}" deselect="addRule.reset()" select="tabSelected()"><div ng-repeat="rule in (plan.rules | orderBy:[\'-severityNum\', \'rule_id\', \'-actions.length\'] | offset:pager.offset | limitTo:pager.perPage) track by rule.id" class="content-block rule"><div ng-init="tableEdit = false" class="header bordered"><div class="title"><ansible-icon value="rule.ansible" show-planner-line="false" class="inline-right"></ansible-icon><strong>{{rule.description}}</strong><span ng-hide="isReadOnly()" class="pull-right"><a ng-hide="tableEdit" ng-click="tableEdit = true"><strong translate="translate" tooltip="{{\'Click to add/remove affected systems\' | translate}}">Edit</strong></a><i ng-if="tableEdit" ng-click="removeActions(rule.actions)" tooltip="{{\'Remove this action\' | translate}}" class="fa fa-trash-o"></i></span></div><div class="row row-short"><div class="col-sm-12"><all-severity-icons rule="rule" ng-if="!loading"></all-severity-icons></div></div></div><div class="content nopad table-responsive"><maintenance-table-systems params="tableParams(rule, true, false)" edit="tableEdit" item="rule"></maintenance-table-systems></div></div><div translate="translate" ng-if="!plan.rules.length">This plan is empty</div><pagination ng-if="plan.rules.length &gt; pager.perPage" total-items="plan.rules.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></tab><!-- Systems Tab--><tab role="tabpanel" heading="{{\'Systems\' | translate}}" deselect="addSystem.reset()" select="tabSelected(&quot;systems&quot;)"><div ng-repeat="system in (plan.systems | orderBy:[\'_name\', \'system_id\'] | offset:pager.offset | limitTo:pager.perPage) track by system.system_id" class="content-block system"><div class="header bordered"><type-icon type-id="system.system_type_id" include-text="false"></type-icon><a ng-click="showSystemModal(system)"><strong>&nbsp; {{system._name}} &nbsp;&nbsp;</strong></a><span class="item"><strong translate="translate">Last check in:</strong><span ng-class="system | checkInStyle">&nbsp;&nbsp;{{system.last_check_in | timeAgo}}</span></span><span ng-hide="isReadOnly()" class="pull-right"><a ng-hide="tableEdit" ng-click="tableEdit = true"><strong translate="translate" tooltip="{{\'Click to add/remove actions for this system\' | translate}}">Edit</strong></a><i ng-if="tableEdit" ng-click="removeActions(system.actions)" tooltip="{{\'Remove this system\' | translate}}" class="fa fa-trash-o"></i></span><div class="text-center red hidden"><strong>System restart required&nbsp;&nbsp;</strong><i class="fa fa-refresh"></i></div></div><div class="content nopad table-responsive"><maintenance-table-actions params="tableParams(system, false, false)" edit="tableEdit" item="system"></maintenance-table-actions></div></div><div translate="translate" ng-if="!plan.systems.length">This plan is empty</div><pagination ng-if="plan.systems.length &gt; pager.perPage" total-items="plan.systems.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></tab><tab role="tabpanel" disable="!ansibleSupport" ng-init="setupTabActivator($parent)" select="tabSelected(&quot;playbook&quot;); prepareAnsibleTab()" class="tab-blue"><tab-heading><ansible-icon value="ansibleSupport" show-tooltip="false" white="true" class="inline-right"></ansible-icon><strong translate="translate">Playbook</strong></tab-heading><div ng-show="playbookTabLoader.loading" class="spinner"></div><div ng-hide="playbookTabLoader.loading" class="playbooks"><card ng-repeat="play in plays" class="playbook"><card-header class="gray"><a ui-sref="app.actions-rule({category: play.rule.category.toLowerCase(), rule: play.rule.rule_id})"><b>{{ play.rule.description }}</b></a></card-header><card-content class="flex"><div class="systems"><h4 translate="translate" class="section-title">Systems:</h4><expandable-system-list systems="play.systems"></expandable-system-list></div><div class="resolution"><h4 translate="translate" class="section-title">Resolution:</h4><p>{{ play.ansible_resolutions[0].description }} &nbsp;<a ng-if="play.ansible_resolutions.length &gt; 1" ng-click="resolutionModal(play)" tooltip="{{&quot;Multiple resolutions available. Click here to select a different one.&quot; | translate}}"><span translate="translate">- edit ({{play.ansible_resolutions.length}} options)</span></a></p><ul class="list-plain"><li ng-if="play.ansible_resolutions[0].needs_reboot"><div class="icon-inline red"><i class="fa fa-repeat"></i><strong translate="translate" tooltip="{{\'System reboot is required to resolve this issue\' | translate}}">Reboot Required</strong></div></li><li ng-if="play.ansible_resolutions[0].resolution_risk"><risk-of-change change-risk="play.ansible_resolutions[0].resolution_risk"> </risk-of-change></li></ul></div></card-content></card><card class="playbook playbook-summary"><card-header class="gray"><strong translate="translate" class="red">System reboot summary</strong></card-header><card-content ng-if="!systemsToReboot.length" class="gray"><div class="cell"><p translate="translate">This playbook&nbsp;<b translate="translate" class="text-success">does not require a system reboot.</b></p></div></card-content><card-content ng-if="systemsToReboot.length" class="gray flex"><div class="systems"><h4 translate="translate" class="section-title">Systems:</h4><expandable-system-list systems="systemsToReboot"></expandable-system-list></div><div class="resolution"><div ng-click="plan.allow_reboot = !plan.allow_reboot; allowRebootChanged()" class="toggle push-bottom-narrow"><input type="checkbox" ng-checked="plan.allow_reboot"/><b translate="translate">Reboot systems automatically</b><div ng-class="{active: plan.allow_reboot}" class="toggle-slider"></div></div><p translate="translate">Some of the resolutions above require system reboot in order for the changes to take effect. This playbook&nbsp;<b ng-if="plan.allow_reboot" class="red">will reboot the systems automatically.</b><span ng-if="!plan.allow_reboot"><b>will not reboot the systems.&nbsp;</b>The systems will need to be rebooted manually.</span></p></div></card-content></card></div></tab></tabset></div><footer ng-show="edit.isActive(plan.maintenance_id)" class="footer"><a ng-if="isInternal &amp;&amp; !plan.hidden" ng-click="hidden(true)" class="btn btn-sm btn-default"><i class="fa fa-eye-slash inline-right"></i><span translate="translate">Hide</span></a><a ng-if="isInternal &amp;&amp; plan.hidden" ng-click="hidden(false)" class="btn btn-sm btn-default"><i class="fa fa-eye inline-right"></i><span translate="translate">Publish</span></a><a ng-if="plan.suggestion === \'proposed\' &amp;&amp; !plan.hidden" ng-click="accept()" class="btn btn-sm btn-accent"><i class="fa fa-check inline-right"></i><span translate="translate">Accept</span></a><a ng-if="plan.suggestion === \'proposed\' &amp;&amp; !plan.hidden" ng-click="reject()" class="btn btn-sm btn-default"><i class="fa fa-close inline-right"></i><span translate="translate">Ignore</span></a><a ng-click="addActions()" ng-if="!isReadOnly()" class="btn btn-sm btn-accent pull-right"><span translate="translate">Add actions</span></a><a translate="translate" ng-click="exportPlan(plan.maintenance_id)" class="btn btn-sm btn-open-blue action pull-right"><i class="fa fa-download inline-right"></i><span translate="translate">Export CSV</span></a><a translate="translate" ng-click="downloadPlaybook()" ng-if="!ansibleRunner" ng-disabled="!ansibleSupport" class="btn btn-sm btn-open-blue action pull-right"><i class="svg ansible-icon inline-right"><img src="/assets/insights/l_ansible-blue.svg"/></i><span translate="translate">Download Playbook</span></a><div ng-if="ansibleRunner" class="btn-group pull-right"><button ng-disabled="!ansibleSupport" ng-click="runPlaybook(\'run\')" aria-haspopup="true" aria-expanded="false" class="btn btn-sm btn-open-blue action"><i class="svg ansible-icon inline-right"><img src="/assets/insights/l_ansible-blue.svg"/></i><span translate="translate">Run Playbook</span></button><button data-toggle="dropdown" ng-if="ansibleSupport" class="btn btn-sm btn-open-blue action dropdown-toggle"><span class="caret"></span><span translate="translate" class="sr-only">Toggle Dropdown</span></button><ul class="dropdown-menu"><li><a translate="translate" ng-click="runPlaybook(\'customize\')">Customize Playbook Run</a></li><li><a translate="translate" ng-click="downloadPlaybook()">Download Playbook</a></li></ul></div></footer></div></div></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableActions.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><table class="table nomar ng-table maintenance-table"><thead><tr><th ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">Action</div></th><th ng-class="table.sorter.getSortClass(\'rule.severityNum\')" ng-click="table.sorter.sort(\'rule.severityNum\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Total Risk</div></th><th ng-class="table.sorter.getSortClass(\'done\')" ng-click="table.sorter.sort(\'done\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Status</div></th></tr><tr ng-show="edit"><th colspan="4" class="filter"><input type="text" placeholder="Filter by rule name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td ng-class="{&quot;icon-inline&quot;: action._type === 2}" class="overflow"><i ng-if="action._type === 2" tooltip="{{\'This action is already part of another plan\' | translate}}" class="icon fa fa-exclamation-circle"></i><a ng-click="table.showSystemModal(table.params.item, action.rule)" class="text action">{{action.display}}</a></td><td class="text-center"><severity-icon severity="action.rule.severity" type="severity" label=""></severity-icon></td><td class="status text-center"><status-icon status="action.done"></status-icon></td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableFooter.html','<tr ng-show="edit"><td colspan="{{cols || 4}}"><div role="group" class="pull-right btn-group"><button ng-click="table.cancel()" translate="translate" class="btn btn-sm btn-blank">Cancel</button><button ng-click="table.save()" ng-disabled="!checkboxes.totalChecked" translate="translate" class="btn btn-sm btn-accent">Save</button></div></td></tr><tr ng-if="table.filteredActions.length &gt; table.pager.perPage"><td colspan="{{cols || 4}}"><pagination total-items="table.filteredActions.length" ng-model="table.pager.currentPage" items-per-page="table.pager.perPage" ng-change="table.page()" class="pull-right pagination-blue"></pagination></td></tr>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableMulti.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><!-- cols set so that footer knows how many cols to span--><table ng-init="cols = 5" class="table nomar ng-table maintenance-table"><thead><tr><th ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">Action</div></th><th ng-class="table.sorter.getSortClass(\'rule.severityNum\')" ng-click="table.sorter.sort(\'rule.severityNum\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Total Risk</div></th><th ng-class="table.sorter.getSortClass(\'rule.ansible\')" ng-click="table.sorter.sort(\'rule.ansible\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Ansible</div></th><th ng-class="table.sorter.getSortClass(\'rule.report_count\')" ng-click="table.sorter.sort(\'rule.report_count\')" class="sortable text-center"><div translate="translate" class="sort-indicator">Affected Systems</div></th></tr><tr ng-show="edit"><th colspan="5" class="filter"><input type="text" placeholder="Filter by rule name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td class="overflow"><a ng-href="./actions/{{action.rule.category}}/{{action.id}}" target="_blank"><span class="wrap">{{action.display}}</span></a></td><td class="text-center"><severity-icon severity="action.rule.severity" type="severity" label=""></severity-icon></td><td class="status text-center"><ansible-icon value="action.rule.ansible" show-planner-line="false"></ansible-icon></td><td class="status text-center">{{action.rule.report_count}}</td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/maintenanceTable/maintenanceTableSystems.html','<div ng-class="{updating: table.loader.loading}" class="updatable"><div ng-show="table.loader.loading" class="spinner spinner-lg"></div><table class="table nomar ng-table maintenance-table"><thead><tr><th width="6%" ng-show="edit" class="text-center"><input ng-model="checkboxes.checked" type="checkbox" ng-indeterminate="checkboxes.indeterminate" ng-change="checkboxChecked()" class="select-all"/></th><th ng-class="table.sorter.getSortClass(\'display\')" ng-click="table.sorter.sort(\'display\')" class="sortable"><div translate="translate" class="sort-indicator">System</div></th><th width="20%" ng-class="table.sorter.getSortClass(\'system.last_check_in\')" ng-click="table.sorter.sort(\'system.last_check_in\')" class="sortable"><div translate="translate" class="sort-indicator">Last check in</div></th><th width="12%" ng-class="table.sorter.getSortClass(\'done\')" ng-click="table.sorter.sort(\'done\')" class="sortable text-center"><div translate="translate" class="sort-indicator overflow">Status</div></th></tr><tr ng-show="edit"><th colspan="4" class="filter"><input type="text" placeholder="Filter by system name" ng-model="table.filter.display" ng-change="table.doFilter()" class="form-control nomar-left input-sm"/></th></tr></thead><tbody><tr ng-repeat="action in table.data track by action.id" data-id="{{action.id}}" ng-click="checkboxRowClick($event, action.id)" ng-mousedown="checkboxRowClick($event, action.id)"><td ng-show="edit" class="text-center"><input ng-model="checkboxes.items[action.id]" type="checkbox"/></td><td class="overflow"><type-icon type-id="action.systemTypeIconId" ng-if="action.systemTypeIconId" include-text="false"></type-icon><i ng-if="action._type === 2" tooltip="{{\'This action is already part of another plan\' | translate}}" class="fa fa-exclamation-circle"> </i><a ng-click="table.showSystemModal(action.system, table.params.item)" class="hostname with-icon"><trimmed-text text="{{action.display}}" length="45"></trimmed-text></a></td><td><span ng-show="::action.system.last_check_in">{{::action.system.last_check_in | timeAgo}}</span><span ng-hide="::action.system.last_check_in">--</span></td><td width="19%" class="status text-center"><status-icon status="action.done"></status-icon></td></tr></tbody><tfoot maintenance-table-footer="maintenance-table-footer"></tfoot></table></div>');$templateCache.put('js/components/maintenance/resolutionModal/resolutionModal.html','<div class="modal-actions"><i ng-click="cancel()" class="fa fa-close"></i></div><div class="modal-header"><div class="text-center"><i class="svg"><img src="/assets/insights/l_ansible-black.svg"/></i><h2 translate="translate">Choose Resolution</h2></div></div><div class="modal-body"><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title group-title-table"><table><tbody><tr><td><b>{{ params.play.rule.description }}</b></td></tr></tbody></table></div></div></div></div><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title"><i ng-class="systemType.imageClass" class="fa fa-times-circle"></i><b>&nbsp; {{systemType.displayName}}</b></div><div class="group-content"><ul><li ng-repeat="system in systems | limitTo:listLimit | orderBy:\'toString\'">{{system.toString}}</li></ul><a ng-show="listLimit !== undefined &amp;&amp; listLimit &lt; systems.length" ng-click="listLimit = undefined" translate="translate">View More ({{systems.length - listLimit}})</a><a ng-show="listLimit === undefined" ng-click="listLimit = MINIMUM_NUMBER_OF_ITEMS" translate="translate">View Less</a></div></div></div></div><div class="row"><div class="col-sm-12"><div class="group"><div class="group-title"><b translate="translate">Would you like to:</b></div><div class="group-content"><div ng-repeat="resolution in resolutions track by resolution.resolution_type" class="radio"><label for="resolution-type-{{$index}}"><input type="radio" ng-model="selected.resolutionType" name="resolution-type" id="resolution-type-{{$index}}" ng-value="resolution.resolution_type"/><risk-of-change change-risk="resolution.resolution_risk" hide-label="true"></risk-of-change><span>{{resolution.description}}</span><br/><i ng-if="resolution.needs_reboot" tooltip="{{\'This resolution requires a system reboot\' | translate}}" class="fa fa-repeat red inline-left"></i><strong ng-if="resolution.needs_reboot" class="red">&nbsp;Reboot Required</strong></label></div></div></div></div></div><div class="row"><div class="col-sm-12"><p translate="translate">This setting can be changed anytime in the&nbsp;<strong translate="translate">Playbook Settings&nbsp;</strong>tab</p></div></div><div ng-if="params.steps &gt; 1" class="row"><div class="col-sm-12"><ul class="pagination pagination-dots"><li ng-repeat="i in range(params.index) track by $index"><a class="sr-only"></a></li><li class="active"><a class="sr-only"></a></li><li ng-repeat="i in range(params.steps - params.index - 1) track by $index"><a class="sr-only"></a></li></ul></div></div></div><div class="modal-footer"><ul class="row pager pager-steps"><li class="previous col-sm-6"><a ng-click="cancel()" class="btn cancel"><span translate="translate" ng-if="params.steps">Skip and use defaults</span><span translate="translate" ng-if="!params.steps">Cancel</span></a></li><li class="next col-sm-6"><a ng-click="save()" translate="translate" class="btn save">Save</a></li></ul></div>');$templateCache.put('js/components/misc/trimmedText/trimmedText.html','<span class="trimmed-text"><span ng-if="showTooltip" tooltip="{{text}}" class="trimmed">{{trimmedText}}</span><span ng-if="!showTooltip" class="not-trimmed">{{trimmedText}}</span></span>');$templateCache.put('js/components/maintenance/planList/planList.html','<div class="plans"><div ng-if="!group" class="row"><maintenance-plan ng-repeat="plan in plans | orderBy:&quot;-maintenance_id&quot; | limitTo:pager.perPage:pager.offset track by plan.maintenance_id"></maintenance-plan></div><div ng-if="group" ng-repeat="month in (plans | orderBy:[&quot;-start&quot;,&quot;-maintenance_id&quot;] | limitTo:pager.perPage:pager.offset | groupPlans)" class="row"><div class="col-sm-12"><h3>{{month[0].start | moment:\'MMMM YYYY\'}}</h3></div><maintenance-plan ng-repeat="plan in month | orderBy:&quot;-start&quot; track by plan.maintenance_id"></maintenance-plan></div><div class="row row-short"><pagination ng-if="plans.length &gt; pager.perPage" total-items="plans.length" ng-model="pager.currentPage" items-per-page="pager.perPage" ng-change="pager.update()" class="pull-right pagination-blue"></pagination></div></div>');$templateCache.put('js/components/overview/articleModal/articleModal.html','<div class="article-modal"><form novalidate="novalidate" name="articleForm" class="form-horizontal"><h2>Overview content</h2><div class="form-group row"><label for="title" class="control-label col-sm-2">Article</label><div class="col-sm-10"><ui-select ng-model="selected.article" append-to-body="false" on-select="load($item.id)" search-enabled="false"><ui-select-match placeholder="Select an article" class="form-control ui-select-match">{{selected.article.id}}</ui-select-match><ui-select-choices repeat="article in articles" class="ui-select-choices">{{article.id}}</ui-select-choices></ui-select></div></div><div ng-class="{\'has-error\': articleForm.title.$invalid &amp;&amp; articleForm.title.$dirty}" class="form-group row row-short"><label for="title" class="control-label col-sm-2">Title</label><div class="col-sm-10"><input id="title" type="text" name="title" ng-model="article.title" maxlength="255" required="required" class="form-control"/></div></div><div ng-class="{\'has-error\': error.content}" class="form-group row row-short"><div class="col-sm-12"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no>&nbsp;<yes-no no="true" text="doT"></yes-no></div><textarea id="content" placeholder="Overview content" ng-model="article.content" rows="20" class="form-control content"></textarea></div></div><div class="row"><div class="col-sm-6"><button ng-click="preview()" ng-disabled="articleForm.$invalid" class="btn btn-sm btn-secondary"><span class="icon-inline"><i class="fa fa-picture-o"></i><span>Preview</span></span></button></div><div class="col-sm-6 text-right"><button ng-click="close()" class="btn btn-sm btn-default">Cancel</button><button ng-click="save()" ng-disabled="articleForm.$invalid" class="btn btn-sm btn-primary">Save</button></div></div></form><div ng-if="previewData" class="row"><hr/><div class="col-sm-12"><h3><strong>{{previewData.title}}</strong></h3><span ng-bind-html="previewData.content_html | trust_html" class="handcrafted-content"></span></div></div></div>');$templateCache.put('js/components/rule/ruleBreadcrumb/ruleBreadcrumb.html','<ol class="breadcrumb"><li><a translate="translate" ui-sref="app.rules">Rules</a></li><li><a ui-sref="app.admin-rules">Rules Admin</a></li><li ng-if="rule"><span>{{ rule.plugin }}|{{ rule.error_key }}</span></li><li ng-if="insightsNamespacer.current === \'insights-app-admin-rule-tags\'"><a ui-sref="app.admin-rule-tags">Tags</a></li></ol>');$templateCache.put('js/components/rule/ruleFilter/ruleFilter.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><incidents-tri-state class="col-xs-6 col-md-5 col-lg-4"></incidents-tri-state><ansible-support-tri-state ng-if="config.isPlannerEnabled" class="col-xs-6 col-md-5 col-lg-4"></ansible-support-tri-state><rule-status-tri-state class="col-xs-6 col-md-5 col-lg-4"></rule-status-tri-state></div><div class="row"><total-risk-select class="col-xs-6 col-md-4 col-lg-3"></total-risk-select><category-select class="col-xs-6 col-md-4 col-lg-3"></category-select><likelihood-select class="col-xs-6 col-md-4 col-lg-3"></likelihood-select><impact-select class="col-xs-6 col-md-4 col-lg-3"></impact-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/rule/ruleGroupCard/ruleGroupCard.html','<div ng-keypress="keyPressed($event)" class="card-group"><header class="header"><div translate="translate" translate-n="plugin.hitCount" translate-plural="{{$count}} Systems" class="count">1 System</div><div class="row"><div class="col-sm-9"><i aria-hidden="true" class="fa fa-users"></i><strong><span translate="translate" class="text-uppercase">Group: &nbsp;</span><span ng-if="plugin.categories.length === 1"><i ng-class="plugin.categories[0].toLowerCase()" class="fa category-icon inline-right"></i>{{plugin.categories[0]}} ></span><span>&nbsp; {{plugin.display_name}}</span></strong></div><div class="col-sm-3 text-right-sm"><span translate="translate" translate-n="plugin.rules.length" translate-plural="{{$count}} Rules in this group">1 Rule in this group</span></div></div></header><div ng-class="{swapping: swapping}" ng-mouseenter="setActive(true)" ng-mouseleave="setActive(false)" class="content disabled-start"><div ng-click="previous()" ng-class="{disabled: !hasPrevious()}" class="prev"><i class="fa fa-arrow-left"></i></div><div ng-click="next()" ng-class="{disabled: !hasNext()}" class="next"><i class="fa fa-arrow-right"></i></div><card><card-header class="flexgrid equalheights"><div class="row"><div class="col-sm-8"><div class="title"><strong>{{index + 1}}&nbsp;</strong><em class="light">of &nbsp;</em><strong>{{plugin.rules.length}}: {{rule.description}}</strong></div><span translate="translate" ng-show="rule.acked" class="label label-default pull-right text-uppercase">inactive</span></div><div ng-if="config.isPlannerEnabled" class="col-sm-4 text-right-sm"><incident-icon rule-id="rule.rule_id"></incident-icon><ansible-icon value="rule.ansible"></ansible-icon></div></div></card-header><card-content><div ng-bind-html="rule.summary_html" target-blank="" class="gray"></div></card-content><div class="footer"><div class="row"><div class="col-sm-6"><all-severity-icons rule="rule" ng-if="!swapping"></all-severity-icons></div><div class="col-sm-6 text-right-sm"><strong><a ui-sref="app.actions-rule({category: rule.category, rule: rule.rule_id})" ng-disabled="rule.hitCount === 0" translate="translate" translate-n="rule.hitCount" translate-plural="View Impacted Systems ({{$count}})">View Impacted System (1)</a></strong></div></div></div></card></div></div>');$templateCache.put('js/components/rule/ruleListSimple/ruleListSimple.html','<ul class="rule-list list-unstyled"><li ng-repeat="rule in (rules | orderBy:order | limitTo:limit) track by rule.rule_id"><div class="title">{{rule.description}} &nbsp;</div><a ng-click="onSelect({rule: rule})">[{{rule.rule_id}}]&nbsp;</a><i ng-click="onDelete({rule: rule})" ng-hide="readOnly" class="fa fa-times"></i><!-- I know I know--><br/><all-severity-icons rule="rule"></all-severity-icons></li><li ng-show="rules.length &gt; 10 &amp;&amp; limit"><a ng-click="limit = undefined">\u2026 ({{rules.length - limit}} more)</a></li></ul>');$templateCache.put('js/components/rule/ruleReason/ruleReason.html','<div class="detail-part"><h4 translate="translate" class="section-heading"><i aria-hidden="true" class="fa fa-crosshairs">&nbsp;</i>Detected issues</h4><div class="reason"><div ng-if="report.rule.reason !== \'INSIGHTS-ERROR-INTERPOLATION\'" ng-bind-html="report.rule.reason | trust_html" target-blank="" class="detail-content"></div><div ng-if="report.rule.reason === \'INSIGHTS-ERROR-INTERPOLATION\'" class="detail-content"><p><i class="fa fa-exclamation-circle i-error inline-right"></i><strong translate="translate">There was a problem obtaining action details. Please try again later.</strong></p></div></div></div>');$templateCache.put('js/components/rule/ruleResolution/ruleResolution.html','<div class="detail-part"><div class="detail-content answer"><h4 translate="translate" class="section-heading"><i aria-hidden="true" class="fa fa-thumbs-up">&nbsp;</i>Steps to resolve</h4><span ng-if="report.rule.resolution !== \'INSIGHTS-ERROR-INTERPOLATION\'" ng-bind-html="report.rule.resolution | trust_html" target-blank=""></span><span ng-if="report.rule.resolution === \'INSIGHTS-ERROR-INTERPOLATION\'"><p><i class="fa fa-exclamation-circle i-error inline-right"></i><strong translate="translate">There was a problem obtaining action details. Please try again later.</strong></p></span></div><div ng-if="report.details.affected_hosts &amp;&amp; (report.rule.type === &quot;osp&quot; || report.rule.type === &quot;rhev&quot;)" class="osp-affected-hosts"><table class="table table-fixed"><thead><tr><th><div>Affected Hosts</div></th></tr></thead><tbody><tr ng-repeat="affected_host in report.details.affected_hosts"><td><div>{{getSystemNameFromId(affected_host)}}</div></td></tr></tbody></table></div></div>');$templateCache.put('js/components/rule/ruleSummaries/ruleSummaries.html','<div class="content-wrap"><div ng-if="loading.isLoading" class="row"><div class="col-xs-12"><div class="loading-block text-center"><div class="detail-part"><div class="spinner spinner-lg"></div>{{getLoadingMessage()}}</div></div></div></div><div ng-hide="!system.reports || !system.reports.length || loading.isLoading" class="row"><div class="col-xs-12 text-right"><expand-all-button></expand-all-button></div></div><div ng-if="(!system.reports || !system.reports.length) &amp;&amp; !loading.isLoading &amp;&amp; !system.__fake &amp;&amp; !errorMessage" class="row"><div class="col-xs-12"><p class="text-center"><span><i class="fa fa-fw fa-check-circle success"></i><span translate="translate">No actions</span></span></p></div></div><div ng-if="!loading.isLoading &amp;&amp; !system.__fake &amp;&amp; errorMessage" class="row"><div class="col-xs-12"><div ng-bind-html="errorMessage | trust_html"></div></div></div><div report="report" rule-id="rule_id" rule-filter="ruleFilter" ng-repeat="report in system.reports" class="rule-summary system-overlay-item content-block"></div></div>');$templateCache.put('js/components/rule/ruleSummary/ruleSummary.html','<card expandable="true" init-collapsed="initCollapsed" on-toggle="resetShowMore(ctx)"><card-header><div class="row"><div class="col-sm-12"><h3 class="title"><ansible-icon value="report.rule.ansible" ng-if="config.isPlannerEnabled" class="inline-right"></ansible-icon><incident-icon rule-id="report.rule_id" class="inline-right"></incident-icon>{{ report.rule.category }} &gt; {{ report.rule.description }}</h3></div></div><div class="row row-short"><div class="col-sm-12"><all-severity-icons rule="report.rule"></all-severity-icons><risk-of-change change-risk="report.rule.resolution_risk"></risk-of-change></div></div></card-header><card-content class="content ng-animate-enabled"><div class="row"><div class="col-sm-12"><div class="rule-reason"></div></div></div><div class="row row-short"><div class="col-sm-12"><div class="rule-resolution"></div><div ng-if="report.rule.node_id" node="report.rule.node_id" class="recommended-kbase"></div></div></div><div ng-show="report.rule.more_info" class="row row-short"><div class="col-xs-12"><div class="text-center border-top"><div ng-click="show.moreInfo = !show.moreInfo" class="nomar push-top-narrow pointer"><a class="link"><strong>{{show.moreInfo ? \'Hide\' : \'Show\'}} more info &nbsp;</strong><i ng-class="{\'fa-caret-up\': show.moreInfo, \'fa-caret-down\': !show.moreInfo}" class="fa"></i></a></div></div></div></div><div collapse="!show.moreInfo" class="footer more-info ng-animate-enabled"><div ng-bind-html="report.rule.more_info_html | trust_html" ng-show="report.rule.more_info" target-blank=""></div></div></card-content></card>');$templateCache.put('js/components/rule/ruleToggle/ruleToggle.html','<div ng-click="ackAction()" class="toggle"><div ng-class="{active: !rule.ack_id}" class="toggle-slider"></div><b translate="translate"><span>Enable Rule</span></b></div>');$templateCache.put('js/components/sideNav/actionsSideNav/actionsSideNav.html','<li><a ui-sref="app.actions" ng-class="{current: includes(states.actions, state.current.name)}" translate="translate">Actions</a><ul ng-show="actions"><li><a ui-sref="app.topic({id: c, product: product})" ng-class="{current: isActive(c)}" ng-repeat="c in categories" ng-if="categoryCounts[c]"><span translate="translate" translate-n="categoryCounts[c]" translate-plural="{{c | translate | titlecase}} ({{$count}})">{{c | translate | titlecase}} (1)</span></a></li></ul></li>');$templateCache.put('js/components/system/addSystemModal/addSystemModal.html','<div class="modal-actions"><i ng-click="close()" class="fa fa-close pull-right"></i></div><div id="info" class="info"><div class="content"><section id="install"><h2 translate="translate" class="section-header">Install the Red Hat Insights Client and Register More Systems</h2><p translate="translate">Register your system for updates with Red Hat Subscription Manager to resolve software dependencies:</p><pre class="code-block code-terminal"><code class="language-shell"> # subscription-manager register --auto-attach</code></pre><p translate="translate">Install the Red Hat Insights RPM:</p><pre class="code-block code-terminal"><code class="language-shell"> # yum install redhat-access-insights</code></pre></section><section id="register"><h2 translate="translate" class="section-header">Register the system to Red Hat Insights</h2><pre class="code-block code-terminal"><code># redhat-access-insights --register</code></pre><p translate="translate">After registration, the Insights client will upload initial system information to Red Hat Insights. You should be able to immediately see your system in the <a ui-sref="app.inventory" ng-click="close()">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shorty thereafter.</p></section><section id="more"><h2 translate="translate" class="section-header">Advanced configuration</h2><p translate="translate">For more advanced configuration see the <a href="{{gettingStartedLink}}" target="_blank" ng-click="close()" translate="translate">getting started guide</a>.</p></section></div></div>');$templateCache.put('js/components/system/addSystemModal/upgradeSubscription.html','<div class="modal-actions"><i ng-click="close()" class="fa fa-close pull-right"></i></div><div id="info" class="info"><div class="content"><section id="install"><h2 translate="translate" class="section-header">You have reached your maximum <br /> number of registered systems!</h2><p><span ng-if="isEvaluation" translate="translate">You have reached your evaluation limit of 10 registered systems for Red Hat Insights.</span><span ng-if="!isEvaluation" translate="translate">You have reached your maximum number of registered systems for Red Hat Insights.</span>&nbsp;<span translate="translate"> To increase your available Red Hat Insights registrations, please</span>&nbsp;<a href="http://www.redhat.com/en/about/contact/sales" translate="translate">contact your Red Hat sales representative</a>&nbsp;<span translate="translate">to purchase Insights or request a 90 day evaluation.</span></p><p><a href="http://access.redhat.com/insights/info/#availability" translate="translate">Learn more about Red Hat Insights availability</a></p></section></div></div>');$templateCache.put('js/components/system/systemModal/systemModal.html','<div class="system-overlay"><div class="modal-actions"><div ng-click="close()" class="fa fa-close pull-right"></div></div><div class="modal-title"><div class="icon"><span class="fa fa-globe"></span></div><h2 ng-if="system.display_name"><div class="ellipsis-overflow"><span>{{ system.display_name }}</span></div></h2><div ng-if="system.display_name" class="ellipsis-overflow"><!-- if the display name exists.... show the hostname small--><div class="ellipsis-overflow"><div ng-if="system.hostname" class="small-name-info">hostname: {{ system.hostname }}</div></div></div><!-- dont show hostname if it is not avalible--><h2 ng-if="system.hostname &amp;&amp; !system.display_name"><b translate="translate">hostname:</b><div class="ellipsis-overflow"><span>{{ system.hostname }}</span></div></h2><!-- always show the uuid.... it must exist--><div class="ellipsis-overflow"><div class="small-name-info">UUID: {{ getUUID() }}</div></div></div><system-metadata system="system"></system-metadata><div class="separator"></div><div class="insights-main-content"><div ng-if="!system.isCheckingIn" class="message alert alert-danger alert-systems-not-checking"><span class="glyphicon glyphicon-exclamation-sign rule-margin"></span><span translate="translate">This system is not checking in.</span></div><div system="system" machine-id="system.system_id" rule="rule" rule-filter="ruleFilter" loading="loading" class="rule-summaries"></div><div ng-if="system.__fake" report="report" rule="rule" loading="loading" class="rule-summary system-overlay-item content-block"></div></div></div>');$templateCache.put('js/components/system/systemTable/systemTable.html','<div class="col-md-6 group-list"><label class="full-width">{{::title | translate}}</label><input placeholder="{{\'Filter\' | translate}}" type="text" ng-model="systemsFilter" ng-model-options="{ debounce: 100 }" ng-change="filterSystems()" class="filter full-width"/><div class="filters-table"><div class="row"><div class="col-xs-6"><label class="select-all"><input type="checkbox" ng-model="checkboxes.checked" ng-indeterminate="indeterminate"/><span translate="translate">Select Visible</span></label></div><div class="col-xs-6"><div class="pull-right flush-right"><span translate="translate">Items</span><div class="dropdown-select dropdown-select-horizontal"><select ng-model="itemsPerPage" ng-options="i for i in items track by i"></select></div></div></div></div></div><div ng-class="{\'scrollable scrollable-table\': _filteredSystems.length &gt; 10}"><table class="table no-header table-groups"><tbody><tr ng-repeat="system in _filteredSystems = (filteredSystems | offset:((currentPage-1)*itemsPerPage) | limitTo:itemsPerPage)" data-id="{{system.system_id}}" ng-click="rowClick($event)" ng-mousedown="rowClick($event)" class="ng-animate-disabled"><td><label><input type="checkbox" ng-model="checkboxes.items[system.system_id]"/><span class="hostname">{{::system.toString}}</span></label></td></tr></tbody></table></div><div class="row groups-footer"><div class="col-xs-12 col-md-5"><a ng-show="type === \'in\'" ng-disabled="!totalChecked" ng-click="removeSystems()" class="link"><i class="fa fa-minus"> </i><span translate="translate"> Remove Systems</span></a><a ng-hide="type === \'in\'" ng-disabled="!totalChecked" ng-click="addSystems()" class="link"><i class="fa fa-plus"> </i><span translate="translate"> Add Systems</span></a></div><div class="col-xs-12 col-md-7"><pagination ng-hide="total &lt;= itemsPerPage" total-items="total" ng-model="currentPage" previous-text="\xAB" next-text="\xBB" max-size="3" rotate="false" items-per-page="itemsPerPage" ng-change="pageChanged()" class="pull-right pagination-gray"></pagination></div></div></div>');$templateCache.put('js/components/topbar/alerts/alerts.html','<span dropdown="" on-toggle="toggled(open)" class="dropdown dropdown-notification"><div ng-if="loading" class="spinner spinner-sm"></div><a href="" dropdown-toggle="" ng-if="!loading" class="dropdown-toggle"><i class="fa {{icon}}"></i><span ng-if="service.unackedCount !== 0" class="count">{{service.unackedCount}}</span></a><ul ng-if="!loading" class="dropdown-menu preview"><li ng-repeat="item in service.items" ng-class="{ acked: (item.acked) }" class="announcement"><div class="row"><div class="col-sm-12"><div><i ng-if="item.icon" ng-class="item.icon" class="fa inline-right"></i><b ng-bind-html="item.msg | trust_html" ng-click="item.onSelect(item)"></b></div><div ng-if="item.onAck" style="position:absolute; right:12px; top:0; padding:20px; height:100%; width:40px" ng-click="!item.ack &amp;&amp; item.onAck(item)" tooltip="{{\'Dismiss\' | translate}}" class="message-status-toggle"><i ng-if="!item.acked" class="fa fa-circle-o"></i><i ng-if="item.acked" class="fa fa-check-circle-o acked"></i></div></div></div></li><li ng-if="service.items.length === 0"><strong translate="translate">You have no alerts</strong></li></ul></span>');$templateCache.put('js/components/topics/otherTopic/otherTopic.html','<div class="col-sm-4"><div class="content-block content-block-card anchored-footer topic-card"><header class="header"><h4>{{topic.title}}</h4><div><span translate="translate" translate-n="topic.affectedSystemCount" translate-plural="{{$count}} Systems" class="count">1 System</span></div></header><div ng-bind-html="topic.summary_html ? topic.summary_html : Xtopic.content_html | trust_html" class="description gray"></div><div class="footer text-right-sm"><strong><a translate="translate" ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id, product: getSelectedProduct()})" class="pointer">View More</a></strong></div></div></div>');$templateCache.put('js/components/topics/topicAdminHelpBar/topicAdminHelpBar.html','<div class="help-bar"><a ng-click="help.show = !help.show"><span class="icon-inline"><i class="fa fa-question-circle"></i><span>Show help</span></span></a><div ng-show="help.show" class="panel panel-default"><div class="panel-body"><h5>Dynamic content</h5><p>There are multiple ways to make the content of a topic dynamic:</p><ul><li><a ng-click="help.appendInterpolation()">interpolation</a></li><li><a ng-click="help.appendConditional()">conditionals</a></li></ul><p>Here are some examples of values you can use for interpolation:<table><tbody><tr ng-repeat="tip in help.interpolations"><td><a ng-click="help.appendInterpolation($event)">{{tip.key}}</a></td><td>{{tip.value}}</td></tr></tbody></table></p><p>Also, you may find &nbsp;<a href="http://olado.github.io/doT/index.html" target="_blank">doT docs</a>&nbsp; useful</p></div></div></div>');$templateCache.put('js/components/topics/topicDetails/topicDetails.html','<div class="topic-summary"><div class="row"><div class="col-sm-12"><span ng-show="isContentManager" class="pull-right">[<a ui-sref="app.edit-topic({id: topic.id})">edit</a>]</span><h1 class="page-title"><span translate="translate">{{::topic.title}}</span><div tooltip="This topic is hidden. Only internal users can see it." ng-if="topic.hidden" class="fa fa-eye-slash inline-left red"></div></h1></div></div><div ng-if="topic.content_html" class="row"><div class="col-sm-12"><div ng-bind-html="topic.content_html" class="topic-content"></div></div></div></div>');$templateCache.put('js/components/topics/topicPreviewModal/topicPreviewModal.html','<div class="topic-preview"><div class="sample-data"><a ng-click="editData = !editData"><span class="icon-inline"><i ng-hide="editData" class="fa fa-plus"></i><i ng-show="editData" class="fa fa-minus"></i><span>Modify sample data</span></span></a><form novalidate="novalidate" ng-show="editData" name="tweaker" class="form-horizontal"><div class="form-group"><label for="affectedSystemCount" class="control-label col-sm-2">Number of affected systems</label><div class="col-sm-3"><input type="number" ng-model="sampleData.systems.affectedCount" min="0" class="form-contril"/></div></div><div class="form-group"><label for="affectedSystemCount" class="control-label col-sm-2">Rules</label><div class="col-sm-10"><table class="table table-bordered sample-data-table"><thead><tr><th>Rule ID</th><th>Description</th><th>Number of hits</th><th>Ignored by user (acked)</th></tr></thead><tbody><tr ng-repeat="rule in sampleData.rules track by rule.rule_id"><td class="rule-id">{{rule.rule_id}}</td><td>{{rule.description}}</td><td><input type="number" ng-model="rule.hitCount" required="required" min="0" class="form-control"/></td><td><input type="checkbox" ng-model="rule.acked"/></td></tr></tbody></table></div></div><div class="form-group"><button type="submit" ng-click="updateSampleData()" class="btn btn-sm btn-secondary pull-right">Update preview</button></div></form></div><hr/><div ng-show="loader.loading" class="spinner"></div><div ng-hide="topic" class="text-center"><p>This topic will not be shown when there are no hits for it (tweak sample data or switch to \'Shown always\' topic type to see it)</p></div><div ng-if="summary" ng-show="topic &amp;&amp; !loader.loading" class="actions-page"><section><h2 class="section-title section-title-red">Topics</h2><div class="row"><other-topic topic="topic"></other-topic></div></section></div><div ng-if="details" ng-show="topic &amp;&amp; !loader.loading" class="action-details"><section class="gray section-topic-details"><topic-details topic="topic"></topic-details></section><section class="section-rules-group-content"><topic-rule-list topic="topic"></topic-rule-list></section></div></div>');$templateCache.put('js/components/topics/topicRuleFilters/topicRuleFilters.html','<section><collapsible-filter><collapsible-filter-content><div class="row"><incidents-tri-state ng-if="isBeta" class="col-xs-6 col-md-5 col-lg-4"></incidents-tri-state><total-risk-select class="col-xs-6 col-md-4 col-lg-3"></total-risk-select><risk-of-change-select class="col-xs-6 col-md-4 col-lg-4"></risk-of-change-select></div></collapsible-filter-content></collapsible-filter></section>');$templateCache.put('js/components/topics/topicRuleList/topicRuleList.html','<div class="topic-rule-list"><div class="cards-view"><div ng-show="getListType() === listTypes.card &amp;&amp; plugins.length &gt; 0" class="row"><div class="col-sm-12"><div class="card-list"><div ng-repeat="plugin in plugins | orderBy: sorter.predicate : sorter.reverse track by plugin.plugin_id" class="card-list-item"><rule-group-card ng-if="plugin.type === \'group\'" plugin="plugin"></rule-group-card><card ng-if="plugin.type === \'rule\'" ng-class="{faded: plugin.acked}"><card-header><i ng-class="plugin.rule.category.toLowerCase()" class="fa category-icon inline-right"></i><span class="title">{{ ::plugin.rule.category }} &gt; {{ ::plugin.rule.description }}</span><div translate="translate" translate-n="plugin.hitCount" translate-plural="{{$count}} Systems" class="count">1 System</div><div class="pull-right"><span ng-if="plugin.acked" translate="translate" class="label label-default inline-right rule-inactive">INACTIVE</span><incident-icon rule-id="plugin.rule.rule_id" class="inline-right">&nbsp;</incident-icon><ansible-icon value="plugin.rule.ansible" ng-if="config.isPlannerEnabled"></ansible-icon></div></card-header><card-content><div ng-bind-html="::plugin.rule.summary_html" target-blank="" class="gray"></div></card-content><div class="footer"><div class="row"><div class="col-sm-6"><all-severity-icons rule="plugin.rule"></all-severity-icons></div><div class="col-sm-6 text-right"><strong ng-hide="plugin.rule.acked"><a translate="translate" ui-sref="app.actions-rule({category: topic.slug ? topic.slug : topic.id, rule: plugin.rule.rule_id})" ng-disabled="plugin.rule.hitCount === 0">View Impacted Systems</a></strong></div></div></div></card></div></div></div></div></div><div class="table-view"><div ng-show="getListType() === listTypes.table &amp;&amp; plugins.length &gt; 0" class="row"><div class="col-sm-12"><table id="rha-rules-table" class="table ng-table break-word"><thead><tr><th ng-class="sorter.getSortClass(\'description\')" ng-click="sorter.sort(\'description\')" class="sortable"><div translate="translate" class="sort-indicator">Rule</div></th><!-- START UBER-SEV--><th ng-class="sorter.getSortClass(\'rec_likelihood\')" ng-click="sorter.sort(\'rec_likelihood\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Likelihood</div></th><th ng-class="sorter.getSortClass(\'rec_impact\')" ng-click="sorter.sort(\'rec_impact\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Impact</div></th><th ng-class="sorter.getSortClass(\'severityNum\')" ng-click="sorter.sort(\'severityNum\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Total Risk</div></th><!-- END UBER-SEV--><th ng-class="sorter.getSortClass(\'hitCount\')" ng-click="sorter.sort(\'hitCount\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Systems</div></th><th ng-if="config.isPlannerEnabled" ng-class="sorter.getSortClass(\'ansible\')" ng-click="sorter.sort(\'ansible\')" class="text-center sortable"><div translate="translate" class="sort-indicator">Ansible</div></th></tr></thead><tbody><tr ng-repeat="rule in filteredRules | filter:filterZero | orderBy: sorter.predicate : sorter.reverse track by rule.rule_id" ng-class="{acked: rule.acked}" class="legend-item"><td ng-click="!rule.acked &amp;&amp; viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" ng-class="{\'icon-inline\' : checkIncident(rule.rule_id)}"><div ng-if="rule.acked" class="rule-description">{{rule.description}}</div><span ng-if="rule.acked" translate="translate" class="label label-default inline-left rule-inactive">INACTIVE</span><a ng-if="!rule.acked">{{rule.description}}</a><incident-icon rule-id="rule.rule_id"></incident-icon></td><!-- START UBER-SEV--><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.rec_likelihood" type="likelihood" label=""></severity-icon></td><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.rec_impact" type="impact" label=""></severity-icon></td><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="filter-on text-center align-vertical"><severity-icon severity="rule.severity" type="severity" label=""></severity-icon></td><!-- END UBER-SEV--><td ng-click="viewImpactedSystems(topic.slug ? topic.slug : topic.id, rule.rule_id)" class="text-center align-vertical">{{ rule.hitCount }}</td><td ng-if="config.isPlannerEnabled" class="text-center align-vertical"><ansible-icon value="rule.ansible"></ansible-icon></td></tr></tbody></table></div></div></div><div ng-show="plugins.length === 0" class="row row-short"><div class="col-xs-12 text-center"><strong translate="translate">There are no actions for the selected filters.&nbsp;</strong></div></div><div ng-show="!showRulesWithNoHits &amp;&amp; hiddenCount" class="row row-short"><div class="col-sm-12 text-center"><button ng-click="showAll()" translate="translate" class="btn btn-sm btn-default">Show rules without actions ({{hiddenCount}} more)</button></div></div><div ng-show="!showCards" class="row row-short"><div class="col-xs-12"><div class="actions-back"></div></div></div></div>');$templateCache.put('js/states/config/views/config.html','<page-header title="Configuration" icon="fa-file-text"></page-header><div class="content-wrap"><div class="rha-notifications"></div><tabset class="config-tabs"><tab heading="{{\'Hidden Rules\'|translate}}" active="current.hidden" ng-click="tabClick(\'hidden\')"><config-hidden ng-if="current.hidden"></config-hidden></tab><tab heading="{{\'Messaging\'|translate}}" active="current.messaging" ng-click="tabClick(\'messaging\')"><config-messaging ng-if="current.messaging"></config-messaging></tab><tab heading="{{\'Settings\'|translate}}" active="current.settings" ng-click="tabClick(\'settings\')"><config-settings ng-if="current.settings"></config-settings></tab><!-- rh only--><tab heading="{{\'Webhooks\'|translate}}" active="current.webhooks" ng-click="tabClick(\'webhooks\')" ng-if="user.is_internal &amp;&amp; isBeta"><config-webhooks ng-if="current.webhooks"></config-webhooks></tab><tab heading="Permissions" active="current.permissions" ng-if="user.is_internal &amp;&amp; perms.has(user, perms.PERMS.SU)" ng-click="tabClick(\'permissions\')"><config-permissions ng-if="current.permissions"></config-permissions></tab><tab heading="Dev" active="current.dev" ng-click="tabClick(\'dev\')" ng-if="user.is_internal || user.demo_mode"><config-dev ng-if="current.dev"></config-dev></tab></tabset></div>');$templateCache.put('js/states/config/views/webhook-edit.html','<page-header title="Edit webhook" icon="fa-wrench"></page-header><div class="content-wrap webhook-edit"><div class="rha-notifications"></div><div ng-if="loader.loading" class="spinner"></div><form novalidate="novalidate" name="webhookForm" ng-if="!loader.loading" class="form-horizontal"><fieldset><div class="form-group row"><label translate="translate" class="control-label col-sm-2">Active</label><div class="col-sm-10"><div class="checkbox"><label for="checkbox_active"><input id="checkbox_active" type="checkbox" name="active" ng-model="webhook.active"/></label></div></div></div><div ng-class="{\'has-error\': errors.url || (webhookForm.url.$invalid &amp;&amp; webhookForm.url.$dirty)}" class="form-group row row-short"><label for="url" translate="translate" class="control-label col-sm-2">Target URL</label><div class="col-sm-10"><input id="url" type="text" name="url" ng-model="webhook.url" ng-pattern="&quot;https://.+&quot;" required="required" class="form-control"/><div ng-if="(errors.url || (webhookForm.url.$invalid &amp;&amp; webhookForm.url.$dirty))" class="error red"><strong translate="translate">Must be a valid https URL</strong></div></div></div><div ng-class="{\'has-error\': errors.certificate}" class="form-group row"><label for="certificate" translate="translate" class="control-label col-sm-2">Custom certificate</label><div class="col-sm-10"><span ng-if="!webhook.certificateInfo"><p><span translate="translate">Due to sensitive nature of data that Red Hat Insights operates on HTTPS is required. For cases when your server does not use a certificate signed by a&nbsp;</span><a href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/" translate="translate">trusted authority&nbsp;</a><span translate="translate">a custom certificate can be configured.</span></p><button translate="translate" ng-click="selected.certificateExpanded = true" ng-show="!selected.certificateExpanded" class="btn btn-sm btn-primary">Add certificate</button></span><span ng-if="webhook.certificateInfo &amp;&amp; !selected.certificateExpanded"><div class="content-block content-block-card"><div class="content"><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Common Name (CN):</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.subject.cn}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Organization (O)</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.subject.o}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Issuer Common Name (CN):</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.issuer.cn}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Issuing Organization (O)</label><div class="col-sm-8"><p class="form-control-static">{{webhook.certificateInfo.issuer.o}}</p></div></div><div class="form-group certificate"><label translate="translate" class="col-sm-4 control-label">Valid until</label><div class="col-sm-8"><p ng-class="certDateClass(webhook.certificateInfo.validUntil)" class="form-control-static">{{webhook.certificateInfo.validUntil | moment:\'LLL\'}}</p></div></div></div><div class="footer"><div class="pull-right"><button translate="translate" ng-click="webhook.certificate = null; webhook.certificateInfo = null" ng-show="!selected.certificateExpanded" class="action btn btn-sm btn-open">Remove certificate</button><button translate="translate" ng-click="selected.certificateExpanded = true" ng-show="!selected.certificateExpanded" class="btn btn-sm btn-accent">Edit certificate</button></div></div></div></span><div ng-if="selected.certificateExpanded" class="certificate"><textarea id="certificate" placeholder="Paste certificate in PEM format here" ng-model="webhook.certificate" rows="15" class="form-control"></textarea><div ng-if="errors.certificate" class="error red"><strong translate="translate">Invalid certificate</strong></div></div></div></div><div class="form-group row"><label for="active" translate="translate" class="control-label col-sm-2">Webhook triggers</label><div class="col-sm-10"><div class="radio"><label for="radio_all"><input id="radio_all" type="radio" ng-model="webhook.firehose" ng-value="true"/><span translate="translate">Every event (no filtering)</span></label></div><div class="radio"><label for="radio_selected" class="checkbox_active"><input id="radio_selected" type="radio" ng-model="webhook.firehose" ng-value="false"/><span translate="translate">Only selected event types</span></label></div></div></div><div ng-if="!webhook.firehose" class="form-group row row-short"><div class="col-sm-offset-2 col-sm-10"><div class="row"><div class="col-sm-5"><div ng-repeat="event in eventTypes | limitTo:2 track by event.name" class="checkbox"><label><input type="checkbox" name="active" ng-model="selected.events[event.name]"/>{{event.description}}</label></div></div><div class="col-sm-7"><span ng-repeat="severity in severities track by severity.value" class="checkbox severity"><label><input type="checkbox" name="active" ng-model="selected.severityFilters[severity.value]" ng-disabled="!selected.events[&quot;report:new&quot;] &amp;&amp; !selected.events[&quot;report:resolved&quot;]"/><severity-icon severity="severity.value" type="severity" label="" class="inline-right"></severity-icon>{{severity.label}}</label></span></div></div><div class="row"><div ng-repeat="event in eventTypes | limitTo:eventTypes.length:2 track by event.name" class="checkbox col-sm-12"><label><input type="checkbox" name="active" ng-model="selected.events[event.name]"/>{{event.description}}</label></div></div></div></div></fieldset><div class="btn-group pull-right"><button ui-sref="app.config({tab: &quot;webhooks&quot;})" translate="translate" class="btn btn-sm btn-default">Cancel</button><button ng-click="save()" ng-disabled="webhookForm.$invalid" translate="translate" class="btn btn-sm btn-primary">Save</button></div></form></div>');$templateCache.put('js/states/getting-started/views/getting-started-cloudforms.html','<section id="prerequisites" class="section"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Red Hat CloudForms version 4.0 or later</li><li translate="translate">The CloudForms 4.0 appliance must be registered to either Satellite Server version 6.1.5 or later or to Customer Portal Subscription Management hosted subscription service.</li><li translate="translate">Smart State Analysis capability is enabled for Red Hat Enterprise Linux virtual machines.</li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="registerappliance" class="section"><div class="step-num">3</div><h2 translate="translate" class="section-header">Verify CloudForms Appliance registration</h2><p translate="translate">All appliances configured for the UI role that will be used to view Red Hat Insights reports must be registered for Red Hat updates. In the CloudForms Management Engine UI, navigate to <strong>Configure -&gt; Configuration</strong>. Select a zone and verify that the appropriate appliance is registered.</p><p translate="translate"><strong>Note:&nbsp;</strong>The Satellite Server organization to which the CloudForms appliance is registered must have Insights enabled.</p><img src="static/images/img-cfme-appliance-register.jpg" class="screenshot"/></section><section id="configuresmartstate" class="section"><div class="step-num">4</div><h2 translate="translate" class="section-header">Configure Smart State Analysis</h2><p translate="translate">Configure the Smart State Analysis profile for your appliances to collect the contents of the file <strong>/etc/redhat-access-insights/machine-id</strong></p><img src="static/images/img-cfme-smartstate-config.png" class="screenshot"/></section><section id="register" class="section"><div class="step-num">5</div><h2 translate="translate" class="section-header">Register Your Virtual Machines</h2><p translate="translate"><strong> Important:</strong> All virtual machines must be registered to the same Red Hat account as the CloudForms appliance.</p><p translate="translate">To register virtual machines to Red Hat Insights, you\'ll need to install the Insights client RPM and then register virtual machines to the Insights service.</p><p translate="translate">Install the RPM in the virtual machine:</p><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-insights</code></pre><p translate="translate">Register the system to Insights service:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">These steps can be automated using the configuration tool of your choice.</p></section><section id="runsmartstate" class="section"><div class="step-num">6</div><h2 translate="translate" class="section-header">Run Smart State Analysis on RHEL virtual machines</h2><p translate="translate">A Smart State Analysis must be run once on all RHEL virtual machines you have registered to Red Hat Insights. This step is only required once. If a new virtual machine is created afterward, then a Smart State Analysis need only be run on that new virtual machine after it has been registered to Insights.</p><p translate="translate">For more information on how to configure and run Smart State Analysis, see the official CloudForms &nbsp;<a href="https://access.redhat.com/documentation/en-US/Red_Hat_CloudForms/3.2/html/Insight_Guide/sect-Virtual_Machines.html#sect-Analyzing_Virtual_Machines_and_Templates">documentation.</a></p></section><section id="viewingandmanaging" class="section"><div class="step-num">7</div><h2 translate="translate" class="section-header">View Reports and Manage Red Hat Insights From the CloudForms UI</h2><p translate="translate" class="margin-top">To view Insights reports in the CloudForms UI, navigate to <strong>Red Hat Insights -&gt; Overview</strong>.</p><img src="static/images/img-cfme-insights-overview.png" class="screenshot"/><p translate="translate" class="margin-top">To view and manage Insights rules, navigate to <strong>Red Hat Insights -&gt; Rules</strong>.</p><img src="static/images/img-cfme-insights-rules.png" class="screenshot"/><p translate="translate" class="margin-top">To view the list of systems that are reporting data to Insights, navigate to <strong>Red Hat Insights -&gt; Systems</strong>.</p><img src="static/images/img-cfme-insights-systems.png" class="screenshot"/></section><section id="userroles" class="section"><div class="step-num">8</div><h2 translate="translate" class="section-header">Assign Red Hat Insights to user roles</h2><p translate="translate">By default, only super administrators can view Insights Report and Configuration screens. You can give users who are not super administrators access to the Insights screens by assigning the appropriate features to their roles.</p><img src="static/images/img-cfme-insights-features.png" class="screenshot"/><p translate="translate">In addition to the feature controls above, a user can only view Insights reports on those virtual machines to which the user has permission to view in CloudForms.</p></section>');$templateCache.put('js/states/getting-started/views/getting-started-containers.html','<section id="prerequisites" class="section"></section><h2 translate="translate" class="section-header">Prerequisites for Installing Red Hat Insights</h2><p translate="translate">Before proceeding with installing Red Hat Insights, ensure the following prerequisites are met:</p><ul><li translate="translate">Red Hat Enterprise Linux (RHEL) 7.0 or later host configured to run containers</li><li translate="translate">RHEL firewall rules must allow Red Hat Insights to make outbound connections to https://api.access.redhat.com:443 and https://cert-api.access.redhat.com:443</li></ul><section id="enablerepo"><div class="step-num">1</div><h2 translate="translate" class="section-header">Enable the Red Hat Insights Repository</h2><p translate="translate">To start the installation, the Red Hat Insights repository must be enabled:</p><pre class="code-block code-terminal"><code class="language-shell"> ~ $ sudo yum-config-manager --add-repo </code>http://copr.fedorainfracloud.org/coprs/insights/insights-client-beta/repo/epel-7/insights-insights-client-beta-epel-7.repo</pre></section><section id="install"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights Client</h2><p translate="translate">The following command will install the Red Hat Insights client: </p><pre class="code-block code-terminal"><code>~ $ yum install insights-client -y --nogpgcheck</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Run and Register the Red Hat Insights Client</h2><p translate="translate">The following command will run and register the Insights client:</p><pre class="code-block code-terminal"><code>~ $ sudo insights-client --container --register </code></pre><p translate="translate">After running the Insights client, it will upload initial system and image information to Red Hat Insights. You should be able to immediately see your system and image information in the Insights user interface.</p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">3</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">4</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-direct.html','<section id="activate"><div class="step-num">1</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="install"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights Client and Register Your Systems</h2><p translate="translate">Register your system for updates with Red Hat Subscription Manager to resolve software dependencies:</p><pre class="code-block code-terminal"><code class="language-shell"> # subscription-manager register --auto-attach</code></pre><p translate="translate">Install the Red Hat Insights RPM:</p><pre class="code-block code-terminal"><code class="language-shell"> # yum install redhat-access-insights</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Register the system to Red Hat Insights</h2><p translate="translate"><strong>Note: </strong>Registration with <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic </a> is also available but requires <a href="#classic" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><pre class="code-block code-terminal"><code># redhat-access-insights --register</code></pre><p translate="translate">After registration, the Insights client will upload initial system information to Red Hat Insights. You should be able to immediately see your system in the <a ui-sref="app.inventory">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shorty thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">4</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">5</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-osp.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites for Installing the Red Hat Insights for OpenStack Private Beta</h2><p translate="translate">Before proceeding with installing the Red Hat Insights for OpenStack Private Beta, ensure the following prerequisites are met:</p><ul><li translate="translate">The OpenStack deployment must be Red Hat OpenStack Platform (OSP) 7 or later and set up with the OSP Director.</li><li translate="translate">The OSP Director node (also referred to as the Undercloud in these directions) must have the rhel-7-server-rh-common-rpms repository\nenabled.</li><li translate="translate">Firewall rules must allow the Insights Coordinator to make outbound connections to https://api.access.redhat.com:443 and https://cert-api.access.redhat.com:443</li></ul></section><section id="installrepo"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the Red Hat Insights for OpenStack Private Beta Repositories on the Undercloud</h2><p translate="translate">To start the installation, the Red Hat Insights for OpenStack Private Beta repositories must be installed on the OSP Director node.</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo yum-config-manager --add-repo http://copr.fedorainfracloud.org/coprs/insights/insights-client/repo/epel-7/insights-insights-client-epel-7.repo</code><br/><code class="language-shell"> stack@undercloud $ sudo yum-config-manager --add-repo http://copr.fedorainfracloud.org/coprs/insights/insights-coordinator-rhosp/repo/epel-7/insights-insights-coordinator-rhosp-epel-7.repo</code></pre></section><section id="completeinstallation"><div class="step-num">3</div><h2 translate="translate" class="section-header">Install the Red Hat Insights for OpenStack Private Beta Components</h2><p translate="translate">Follow this set of instructions to install the Insights Coordinator and Client packages. </p><p translate="translate">The following command will install the OpenStack Coordinator on the Undercloud node:</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo yum install insights-coordinator-rhosp --nogpgcheck -y</code></pre><p translate="translate">The following command will install the Client on the Undercloud and Overcloud nodes and register the stack with Red Hat Insights:</p><pre class="code-block code-terminal"><code class="language-shell">stack@undercloud $ sudo redhat-access-insights --register --no-schedule --no-upload --silent</code></pre><p translate="translate">The Client cron job and Coordinator cron jobs cannot be symlinked simultaneously or conflicts will occur. The following command will remove the symlink that will have been created in /etc/cron.daily for the Client:</p><pre class="code-block code-terminal"><code class="language-shell">sudo redhat-access-insights --no-schedule</code></pre><p translate="translate">Edit /etc/redhat-access-insights/redhat-access-insights.conf and add no_schedule=True. This value should already exist at the bottom of the file so it will just need to be uncommented and changed to True, but should it not exist it will need to be added.</p></section><p translate="translate">The following command will configure the Coordinator and Client installations:<pre class="code-block code-terminal"><code class="language-shell">stack@undercloud $ sudo insights-coordinator-rhosp --configure</code></pre><p translate="translate"><strong>Note: </strong>The Coordinator will attempt to auto-configure the communication to Red Hat based on the subscription-management information on the Undercloud node. However, using a proxy and/or using <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic</a>credentials is available but requires <a href="#proxy" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><p translate="translate">If issues arise with these commands, examine /etc/redhat-access-insights/redhat-access-insights.conf and ensure everything is set properly.</p><p translate="translate">Last, run the following command to complete the installation and view any messages from the Coordinator during the execution and upload of the archive:</p><pre class="code-block code-terminal"><code class="language-shell"> stack@undercloud $ sudo insights-coordinator-rhosp --verbose</code></pre><p translate="translate">After the above command finishes, the Insights Coordinator has uploaded the initial deployment information to Red Hat Insights. \nYou should be able to immediately see your stack in the <a href="https://access.redhat.com/insightsbeta" target="_blank">Insights user interface.</a></p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></p><section id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">5</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">6</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></section>');$templateCache.put('js/states/getting-started/views/getting-started-rhv.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites for Installing Red Hat Insights for RHV</h2><p translate="translate">Before proceeding with installing Red Hat Insights on RHV, ensure the following prerequisites are met:</p><ul><li translate="translate">The RHV deployment must be Red Hat Enterprise Virtualization (RHV) 3.5 or later and RHV Manager must be running Red Hat Enterprise Linux 6.7 or later.</li><li translate="translate">Firewall rules must allow Red Hat Insights to make outbound connections to https://api.redhat.com:443 and https://cert-api.access.redhat.com:443 </li><li translate="translate">Ensure that the RHV Manager can SSH into all individual hypervisor nodes, and that the SSH fingerprints have been accepted for all hypervisor nodes. The manager must have access to all of the individual hypervisors via public key access (defined in the configuration files, or by running --configure).</li></ul></section><section id="installrepo"><div class="step-num">2</div><h2 translate="translate" class="section-header">Install the repositories</h2><p translate="translate">To start the installation, the Red Hat Insights repositories must be installed.</p><p translate="translate">Run the following commands on the RHV Manager to obtain the Red Hat Insights repositories:</p><pre class="code-block code-terminal"><code class="language-shell"> sudo yum-config-manager --add-repo </code>https://copr.fedorainfracloud.org/coprs/insights/insights-client/repo/epel-6/insights-insights-client-epel-6.repo<br/><code class="language-shell"> sudo yum-config-manager --add-repo </code>http://copr.fedorainfracloud.org/coprs/insights/insights-coordinator-rhev/repo/epel-6/insights-insights-coordinator-rhev-epel-6.repo</pre></section><section id="installclient"><div class="step-num">3</div><h2 translate="translate" class="section-header">Install the Red Hat Insights client</h2><p translate="translate">The following command installs Red Hat Insights on the RHV Manager, which will collect information from all the virtualization hosts in the environment. </p><p translate="translate"><strong>Note: </strong>Registration with <a href="https://access.redhat.com/solutions/11216" target="_blank">Red Hat Network Classic </a>is also available but requires <a href="#classic" relative-hash="relative-hash" permalink="permalink">additional configuration steps.</a></p><pre class="code-block code-terminal"><code class="language-shell"> sudo yum install insights-coordinator-rhev --nogpgcheck</code></pre></section><section id="register"><div class="step-num">3</div><h2 translate="translate" class="section-header">Registration</h2><p translate="translate">When configuring your RHV Manager for Red Hat Insights, be sure to have your RHV Manager API and Hypervisor SSH information ready; Red Hat Insights will guide you through the configuration.</p><pre class="code-block code-terminal"><code># sudo insights-coordinator-rhev --configure</code></pre><p translate="translate">Once configured, this next step installs Red Hat Insights on the RHV Manager and all of the hypervisor nodes.</p><pre class="code-block code-terminal"><code># sudo insights-coordinator-rhev --verbose</code></pre><p translate="translate">After registration, the Insights client will upload initial system metadata to Red Hat Insights. You should be able to immediately see your system in the Insights user interface.</p><p translate="translate">The initial analysis results will be available shortly thereafter.</p></section><div id="configOptional" class="content-block"><h2 translate="translate" class="section-header">Optional Configuration Steps</h2><div class="gray-dark"><section id="proxy"><div class="step-num">5</div><h3 translate="translate" class="section-header">Configure Insights Client to use an HTTP proxy</h3><p translate="translate">If you have a web-based proxy between your system and the Internet, you can configure the Insights client to connect through it using the following commands on the RHV Manager:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Optional proxy configuration. Example: http://user:pass@192.168.100.50:8080</code><br/><code>proxy=</code><br/></pre></section><section id="classic"><div class="step-num">6</div><h3 translate="translate" class="section-header">Red Hat Network Classic Instructions</h3><p translate="translate">If you\'ve registered your system with Red Hat Network Classic you\'ll also need to add a username and password using the following commands on the RHV Manager:</p><pre class="code-block code-terminal"><code class="language-shell"># vi /etc/redhat-access-insights/redhat-access-insights.conf</code></pre><pre class="code-block code-terminal"><code># Red Hat Customer Portal Credentials</code><br/><code>username=</code><br/><code>password=</code><br/></pre></section></div></div>');$templateCache.put('js/states/getting-started/views/getting-started-sat5.html','<section id="prerequisites"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Ensure that you\'re running Satellite 5.7.</li><li translate="translate">Install redhat-access-plugin-sat5:</li><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-plugin-sat5</code></pre><li translate="translate">Restart Satellite</li><pre class="code-block code-terminal"><code class="language-shell"># rhn-satellite restart</code></pre><li translate="translate">Satellite Organizations with Insights must be running in Connected mode. Any firewalls or proxies through which the Satellite server communicates to Red Hat must allow https communications to <a href="https://access.redhat.com">https://access.redhat.com</a></li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="enable"><div class="step-num">3</div><h2 translate="translate" class="section-header">Enable Red Hat Insights</h2><p translate="translate">Log in to the Satellite Administrator account. Navigate to the <strong>Admin --&gt; Insights</strong> page. Before enabling Insights, click \'Test Connection to Red Hat Insights API\'. If the test is successful you will see a green check circle next to the button. Otherwise you will see a red circle and a log will appear. When the test is successful, select "Enable Insights Service" then click the "Update" button. The Red Hat Insights GUI pieces will now appear in Satellite.</p><img src="static/images/img-sat5-step2-admin.png" class="screenshot"/></section><section id="rpm"><div class="step-num">4</div><h2 translate="translate" class="section-header">Install RPM on Systems</h2><p translate="translate">There are multiple ways to automate this process. See the <a href="#register" relative-hash="relative-hash" permalink="permalink">Register Systems</a> section for details.</p><p translate="translate">Navigate to the <strong>Systems --&gt; Insights --&gt; Setup</strong> tab as an Organization Administrator. Select the systems to install the redhat-access-insights RPM onto, then click "Apply".</p><img src="static/images/img-sat5-step3-setup.png" class="screenshot"/><p translate="translate">Check the status of the RPM installation by navigating to the <strong>Schedule --&gt; Pending Actions</strong> page.</p><img src="static/images/img-sat5-step3-pending.png" class="screenshot"/><p translate="translate">This could take some time depending on your Satellite configuration. <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/5.7/html/Installation_Guide/Enabling_Push_to_Clients.html">Enabling push to clients</a> will speed up the install. When the RPM is installed you are ready to move on to the next step.</p><img src="static/images/img-sat5-step3-completed.png" class="screenshot"/></section><section id="register"><div class="step-num">5</div><h2 translate="translate" class="section-header">Register Your Systems</h2><p translate="translate">To register a system manually:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">There are multiple ways to automate this process including Red Hat Satellite\'s built-in<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/5.7/html/Getting_Started_Guide/sect-Managing_Configuration_Channels.html" target="_blank"> Configuration Management Channels.</a></p><p translate="translate">We\'ve also provided several options for popular configuration management tools below:</p><ul><li><a href="https://forge.puppetlabs.com/lphiri/access_insights_client" target="_blank" translate="translate">Puppet</a></li><li><a href="https://supermarket.chef.io/cookbooks/redhat-access-insights-client" target="_blank" translate="translate">Chef</a></li><li><a href="https://galaxy.ansible.com/list#/roles/4098" target="_blank" translate="translate">Ansible</a></li></ul></section><section id="validate"><div class="step-num">6</div><h2 translate="translate" class="section-header">Validate Data was Reported</h2><p translate="translate">Shortly after you execute `redhat-access-insights --register` on at least one machine, navigate to <strong>Systems --&gt; Overview</strong> in Satellite. Find the system you registered. The status should either be a green check or a red exclamation point.</p><img src="static/images/img-sat5-step5-systems.png" class="screenshot"/><p translate="translate">If you see a red exclamation, click it to see the reports about your system.</p><img src="static/images/img-sat5-step5-reports.png" class="screenshot"/><p translate="translate">To view an overview of all system reports, navigate to <strong>Systems --&gt; Insights</strong>.</p><img src="static/images/img-sat5-step5-overview.png" class="screenshot"/></section>');$templateCache.put('js/states/getting-started/views/getting-started-sat6.html','<section id="prerequisites" class="section"><div class="step-num">1</div><h2 translate="translate" class="section-header">Prerequisites</h2><ul><li translate="translate">Ensure that you\u2019re running the latest Satellite 6.1.</li><li translate="translate">Ensure that you\u2019ve synchronized the latest RHEL 6.7 and RHEL 7.1.z RPMs to your Satellite, and that they are available to your clients.</li><li translate="translate">In order for the Red Hat Satellite Server to be an Insights client, please follow the <a ui-sref="info.getting-started.direct">direct</a> registration instructions and run the following command prior to installing the redhat-access-insights client.</li><pre class="code-block code-terminal"><code class="language-shell"># yum update python-requests</code></pre><li translate="translate">A manifest must be downloaded and imported into the Satellite Organization in which Insights will be enabled.\nFor more information on managing manifests, see the official Satellite 6<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/Installation_Guide/chap-Red_Hat_Satellite-Installation_Guide-Populating_Red_Hat_Satellite_with_Content.html#sect-Red_Hat_Satellite-Installation_Guide-Setting_up_a_Manifest"> documentation.</a></li><li translate="translate">Satellite Organizations with Insights must be running in Connected mode. Any firewalls or proxies through which the Satellite server communicates to Red Hat must allow https communications to <a href="https://cert-api.access.redhat.com">https://cert-api.access.redhat.com</a></li></ul></section><section id="activate"><div class="step-num">2</div><h2 translate="translate" class="section-header">Activate your evaluation</h2><p translate="translate">If you have purchased an Insights subscription, please skip this step and proceed to the next step.</p><p translate="translate">To begin using Red Hat Insights, please visit <a href=\'https://access.redhat.com/insights/evaluation\'>https://access.redhat.com/insights/evaluation</a> to activate any available evaluations associated with your account. This step must be completed prior to any system registration with Insights.</p></section><section id="verifyconnection" class="section"><div class="step-num">3</div><h2 translate="translate" class="section-header">Verify Connection to Red Hat Insights</h2><p translate="translate">Verify that the Satellite server can successfully communicate with Red Hat Insights. In the Satellite UI, navigate to <strong>Insights -&gt; Manage</strong>. Verify that the engine connection status is "Connected" and that the account number displayed is correct for your organization.</p><img src="static/images/img-sat6-step2-manage.jpg" class="screenshot"/></section><section id="register" class="section"><div class="step-num">4</div><h2 translate="translate" class="section-header">Register Your Systems</h2><p translate="translate">To register Satellite clients to Red Hat Insights, you\'ll need to install the client rpm and then register the system.</p><p translate="translate">Install the RPM:</p><pre class="code-block code-terminal"><code class="language-shell"># yum install redhat-access-insights</code></pre><p translate="translate">Register the system:</p><pre class="code-block code-terminal"><code class="language-shell"># redhat-access-insights --register</code></pre><p translate="translate">If you are using Red Hat Satellite\u2019s configuration management provided by Puppet this process can be automated by applying the preinstalled Puppet class \'access_insights_clients\'. This class can be imported from the Puppet Master into the appropriate Puppet environment and applied to hosts that you wish to subscribe to Red Hat Insights.\nFor more information on using on Puppet with Satellite 6, refer to the official <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/User_Guide/chap-Red_Hat_Satellite-User_Guide-Configuring_the_Provisioning_Environment.html#sect-Red_Hat_Satellite-User_Guide-Creating_a_Host_Group">documentation.</a></p></section><section id="viewingandmanaging" class="section"><div class="step-num">5</div><h2 translate="translate" class="section-header">Viewing Reports and Managing Access From the Satellite UI</h2><p translate="translate" class="margin-top">To view Insights reports, navigate to <strong>Insights -&gt; Overview</strong> in the Satellite 6 UI.</p><img src="static/images/img-sat6-step5-overview.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view and manage Insights rules, navigate to <strong>Insights -&gt; Rules</strong>.</p><img src="static/images/img-sat6-step5-rules.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view the list of systems that are reporting data to Red Hat Insights, navigate to <strong>Insights -&gt; Systems</strong>.</p><img src="static/images/img-sat6-step5-systems.jpg" class="screenshot"/><p translate="translate" class="margin-top">To view connection status or enable/disable Red Hat Insights globally for an Organization, navigate to <strong>Insights -&gt; Manage</strong>.</p><img src="static/images/img-sat6-step5-manage.jpg" class="screenshot"/></section><section id="userroles" class="section"><div class="step-num">6</div><h2 translate="translate" class="section-header">Assign Red Hat Insights Roles to Users</h2><p translate="translate">By default, only administrators can view Insights Report and Configuration screens. You can give users who are not administrators access to the Insights screens by assigning them the appropriate roles as follows.</p><ul><li translate="translate">To give users access to all Insights screens, including the "Manage" screen, assign them the "Insights Admin" role. In addition, users must be granted the "view_content_host" permission.</li><li translate="translate">To give users Insights report and rule viewing access, assign them the "Insights Viewer" role. In addition, users must be granted the "view_content_host" permission.</li></ul><p translate="translate">For more information on roles refer to the official Satellite 6 <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.1/html/User_Guide/chap-Red_Hat_Satellite-User_Guide-Users_and_Roles.html">documentation.</a></p></section>');$templateCache.put('js/states/getting-started/views/getting-started.html','<div class="container getting-started-page-intro text-center"><div class="row"><div class="col-sm-12"><insights-logo></insights-logo></div><div class="col-sm-8 col-sm-offset-2"><insights-tagline></insights-tagline></div></div></div><div id="getting-started" class="band getting-started info-page fixed-scroll-content"><div class="container"><div class="row flex-container"><div id="navvy-container" class="col-md-3 hidden-xs hidden-sm navvy-container"><div id="navvy" data-sticky-nav="" parent="#getting-started" child="#navvy" sibling="#info" offset="40" class="navvy"><div class="header"><h2 translate="translate">Getting Started</h2></div><div class="content"><nav><ul><li ng-repeat="s in sections()" class="fade-in ng-animate-enabled"><a ng-href="{{s.id}}" du-scrollspy="du-scrollspy" relative-hash="relative-hash" permalink="permalink"><span class="arrow"></span>{{s.text | translate}}</a></li></ul></nav></div></div></div><div id="info" class="col-md-9 info"><div class="content"><getting-started-tabs></getting-started-tabs><div ui-view="" class="ng-animate-enabled fade-in"></div><section class="section"><h2 translate="translate" class="section-header">Additional resources</h2><a ui-sref="info.info" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Learn More about Red Hat Insights</a><a ui-sref="login" translate="translate" class="btn btn-app cta-link cta-link-sm cta-link-white info-links">Log in to Red Hat Insights</a></section></div></div></div></div></div>');$templateCache.put('js/states/hidden/components/components.html','<div class="components"><div class="page-header"><h1 class="page-title">Material Demo</h1></div><div id="popupcontainer" ng-cloak="ng-cloak" class="content-wrap"><md-content><md-tabs md-dynamic-height="" md-border-bottom=""><md-tab label="Jade/HTML Only"><md-content class="md-padding"><h1 class="md-display-2">Jade/HTML Only</h1><hr/><!-- --- BUTTONS CARD --><md-card class="md-padding"><md-header><h3>Buttons</h3></md-header><div class="row"><div class="col-md-12"><h4>Flat Buttons</h4><div class="col-md-3"><md-button>Basic</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button</code></pre></div><div class="col-md-3"><md-button md-no-ink="md-no-ink" class="md-primary">Primary (No Ink)</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary(md-no-ink)</code></pre></div><div class="col-md-3"><md-button ng-disabled="true" class="md-primary">Disabled</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary(ng-disabled="true")</code></pre></div><div class="col-md-3"><md-button class="md-warn">Warning</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-warn</code></pre></div></div></div><div class="row"><div class="col-md-12"><h4>Raised Buttons</h4><div class="col-md-3"><md-button class="md-raised">Basic</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised</code></pre></div><div class="col-md-3"><md-button md-no-ink="md-no-ink" class="md-raised md-primary">Primary (No Ink)</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-primary(md-no-ink)</code></pre></div><div class="col-md-3"><md-button ng-disabled="true" class="md-raised md-primary">Disabled</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-primary(ng-disabled="true")</code></pre></div><div class="col-md-3"><md-button class="md-raised md-warn">Warning</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-raised.md-warn</code></pre></div></div></div></md-card><!-- --- FORMS--><md-card class="md-padding"><md-header><h3>Form Example</h3></md-header><div class="row"><div class="col-md-12"><h4>Checkbox</h4></div></div><div class="row"><div class="col-md-4"><md-checkbox aria-label="Checkbox 1">Checkbox 1: Default</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox(aria-label=\'Checkbox 1\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox ng-model="data.cb2" aria-label="Checkbox 2" ng-true-value="\'yup\'" ng-false-value="\'nope\'" flex="" class="md-warn md-align-top-left">Checkbox 2 (md-warn) <br/><span> </span></md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-warn(aria-label=\'Checkbox 2\', ng-true-value="\'yup\'", ng-false-value="\'nope\'")</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox ng-disabled="true" aria-label="Disabled checkbox" ng-model="data.cb3">Checkbox: Disabled</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox(ng-disabled=\'true\', aria-label=\'Disabled checkbox\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-no-ink="" aria-label="Checkbox No Ink" class="md-primary">Checkbox (md-primary): No Ink</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-no-ink=\'\', aria-label=\'Checkbox No Ink\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-indeterminate="" aria-label="Checkbox Indeterminate" class="md-primary">Checkbox: Indeterminate</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-indeterminate=\'\', aria-label=\'Checkbox Indeterminate\')</code></pre></div></div><div class="row"><div class="col-md-4"><md-checkbox md-indeterminate="" aria-label="Checkbox Disabled Indeterminate" ng-disabled="true" class="md-primary">Checkbox: Disabled, Indeterminate</md-checkbox></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-checkbox.md-primary(md-indeterminate=\'\', aria-label=\'Checkbox Disabled Indeterminate\', ng-disabled=\'true\')</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Inputs</h4></div></div><div class="row"><div class="col-md-4"><md-input-container class="md-block"><label>First Name</label><input/></md-input-container></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-input-container.md-block\n label [insert label]\n input</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Radio Buttons</h4></div></div><div class="row"><div class="col-md-4"><md-radio-group><md-radio-button value="Foo" class="md-primary">Foo</md-radio-button><md-radio-button value="Bar" class="md-accent">Bar</md-radio-button><md-radio-button value="Insights" class="md-warn">Insights</md-radio-button></md-radio-group></div><div class="col-md-8"><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-radio-button.md-primary(value="Foo") Foo\nmd-radio-button.md-accent(value="Bar") Bar\nmd-radio-button.md-warn(value="Insights") Insights</code></pre></div></div></md-card><!-- --- LOADING ICON CARD --><md-card class="md-padding"><md-header><h3>Loading Icons</h3></md-header><div class="row"><div class="col-md-12"><p>All loading icons can be configured to load based on percentage (determinate)</p></div></div><div class="row"><div class="col-md-12"><h4>Progress Linear</h4><md-progress-linear md-mode="indeterminate"></md-progress-linear><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-progress-linear(md-mode="indeterminate")</code></pre></div></div><div class="row"><div class="col-md-12"><h4>Progress Circular</h4><md-progress-circular md-mode="indeterminate"></md-progress-circular><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-progress-circular(md-mode="indeterminate")</code></pre></div></div></md-card></md-content></md-tab><!-- --- Second Tab--><md-tab label="Needs Javascript"><md-content class="md-padding"><h1 class="md-display-2">Needs Javascript</h1><!-- --- DIALOG CARD --><md-card class="md-padding"><md-header><h3>Dialog Box</h3></md-header><div class="row"><div class="col-md-12"><md-button ng-click="showConfirm($event)" class="md-primary md-raised">Confirm Dialog</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary.md-raised(ng-click="showConfirm($event)") Comfirm Dialog</code></pre><pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">function [file-controller]Ctrl(\n $scope, \n $mdDialog) {\n $scope.status = \' \';\n $scope.customFullscreen = false;\n $scope.showConfirm = function (ev) {\n $mdDialog.show(\n .parent(angular.element(document.querySelector(\'#popupContainer\')))\n .clickOutsideToClose(true)\n .title(\'This is a title\')\n .textContent(\'This is the content\')\n .ariaLabel(\'Confirm Dialog Demo\')\n .ok(\'Confirm\')\n .cancel(\'Cancel\');\n .targetEvent(ev)\n );\n };\n}</code></pre></div></div></md-card><!-- --- Toast CARD --><md-card class="md-padding"><md-header><h3>Toasts</h3></md-header><div class="row"><div class="col-md-12"><md-button ng-click="showToast(\'top\', \'left\', \'fail\')" class="md-primary md-raised">Top Left Fail Toast</md-button><md-button ng-click="showToast(\'bottom\', \'right\', \'success\')" class="md-primary md-raised">Bottom Right Success Toast</md-button><pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">md-button.md-primary.md-raised(ng-click="showToast(\'top\', \'left\', \'fail\')") Top Left Fail Toast\n \nmd-button.md-primary.md-raised(ng-click="showToast(\'bottom\', \'right\', \'success\')") Bottom Right Success Toast</code></pre><pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">function [file-controller]Ctrl(\n $scope, \n $mdToast) {\n $scope.showToast = function (h,v,state) {\n $mdToast.show(\n $mdToast.simple()\n .content(\'Toast Content!\')\n .hideDelay(\'3000\')\n .position(h + \' \' + v)\n .toastClass(\'stickyToast\' + \' \' + state)\n );\n }</code></pre></div></div></md-card><!-- Swipe Card--><md-card class="md-padding"><md-header><h3>Swiping</h3></md-header><div class="row"><div class="col-md-12"><md-card md-swipe-up="onSwipeUp()" class="demo-swipe text-center"><h4 class="no-select">Swipe Me Up</h4></md-card></div></div><div class="row"><div class="col-md-6"> <pre class="code-block code-terminal"><div class="code-type-jade"></div><code class="code">[.element](md-swipe-up="onSwipeUp()")\n h4 Swipe Me Up</code></pre></div><div class="col-md-6"> <pre class="code-block code-terminal"><div class="code-type-js"></div><code class="code">$scope.onSwipeUp = function () {\n window.alert(\'You swiped up!!\');\n};</code></pre></div></div></md-card></md-content></md-tab><md-tab label="three"><md-content class="md-padding"><h1 class="md-display-2">Tab Three</h1><p>Integer turpis erat, porttitor vitae mi faucibus, laoreet interdum tellus. Curabitur posuere molestie dictum. Morbi eget congue risus, quis rhoncus quam. Suspendisse vitae hendrerit erat, at posuere mi. Cras eu fermentum nunc. Sed id ante eu orci commodo volutpat non ac est. Praesent ligula diam, congue eu enim scelerisque, finibus commodo lectus.</p></md-content></md-tab></md-tabs></md-content></div></div>');$templateCache.put('js/states/pages/views/402.html','<div class="page"><section><h1> <i class="fa fa-lock"> </i> 402 <small> No Red Hat Account Found</small></h1></section></div>');$templateCache.put('js/states/pages/views/403.html','<div class="page"><section><h1> <i class="fa fa-lock"> </i> 403 <small> Forbidden</small></h1></section></div>');$templateCache.put('js/states/topics/views/edit-topics.html','<div class="page topic-form"><div class="row margin-top"></div><div class="rha-notifications"></div><form novalidate="novalidate" name="topicForm" class="form-horizontal"><section><h2>Topic details</h2><div ng-class="{\'has-error\': topicForm.title.$invalid &amp;&amp; topicForm.title.$dirty}" class="form-group"><label for="title" class="control-label col-sm-2">Title</label><div class="col-sm-10"><input id="title" type="text" name="title" ng-model="topic.title" required="required" class="form-control"/></div></div><div ng-class="{\'has-error\': topicForm.slug.$invalid &amp;&amp; topicForm.slug.$dirty}" class="form-group"><label for="title" class="control-label col-sm-2">Slug</label><div class="col-sm-10"><div class="input-group"><div class="input-group-addon"><strong>/actions/</strong></div><input id="slug" type="text" name="slug" ng-model="topic.slug" class="form-control"/></div></div></div><div class="form-group"><label for="priority" class="control-label col-sm-2">Priority</label><div class="col-sm-1"><p id="priority" class="form-control-static">{{topic.priority + 1}}</p></div><div class="col-sm-9"><p class="form-control-static">Priority is determined from the order of topics in the &nbsp;<a ui-sref="app.admin-topic">topic admin table</a></p></div></div><div class="form-group"><label class="control-label col-sm-2">Topic listing behavior<i tooltip="Controls when this topic shows up for a customer in the topic list (actions page)." class="fa fa-question-circle inline-left"></i></label><div class="col-sm-10"><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="\'always\'"/>Always<i tooltip="This topic will be shown always, no matter if customer\'s systems are affected or not. The topic content should use interpolation and conditionals to react to different scenarios (e.g. there are no hits, user has 0 systems registered, product with 0 hits selected, user ignored certain rules, ...)" class="fa fa-question-circle inline-left"></i></label><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="&quot;has_hits&quot;"/>Systems affected<i tooltip="This topic will only be shown to a customer if at least one of their systems is affected. More precisely, the topic is shown if any of the active non-ignored rules associated with this topic (see below) has hits (unresolved actions) on customer\'s systems. If the customer used the product filter to select a particular product, the topic is only shown if there are hits for the selected product." class="fa fa-question-circle inline-left"></i></label><label class="radio-inline"><input type="radio" ng-model="topic.listed" ng-value="&quot;never&quot;"/>Never<i tooltip="This topic is never shown in the topic list. It can still be accessed by a direct link. It can also be used for backing a widget. Implicit topics (based on severity or category) will typically use this option." class="fa fa-question-circle inline-left"></i></label></div></div><div ng-class="{\'has-error\': error.content}" class="form-group"><label for="content" class="control-label col-sm-2">Content</label><div class="col-sm-10"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no><yes-no yes="true" text="doT"></yes-no></div><topic-admin-help-bar text-area="content"></topic-admin-help-bar><textarea id="content" placeholder="Topic content" ng-model="topic.content" rows="20" class="form-control content"></textarea><div ng-show="error.content" class="error red"><strong>{{error.content}}</strong></div><button ng-click="preview(topic, false, true)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-secondary pull-right"><span class="icon-inline"><i class="fa fa-picture-o"></i></span>Preview</button></div></div><div ng-class="{\'has-error\': error.summary}" class="form-group"><label for="summary" class="control-label col-sm-2">Summary</label><div class="col-sm-10"><div class="pull-right"><yes-no yes="true" text="markdown"></yes-no><yes-no yes="true" text="doT"></yes-no></div><topic-admin-help-bar text-area="summary"></topic-admin-help-bar><textarea id="summary" placeholder="Topic summary" ng-model="topic.summary" rows="10" class="form-control summary"></textarea><div ng-show="error.summary" class="error red"><strong>{{error.summary}}</strong></div><button ng-click="preview(topic, true, false)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-secondary pull-right"><span class="icon-inline"><i class="fa fa-picture-o"></i></span>Preview</button></div></div><hr/></section><section><h2>Rule selection</h2><p>There are multiple ways of associating rules with this topic. Choose the one that best suits the type of this topic.</p><div ng-class="{selected: ruleBinding === \'tagged\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="tagged" class="col-sm-2"/><label ng-click="ruleBinding = \'tagged\'">Tagged</label></div><div class="col-sm-10"><ui-select ng-model="topic.tag" append-to-body="false" ng-disabled="ruleBinding !== \'tagged\'" on-select="updateTaggedRules()"><ui-select-match placeholder="Select a tag" class="form-control ui-select-match">{{$select.selected}}</ui-select-match><ui-select-choices repeat="tag in (availableTags | filter: $select.search)" class="ui-select-choices">{{tag}}</ui-select-choices></ui-select><p class="form-control-static"><span translate="translate" translate-n="taggedRules.length" translate-plural="There are {{$count}} rules currently tagged with this tag.">There is 1 rule currently tagged with this tag.</span><span>&nbsp;This number may change in the future if additional rules are tagged with &nbsp;<strong ng-show="topic.tag">{{topic.tag}}.</strong><strong ng-hide="topic.tag">the tag.</strong></span><span>(or if the tag is removed from any of these rules)</span></p><rule-list-simple rules="taggedRules" on-select="selectedRule = rule.rule_id" order="[\'-severityNum\', \'-count\']"></rule-list-simple><p class="form-control-static">If you select an existing tag then all the rules tagged with this tag become part of this topic.\nThis binding is dynamic so if more rules are tagged by this tag in the future, these rules will become part of this topic.\nYou can also create a&nbsp;<a ui-sref="app.admin-rule-tags">new tag</a></p></div></div><div ng-class="{selected: ruleBinding === \'explicit\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="explicit" class="col-sm-2"/><label ng-click="ruleBinding = \'explicit\'">Explicit</label></div><div class="col-sm-10"><ui-select ng-model="select.rule" append-to-body="false" ng-disabled="ruleBinding !== \'explicit\'" on-select="addRule($item)"><ui-select-match placeholder="Add a rule" class="form-control ui-select-match">{{$select.selected.description}}</ui-select-match><ui-select-choices repeat="rule in (getAvailableRules() | filter: {description: $select.search}) | orderBy:[\'-severityNum\', \'-date\'] track by rule.rule_id" class="ui-select-choices"><div class="title">{{rule.description}}</div><all-severity-icons rule="rule"></all-severity-icons></ui-select-choices></ui-select><p class="form-control-static">You can explicitly pick one or multiple rules.</p><p ng-hide="topic.rules.length">No rules selected</p><rule-list-simple rules="topic.rules" on-select="selectedRule = rule.rule_id" on-delete="removeRule(rule)"></rule-list-simple></div></div><div ng-class="{selected: ruleBinding === \'implicit\'}" class="form-group"><div class="col-sm-2"><input type="radio" name="ruleBinding" ng-model="ruleBinding" value="implicit" class="col-sm-2"/><label ng-click="ruleBinding = \'implicit\'" class="text-muted">Implicit</label></div><div class="col-sm-10"><div class="row"><div class="col-sm-5"><simple-select model="topic.category" options="categories" disabled="ruleBinding !== \'implicit\'"></simple-select></div><div class="col-sm-2 text-center"><strong>AND</strong></div><div class="col-sm-5"><simple-select model="topic.severity" options="severities" disabled="ruleBinding !== \'implicit\'"></simple-select></div></div><div class="row"><div class="col-sm-12"><p ng-hide="implicitRules.length" class="form-control-static">No rules with this category</p><p class="form-control-static"><rule-list-simple rules="implicitRules" on-select="selectedRule = rule.rule_id" order="[\'-severityNum\', \'-count\']"></rule-list-simple></p><p class="form-control-static text-muted">Binds all rules that are of certain severity, belong to a certain category or combination of there of.\nThis binding is dynamic so if more rules are added for this category/severity in the future, these rules will become part of this topic.</p></div></div></div></div><hr/></section><div class="btn-group pull-right"><button ng-click="goBack()" class="btn btn-sm btn-default">Cancel</button><button ng-click="update(topic)" ng-disabled="topicForm.$invalid" class="btn btn-sm btn-primary">Save</button></div></form></div>');$templateCache.put('js/states/topics/views/topic-admin.html','<div class="page"><div class="row margin-top"></div><div class="rha-notifications"></div><section><h2 class="push-top-narrow">Topic administration</h2><table class="table table-striped table-bordered ng-table"><thead><tr><th>Title&nbsp;<i tooltip="User-facing name of this topic" class="fa fa-question-circle"></i></th><th>URL</th><th>Rules</th><th>Visibility<i tooltip="Controls when this topic shows up for a customer in the topic list (actions page)." class="fa fa-question-circle inline-left"></i></th><th>Actions</th></tr></thead><tbody><tr ng-repeat="topic in topics track by topic.id" ng-show="!loader.loading" class="ng-cloak"><td><a ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id})">{{topic.title}}</a></td><td><a ui-sref="app.topic({id: topic.slug ? topic.slug : topic.id})">/actions/{{topic.slug ? topic.slug : topic.id}}</a></td><td>{{topic.rules.length}} ({{topic.ruleBinding}})<span ng-show="topic.ruleBinding === \'tagged\'">&nbsp;-&nbsp;<em>{{topic.tag}}</em></span><span ng-show="topic.ruleBinding === \'implicit\'">&nbsp;-&nbsp;<em ng-if="topic.category">{{topic.category}}</em><em ng-if="topic.category &amp;&amp; topic.severity">,&nbsp;</em><em ng-if="topic.severity">{{topic.severity}}</em></span></td><td><span ng-if="topic.listed === &quot;always&quot;">Always</span><span ng-if="topic.listed === &quot;has_hits&quot;">If systems affected</span><span ng-if="topic.listed === &quot;never&quot;">Never</span><span ng-show="topic.hidden" class="icon-inline"><i tooltip="This topic is not published. Only internal users can see it. Use the actions column to publish this topic." class="red fa fa-eye-slash inline-left"></i></span></td><td><span ng-show="topic.hidden" ng-click="hide(topic, false)" class="icon-inline"><i tooltip="Publish this topic" class="fa fa-eye"></i></span><span ng-hide="topic.hidden" ng-click="hide(topic, true)" class="icon-inline"><i tooltip="Hide this topic" class="fa fa-eye-slash"></i></span><span class="icon-inline"><a ui-sref="app.edit-topic({id: topic.id})" tooltip="Edit this topic"><i class="fa fa-pencil-square-o pointer"></i></a></span><span class="icon-inline"><i ng-click="delete(topic)" tooltip="Remove this topic" class="fa fa-remove"></i></span><a ng-click="move(topic, true)" ng-disabled="topic.priority === 0" tooltip="Move this topic higher in the priority list. This affects the order in which topics are presented to customers." class="icon-inline"><i class="fa fa-arrow-up"></i></a><a ng-click="move(topic, false)" ng-disabled="topic.priority === topics.length - 1" tooltip="Move this topic lower in the priority list. This affects the order in which topics are presented to customers." class="icon-inline"><i class="fa fa-arrow-down"></i></a></td></tr><tr ng-show="loader.loading"><td colspan="5"><div class="spinner spinner-lg"></div></td></tr><tr ng-show="!loader.loading &amp;&amp; !topics.length"><td colspan="5" class="text-center">No topics</td></tr></tbody><tfoot><tr><td colspan="5"><button ng-click="newTopic()" class="btn btn-secondary btn-sm pull-right">New topic</button></td></tr></tfoot></table></section></div>');$templateCache.put('js/states/topics/views/topic-list.html','<div class="actions-page actions-back"><page-header title="Actions" icon="fa-file-text"></page-header><topic-rule-filters ng-hide="loading"></topic-rule-filters><div ng-hide="loading" class="content-wrap"><actions-breadcrumbs ng-hide="loading" class="actions-breadcrumbs"></actions-breadcrumbs><section class="gray section-topic-details"><topic-details ng-hide="loading" topic="topic"></topic-details></section><section class="table-utilities"><div class="row"><div class="col-xs-7 col-sm-5"><search-box placeholder="{{\'Search rules\' | translate}}" on-search="search.doFilter(model)"></search-box></div><div class="col-xs-5 col-sm-7 text-right"><list-type></list-type></div></div></section><section class="section-rules-group-content"><topic-rule-list ng-if="!loading" topic="topic"></topic-rule-list></section></div><!-- Spinner--><div ng-show="loading" class="margin-top text-center"><div class="spinner spinner-lg"></div></div></div>');$templateCache.put('js/components/overview/widgets/goals/goalsLite.html','<div id="goals-lite"><div ng-if="loading" class="row"><div class="col-sm-12 block-lg"><div class="spinner spinner-lg"></div></div></div><div ng-if="!loading" class="goals-lite"><div class="info-box"><div ng-if="systemCount &gt; 0" class="row"><div class="col-sm-12 block-lg"><goals-gauge ng-init="buildGauge({getGaugeMax: getMaxFreeSystems, getGaugeNumber: getSystemCount})"></goals-gauge><div class="info"><h4 translate="translate">Systems Registered</h4><div ng-if="!systemLimitReached" class="free"><span translate="translate">{{maxFreeSystems - systemCount}} more Insights entitlements available&nbsp;</span><br/><span>Your evaluation will expire on {{expiration}}</span></div><div ng-if="systemLimitReached" class="free full"><span translate="translate">Congratulations! You have registered all available systems.</span></div></div></div><div ng-if="securityErrors" class="col-sm-6 block-md"><div class="count circle">{{securityErrors}}</div><h4 translate="translate">Protect yourself!</h4><p translate="translate">Fix all of your<br/>{{securityErrors}} security issues</p><a translate="translate" ui-sref="app.topic({id: \'security\'})" class="cta-link">View security issues</a></div><div ng-if="!securityErrors" class="col-sm-6 block-md"><div class="check circle"><i class="fa fa-check"></i></div><h4 translate="translate">You have no high severity security errors</h4></div><div ng-if="stabilityErrors" class="col-sm-6 block-md"><div class="count circle">{{stabilityErrors}}</div><h4 translate="translate">Increase your uptime!</h4><p translate="translate">Fix all of your<br/>{{stabilityErrors}} stability issues</p><a translate="translate" ui-sref="app.topic({id: \'stability\'})" class="cta-link">View stability issues</a></div><div ng-if="!stabilityErrors" class="col-sm-6 block-md"><div class="check circle"><i class="fa fa-check"></i></div><h4 translate="translate">You have no high severity stability errors</h4></div></div></div><div ng-if="systemCount === 0" class="row"><div class="col-sm-12 text-center"><h3>You have no systems registered. Take full advantage of Red Hat Insights by&nbsp;<!-- need to make this link clickable--><a translate="translate" href="{{gettingStartedLink}}" target="_blank" class="link">registering systems.</a></h3></div></div></div></div>');$templateCache.put('js/components/overview/widgets/handcraftedContent/handcraftedContent.html','<div id="handcrafted-conent" class="handcrafted-conent"><h3><strong>{{overview.article.title}}</strong></h3><span ng-bind-html="overview.article.content_html | trust_html" class="handcrafted-content"></span></div>');$templateCache.put('js/components/overview/widgets/highPrio/highPrio.html','<div ng-show="items.staleSystems" class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-wrench"></i><span translate="translate">Alerts&nbsp;</span></h2><div class="high-prio list-alert"><div ng-if="loading" class="spinner spinner-lg"></div><table ng-if="items.staleSystems &amp;&amp; !loading" class="table table-separated error"><tbody><tr><td width="50%"><strong>{{items.staleSystems}}&nbsp;</strong>Systems not checking in</td><td class="text-right"><a ui-sref="app.inventory({offline:true})" class="link">View Offline Systems</a></td><td ng-if="false" class="dismiss"><i class="fa fa-moon-o"></i></td></tr></tbody></table></div></section></div>');$templateCache.put('js/components/overview/widgets/maintenancePlanLite/maintenancePlanLite.html','<section class="widget-block"><h2 class="title"><i class="fa fa-wrench"></i><span translate="translate">Plan&nbsp;</span><span translate="translate" class="light">Summary</span><a ui-sref="app.maintenance" translate="translate" class="cta-link">View planner</a></h2><div class="maintenance-plan-lite"><div ng-if="getFirstSuggestion()" class="row row-short padding-top"><div class="col-sm-12"><div class="maintenance-plan-lite"><a ng-click="openPlan(getFirstSuggestion())" class="suggestions"><span class="icon-inline"><i aria-hidden="true" class="fa fa-check-square-o"></i><strong translate="translate" translate-n="plans.suggested[0].actions.length" translate-plural="You have a new plan suggestion ({{$count}} actions)" class="underline">You have a new plan suggestion (1 action)</strong></span></a></div></div></div><div ng-if="plans.future.length" class="row row-short"><div class="col-sm-12"><maintenance-plan-lite-table plans="plans.future" silence="silence" duration="duration"></maintenance-plan-lite-table></div></div><div ng-if="!plans.future.length &amp;&amp; plans.unscheduled.length" class="row"><div class="col-sm-12"><table class="table table-separated"><thead class="lite"><tr><th translate="translate"><b>Newest Plans</b></th><th width="11%" translate="translate"><b>Actions</b></th></tr></thead><tbody><tr ng-repeat="plan in (plans.unscheduled | limitTo:3 | orderBy:\'-maintenance_id\') track by plan.maintenance_id"><td ng-click="openPlan(plan)" class="start"><a>{{MaintenanceService.getPlanName(plan)}}</a></td><td ng-click="openPlan(plan)" class="action-count"><span>{{plan.actionsDone}}/{{plan.actions.length}}</span></td></tr></tbody></table></div></div><div ng-if="stats.rules.ansible" class="row row-short"><div class="col-sm-12 text-center"><strong translate="translate" translate-n="stats.rules.ansible" translate-plural="{{$count}} issues can be resolved automatically">1 issue can be resolved automatically</strong><span translate="translate">&nbsp;using&nbsp;</span><ansible-icon value="true" show-tooltip="false" class="inline-right"></ansible-icon><span translate="translate">Ansible</span></div></div><div class="row"><div class="col-sm-12 text-center"><a ng-click="MaintenanceService.showMaintenanceModal()" class="btn btn-accent"><strong translate="translate">Create a new Plan/Playbook</strong></a></div></div></div></section>');$templateCache.put('js/components/overview/widgets/newSystems/newSystems.html','<div class="grid-block"><section class="widget-block"><h2 class="title"><i class="fa fa-database"></i><span translate="translate">Newest Systems</span><a ui-sref="app.inventory" translate="translate" class="cta-link">View inventory</a></h2><div class="content"><div ng-show="loader.loading" class="spinner"></div><table ng-show="!loader.loading &amp;&amp; systems.length" class="table table-separated"><thead class="lite"><tr><th translate="translate">System</th><th translate="translate">Registration Date</th></tr></thead><tbody><tr ng-repeat="system in systems | orderBy:\'system.created_at\' track by system.system_id"><td><a ng-click="showSystemModal(system)" class="strong">{{system.toString}}</a></td><td><span>{{system.created_at | timeAgo}}</span></td></tr></tbody></table><p ng-show="!loader.loading &amp;&amp; !systems.length" translate="translate">No systems registered</p></div></section></div>');$templateCache.put('js/components/overview/widgets/goals/goalsGauge/goalsGauge.html','<div class="gauge"><div class="chart-wrapper"></div><div class="chart-metrics"><span ng-if="gaugeMax === 0">{{gaugeNumber}}</span><span ng-if="gaugeMax &gt; 0">{{gaugeNumber + \'/\' + gaugeMax}}</span></div></div>');$templateCache.put('js/components/overview/widgets/goals/goalsBar/goalsBar.html','<div class="gauge"><div class="bar-chart-wrapper"></div></div>');$templateCache.put('js/components/overview/widgets/maintenancePlanLite/maintenancePlanLiteTable/maintenancePlanLiteTable.html','<table class="table table-separated"><thead class="lite"><tr><th width="5%" class="count"><span>{{plans.length}}</span></th><th width="30%" translate="translate">Scheduled Plans</th><th translate="translate" class="start">Start</th><th translate="translate" class="duration">Duration</th><th width="11%" translate="translate">Actions</th></tr></thead><tbody><tr ng-repeat="plan in (plans | limitTo:3 | orderBy:\'start\') track by plan.maintenance_id"><td colspan="2" ng-click="openPlan(plan)" tooltip="{{MaintenanceService.getPlanName(plan)}}"><strong>{{plan.start | moment:\'LL\'}}</strong></td><td ng-click="openPlan(plan)" class="start">{{plan.start | moment:\'LT\' | lowercase}}</td><td ng-click="openPlan(plan)" translate="translate" translate-n="duration(plan.start, plan.end)" translate-plural="{{$count}} minutes" class="duration">1 minute</td><td ng-click="openPlan(plan)" class="action-count"><span>{{plan.actionsDone}}/{{plan.actions.length}}</span></td></tr></tbody></table>');}]);},{}],242:[function(require,module,exports){/**
1326
1326
  * @license AngularJS v1.5.11
1327
1327
  * (c) 2010-2017 Google, Inc. http://angularjs.org
1328
1328
  * License: MIT
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redhat_access
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lindani Phiri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-12 00:00:00.000000000 Z
11
+ date: 2018-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redhat_access_lib