UNPKG

@timshel_npm/maildev

Version:

SMTP Server with async API and Web Interface for viewing and testing emails during development

311 lines (274 loc) 9.66 kB
<ul class="email-toolbar"> <li class="dropdown-container"> <a href="" class="dropdown-trigger" ng-click="toggleDropdown($event, 'display')" ng-class="{ open: dropdownOpen == 'display' }" > <span ng-if="!panelVisibility || panelVisibility === 'html'"><i class="fas fa-file-code"></i> HTML</span> <span ng-if="panelVisibility === 'plain'"><i class="fas fa-file-alt"></i> Text</span> <span ng-if="panelVisibility === 'attachments'"><i class="fas fa-paperclip"></i> Attachments</span> <span ng-if="panelVisibility === 'headers'"><i class="fas fa-th-list"></i> Headers</span> <span ng-if="panelVisibility === 'source'"><i class="fas fa-code"></i> Source</span> </a> <ul class="dropdown-menu"> <li> <a href="" class="" ng-click="show('html')" ng-class="{ active: panelVisibility == 'html', disabled: !item.html }"> <span> <i class="fas fa-file-code"></i> HTML </span> </a> </li> <li> <a href="" class="" ng-click="show('plain')" ng-class="{ active: panelVisibility == 'plain', disabled: !item.text }"> <span> <i class="fas fa-file-alt"></i> Text </span> </a> </li> <li> <a href="" class="" ng-click="show('attachments')" ng-class="{ active: panelVisibility == 'attachments', disabled: !item.attachments }"> <span> <i class="fas fa-paperclip"></i> Attachments </span> </a> </li> <li> <a href="" class="" ng-click="show('headers')" ng-class="{ active: panelVisibility == 'headers' }"> <span> <i class="fas fa-th-list"></i> Headers </span> </a> </li> <li> <a href="" class="" ng-click="show('source')" ng-class="{ active: panelVisibility == 'source' }"> <span> <i class="fas fa-code"></i> Source ({{item.sizeHuman}}) </span> </a> </li> </ul> </li> <li class="dropdown-container"> <a href="" class="dropdown-trigger" ng-click="toggleDropdown($event, 'viewport')" ng-class="{ open: dropdownOpen == 'viewport', disabled: panelVisibility != 'html' }"> <!-- <span ng-if="iframeSize == null"><i class="fas fa-ruler-combined"></i> 100%</span> --> <span ng-if="iframeSize == null"><i class="fas fa-desktop"></i> 100%</span> <span ng-if="iframeSize == '1440px'"><i class="fas fa-desktop"></i> 1440px</span> <span ng-if="iframeSize == '1024px'"><i class="fas fa-tablet-alt"></i> 1024px</span> <span ng-if="iframeSize == '768px'"><i class="fas fa-tablet-alt"></i> 768px</span> <span ng-if="iframeSize == '425px'"><i class="fas fa-mobile-alt"></i> 425px</span> <span ng-if="iframeSize == '375px'"><i class="fas fa-mobile-alt"></i> 375px</span> <span ng-if="iframeSize == '320px'"><i class="fas fa-mobile-alt"></i> 320px</span> </a> <ul class="dropdown-menu"> <li> <a href="" class="" ng-click="resize()" ng-class="{ active: iframeSize == null }"> <span> <i class="fas fa-desktop"></i> 100% </span> </a> </li> <li> <a href="" class="" ng-click="resize('1440px')" ng-class="{ active: iframeSize == '1440px' }"> <span> <i class="fas fa-desktop"></i> 1440px </span> </a> </li> <li> <a href="" class="" ng-click="resize('1024px')" ng-class="{ active: iframeSize == '1024px' }"> <span> <i class="fas fa-tablet-alt"></i> 1024px </span> </a> </li> <li> <a href="" class="" ng-click="resize('768px')" ng-class="{ active: iframeSize == '768px' }"> <span> <i class="fas fa-tablet-alt"></i> 768px </span> </a> </li> <li> <a href="" class="" ng-click="resize('425px')" ng-class="{ active: iframeSize == '425px' }"> <span> <i class="fas fa-mobile-alt"></i> 425px </span> </a> </li> <li> <a href="" class="" ng-click="resize('375px')" ng-class="{ active: iframeSize == '375px' }"> <span> <i class="fas fa-mobile-alt"></i> 375px </span> </a> </li> <li> <a href="" class="" ng-click="resize('320px')" ng-class="{ active: iframeSize == '320px' }"> <span> <i class="fas fa-mobile-alt"></i> 320px </span> </a> </li> </ul> </li> <li> <a href="email/{{item.id}}/download" class=""> <span> <i class="fas fa-cloud-download-alt"></i> Download </span> </a> </li> <li class="dropdown-container"> <a href="" class="dropdown-trigger" ng-click="toggleDropdown($event, 'relay')" ng-class="{ open: dropdownOpen == 'relay', disabled: !config.isOutgoingEnabled }" > <span> <i class="fas fa-paper-plane"></i> Relay </span> </a> <ul class="dropdown-menu"> <li> <a href="" class="" ng-click="relay(item)" ng-class="{ disabled: !config.isOutgoingEnabled }"> <span> <i class="fas fa-paper-plane"></i> Relay </span> </a> </li> <li> <a href="" class="" ng-click="relayTo(item)" ng-class="{ disabled: !config.isOutgoingEnabled }"> <span> <i class="fas fa-paper-plane"></i> Relay to... </span> </a> </li> </ul> </li> <li> <a href="" class="" ng-click="delete(item)" > <span> <i class="fas fa-trash-alt"></i> Delete </span> </a> </li> </ul> <div class="email-meta"> <div class="subject">{{item.subject}}</div> <div class="row from"> <div class="description">From:</div> <div class="description-value"> <app-address ng-repeat="a in item.from" address="a"></app-address> </div> </div> <div class="row to"> <div class="description">To:</div> <div class="description-value"> <app-address ng-repeat="a in item.to" address="a"></app-address> </div> </div> <div ng-if="item.cc.length" class="row cc"> <div class="description">Cc:</div> <div class="description-value"> <app-address ng-repeat="a in item.cc" address="a"></app-address> </div> </div> <div ng-if="item.calculatedBcc.length" class="row calculated-bcc"> <div class="description">Bcc:</div> <div class="description-value"> <app-address ng-repeat="a in item.calculatedBcc" address="a"></app-address> </div> </div> </div> <div class="email-content"> <div class="email-content-view email-content-view-html" ng-hide="panelVisibility != 'html'"> <iframe ng-src="{{ item.iframeUrl }}" class="preview-iframe panel-html"></iframe> </div> <div class="email-content-view email-content-view-plain" ng-hide="panelVisibility != 'plain'"> <div class="plain-text panel-plain" ng-bind-html=" item.text|escapeHTML"></div> </div> <div class="email-content-view email-content-view-attachments" ng-hide="panelVisibility != 'attachments'"> <div class="panel-attachments" > <span ng-repeat="attachment in item.attachments"> <a target="_blank" ng-href="email/{{item.id}}/attachment/{{attachment.generatedFileName | encodeURIComponent}}"> <strong>{{attachment.generatedFileName}}</strong> </a> <br> </span> </div> </div> <div class="email-content-view email-content-view-headers" ng-hide="panelVisibility != 'headers'"> <div class="panel-headers" > <table class="table"> <!-- <thead> <tr> <th>Key</th> <th>Value</th> </tr> </thead> --> <tr ng-repeat="(headerKey, headerValue) in item.headers"> <td class="span3"> <strong>{{headerKey}}</strong> </td> <td> {{headerValue}} </td> </tr> </table> </div> </div> <div class="email-content-view email-content-view-source" ng-hide="panelVisibility != 'source'"> <iframe ng-src="{{ rawEmail }}" class="preview-iframe panel-source" ></iframe> </div> </div>