@uportal/app-framework
Version:
Application Framework for uPortal
88 lines (76 loc) • 3.49 kB
HTML
<!--
Licensed to Apereo under one or more contributor license
agreements. See the NOTICE file distributed with this work
for additional information regarding copyright ownership.
Apereo licenses this file to you under the Apache License,
Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a
copy of the License at the following location:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<md-card id="widget-id-{{ widget.fname }}" aria-label="{{ widget.title }} widget"
ng-hide="failSilently && widget.widgetConfig && widget.widgetConfig.error"
class="widget-frame" >
<!-- MAINTENANCE MODE OVERLAY -->
<div class="overlay__widget-mode" ng-if="widget.lifecycleState === 'MAINTENANCE'">
<div class="overlay-content">
<p class="overlay-warning-icon">
<md-icon class="md-warn">warning</md-icon>
</p>
<p ng-if="widget.widgetConfig && widget.widgetConfig.maintenanceMessage">
{{ widget.widgetConfig.maintenanceMessage }}
</p>
<p ng-if="!widget.widgetConfig
|| !widget.widgetConfig.maintenanceMessage">
This app is undergoing maintenance and is temporarily available.
</p>
</div>
</div>
<!-- MESSAGE OVERLAY -->
<div class="overlay__message" ng-if="widget.widgetExternalMessageUrl">
<external-widget-message app="widget"></external-widget-message>
</div>
<!-- HEADER -->
<md-card-header class="widget-header">
<md-card-header-text>
<span class="md-title" style="text-align: center;">
{{ widget.title }}
</span>
</md-card-header-text>
<!-- Widget contextual menu -->
<md-menu class="widget-action" md-position-mode="target-right bottom">
<md-button class="md-icon-button" aria-label="open {{ widget.title }} menu" ng-click="$mdOpenMenu($event)">
<md-tooltip class="widget-action-tooltip" md-direction="top" role="tooltip">
Open {{ widget.title }} menu
</md-tooltip>
<md-icon>more_vert</md-icon>
</md-button>
<md-menu-content class="widget-menu" width="4">
<md-menu-item class="widget-description" md-autofocus tabindex="1" layout="row" layout-align="start center">
<md-icon>info</md-icon>
<span><strong>{{ widget.title }}:</strong> {{ widget.description }}</span>
</md-menu-item>
<md-menu-item ng-if="widget.fname">
<md-button aria-label="Details about {{ widget.title }}"
href="/web/apps/details/{{widget.fname}}">
<md-icon>details</md-icon>
Details
</md-button>
</md-menu-item>
<!-- Remove widget button -->
<div role="button" tabindex="{{ tabindex }}" ng-transclude="removeButton" ng-keyup="triggerRemoveButton($event)"></div>
</md-menu-content>
</md-menu>
</md-card-header>
<!-- BODY -->
<md-card-content class="widget-content">
<widget-content app="widget" config="widget.widgetConfig">
</widget-content>
</md-card-content>
</md-card>