<div> <div class="btn-toolbar btn-toolbar-editing" ng-if="!options.hideToolbar && isEditing"> <div class="btn-group" ng-if="!options.widgetButtons"> <span class="dropdown" on-toggle="toggled(open)"> <button type="button" class="btn-dashboard btn-add dropdown-toggle" data-toggle="dropdown"> {{'AddWidget' | translate}} <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="widget in widgetDefs track by $index"> <a href="#" ng-click="addWidgetInternal($event, widget);" class="dropdown-toggle">{{widget.title | translate}}</a> </li> </ul> </span> </div> <div class="btn-group" ng-if="options.widgetButtons"> <button type="button" ng-repeat="widget in widgetDefs track by $index" ng-click="addWidgetInternal($event, widget);" class="btn-dashboard btn-primary"> {{widget.title | translate}} </button> </div> <button class="btn-dashboard btn-back-to-default" ng-click="refreshDashboard()"> {{'DefaultWidgets' | translate}} </button> <button type="button" ng-if="options.storage && options.explicitSave" ng-click="options.saveDashboard().then(exitEditingMode)" class="btn-dashboard" ng-disabled="!options.unsavedChangeCount"> {{ 'Save' | translate }} </button> <button type="button" ng-click="clear();" class="btn-dashboard btn-clear">{{'Clear' | translate}}</button> <button type="button" ng-click="options.refreshDashboard().then(exitEditingMode)" class="btn-dashboard btn-cancel"> {{'ExitEditing' | translate}} </button> </div> <div class="btn-toolbar btn-toolbar-showing" ng-if="!options.hideToolbar && !isEditing"> <button ng-click="enterEditingMode()" class="btn-dashboard btn-edit">{{'Config' | translate}}</button> </div> <div ui-sortable="sortableOptions" ng-model="widgets" class="dashboard-widget-area"> <div ng-repeat="widget in widgets track by $index" ng-style="widget.containerStyle" ng-class="{'widget-readonly':!isEditing}" class="widget-container" widget> <div class="widget panel panel-default"> <div class="widget-header panel-heading"> <div class="widget-title" ng-if="widget.titleAttr">{{$eval('widget.dataModelOptions[\'' + widget.titleAttr.split('.').join('\'][\'') + '\']')}}</div> <div class="widget-title" ng-if="!widget.titleAttr">{{widget.title | translate}}</div> <div class="widget-buttons"> <span ng-click="removeWidget(widget);" class="glyphicon glyphicon-remove" ng-if="!options.hideWidgetClose"></span> <span ng-click="openWidgetSettings(widget);" class="glyphicon glyphicon-cog" ng-if="!(options.hideWidgetSettings || widget.hideWidgetSettings)"></span> </div> </div> <div class="panel-body widget-content" ng-style="widget.contentStyle"></div> </div> </div> </div> </div>