SmartIT_Extensions/BMC/smart-it-full/views/person/preview.html

143 lines
7.9 KiB
HTML

<div class="person-preview">
<div class="relative-position">
<div loading-spinner if="state.loadingSummaryStats || state.loadingPersonDetails" centered="true" overlay="true"></div>
<div class="person-preview__details">
<div class="person-preview__details-panel col-sm-4">
<img alt="{{person.firstName}} {{person.lastName}}" class="person-preview__avatar"
user-availability="person" thumbnail-img="{{'data:' + person.thumbnailMime + ';base64,' + person.thumbnail}}" imgplaceholder="user" />
<div class="person-preview__customer-details">
<span class="person-preview__list-item-highlight"><a href="#/person/{{person.id | escape}}">{{person.fullName}}</a></span>
<span class="person-summary__VIP" ng-if="person.isVIP">{{'common.labels.vip' | i18n}}</span>
<div>{{person.department}}</div>
<div>{{person.organization}}</div>
<div>{{person.company.name}}</div>
</div>
</div>
<div class="person-preview__details-panel col-sm-4">
<div>
<div><a href="tel:{{person.phone}}">{{person.phone}}</a></div>
</div>
<div class="person-preview__list-item-highlight">
<a href="mailto:{{person.email}}">{{person.email}}</a>
</div>
</div>
<div class="person-preview__details-panel col-sm-4">
<span class="label__text">{{'common.label.site' | i18n}}</span>
<div>{{person.site.name}}</div>
<div>{{person.site.address.street}}</div>
<div>{{person.site.address.city}}{{person.site.address.state ? ',' : ''}}
{{person.site.address.state}}
{{person.site.address.zip}}</div>
<div>{{person.site.address.country}}</div>
<get-directions destination = "person.site.address.address"></get-directions>
</div>
</div>
<div class="person-service-summary__section">
<div class="person-service-summary__body">
<div class="person-preview-service-summary__rating-section ">
<div class="person-service-summary__title">{{'personInfoCard.label.serviceSummary' | i18n}}</div>
<div title="{{'personInfoCard.label.avgRating' | i18n : serviceSummary.ratingScore}}">
<span ng-repeat="marker in serviceSummary.ratingMarkers"
ng-class="{'icon-star_o': marker.value === 0, 'icon-star_half': marker.value === 50, 'icon-star': marker.value === 100}"
class="person-preview-service-summary__rating-star">
</span>
<span class="person-preview-service-summary__rating-count">
{{serviceSummary.ratingCount}} {{'personInfoCard.label.ratingCount' | i18n}}
</span>
</div>
</div>
<div class="person-service-summary__escalation-section">
<span class="icon-exclamation_triangle"></span>
<span class="person-service-summary__escalation">{{serviceSummary.escalation}} {{'personInfoCard.label.escalation' | i18n}}</span>
</div>
</div>
</div>
<div class="person-custom-field">
<custom-field-area ng-if="person" ticket="person" stacked="false"
panel-id="personDetailsScreen.Person Summary"
class="editable-content-section-block">
</custom-field-area>
</div>
</div>
<div collapse="!displayFullProfile">
<div class="person-preview__Related-content-block" ng-class="{'person-preview__Related-content-block_no-data': personAssetList.length == 0 }" >
<div class="person-preview__header" ng-class="{'person-preview-no-data__header': personAssetList.length == 0 }">
{{'person.preview.assets'|i18n}} ({{personAssetList.length}})
</div>
<div class="person-preview__list-content">
<div loading-spinner if="state.loadingPersonAssets" centered="true"></div>
<div class="person-preview__list-item" ng-repeat="asset in personAssetList|orderBy:'name':false|limitTo:assetLimit">
<person-asset-with-checkbox-renderer data="asset" select-asset-item="selectAssetItem(asset)" show-item-details="showItemDetails(asset)" saved-template ="savedTemplate"></person-asset-with-checkbox-renderer>
</div>
</div>
<show-more-less limit="assetLimit" size="{{personAssetList.length}}"></show-more-less>
</div>
<div class="person-preview__Related-content-block" ng-class="{'person-preview__Related-content-block_no-data': personOpenTicketsTotalMatches == 0 }" >
<div class="person-preview__header" ng-class="{'person-preview-no-data__header': personOpenTicketsTotalMatches == 0 }">
{{'common.tabs.openTickets'|i18n}} ({{personOpenTicketsTotalMatches}})
</div>
<div class="person-preview__list-content">
<div loading-spinner if="state.loadingOpenTickets" centered="true"></div>
<div class="person-preview__list-item" ng-repeat="ticket in personOpenTickets|limitTo:ticketOpenLimit" ng-click="showItemDetails(ticket, $event)">
<person-ticket-renderer data="ticket"></person-ticket-renderer>
</div>
</div>
<show-more-less limit="ticketOpenLimit" size="{{personOpenTickets.length}}" get-more="getMoreOpenTickets()" total-size="{{personOpenTicketsTotalMatches}}"></show-more-less>
</div>
<div class="person-preview__Related-content-block" ng-if="isServiceBrokerEnabled" ng-class="{'person-preview__Related-content-block_no-data': personOpenServiceBrokerTicketsTotalMatches == 0 }" >
<div class="person-preview__header" ng-class="{'person-preview-no-data__header': personOpenServiceBrokerTicketsTotalMatches == 0 }">
{{'common.tabs.openSBETickets'|i18n}} ({{personOpenServiceBrokerTicketsTotalMatches}})
</div>
<div class="person-preview__list-content">
<div loading-spinner if="state.loadingSBEOpenTickets" centered="true"></div>
<div class="person-preview__list-item" ng-repeat="ticket in personOpenServiceBrokerTickets|limitTo:ticketSBEOpenLimit" ng-click="showItemDetails(ticket, $event)">
<person-ticket-renderer data="ticket"></person-ticket-renderer>
</div>
</div>
<show-more-less limit="ticketSBEOpenLimit" size="{{personOpenServiceBrokerTickets.length}}" get-more="getMoreOpenServiceBrokerTickets()" total-size="{{personOpenServiceBrokerTicketsTotalMatches}}"></show-more-less>
</div>
<div class="person-preview__Related-content-block" ng-class="{'person-preview__Related-content-block_no-data': personClosedTicketsTotalMatches == 0 }" >
<div class="person-preview__header" ng-class="{'person-preview-no-data__header': personClosedTicketsTotalMatches == 0 }">
{{'person.preview.closedTickets'|i18n}} ({{personClosedTicketsTotalMatches}})
</div>
<div class="person-preview__list-content">
<div loading-spinner if="state.loadingClosedTickets" centered="true"></div>
<div class="person-preview__list-item" ng-repeat="ticket in personClosedTickets|limitTo:ticketCloseLimit" ng-click="showItemDetails(ticket, $event)">
<person-ticket-renderer data="ticket"></person-ticket-renderer>
</div>
</div>
<show-more-less limit="ticketCloseLimit" size="{{personClosedTickets.length}}" get-more="getMoreClosedTickets()" total-size="{{personClosedTicketsTotalMatches}}"></show-more-less>
</div>
<div class="person-preview__Related-content-block" ng-if="isServiceBrokerEnabled" ng-class="{'person-preview__Related-content-block_no-data': personClosedServiceBrokerTicketsTotalMatches == 0 }">
<div class="person-preview__header" ng-class="{'person-preview-no-data__header': personClosedServiceBrokerTicketsTotalMatches == 0 }">
{{'person.preview.closedSBETickets'|i18n}} ({{personClosedServiceBrokerTicketsTotalMatches}})
</div>
<div class="person-preview__list-content">
<div loading-spinner if="state.loadingSBEClosedTickets" centered="true"></div>
<div class="person-preview__list-item" ng-repeat="ticket in personClosedServiceBrokerTickets|limitTo:ticketSBECloseLimit" ng-click="showItemDetails(ticket, $event)">
<person-ticket-renderer data="ticket"></person-ticket-renderer>
</div>
</div>
<show-more-less limit="ticketSBECloseLimit" size="{{personClosedServiceBrokerTickets.length}}" get-more="getMoreClosedServiceBrokerTickets()" total-size="{{personClosedServiceBrokerTicketsTotalMatches}}"></show-more-less>
</div>
</div>
</div>