mail: implement aliases across domains

Part of #577
This commit is contained in:
Girish Ramakrishnan
2020-04-19 19:44:45 -07:00
parent 357d5e46a3
commit 9ebf6b06dd
4 changed files with 80 additions and 22 deletions

View File

@@ -112,16 +112,41 @@
<label class="control-label">Mailbox Owner</label>
<select class="form-control" ng-model="mailboxes.edit.owner" ng-options="u.display for u in users track by u.id" autofocus></select>
</div>
<div class="form-group" ng-class="{ 'has-error': mailboxes.edit.error }">
<div class="form-group aliases">
<label class="control-label">Aliases</label>
<div class="control-label" ng-show="mailboxes.edit.error">
<small>{{ mailboxes.edit.error.message }}</small>
<div class="has-error" ng-show="mailboxes.edit.error">{{ mailboxes.edit.error.message }}</div>
<div class="row" ng-repeat="alias in mailboxes.edit.aliases">
<div class="col col-lg-11">
<div class="input-group">
<input type="text" class="form-control" ng-model="alias.name">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span>{{ alias.domain }}</span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
<li ng-repeat="domain in incomingDomains">
<a href="" ng-click="alias.domain = domain.domain">{{ alias.domain }}</a>
</li>
</ul>
</div>
</div>
</div>
<div class="col col-lg-1">
<button class="btn btn-danger btn-sm" ng-click="mailboxes.edit.delAlias($event, $index)"><i class="far fa-trash-alt"></i></button>
</div>
</div>
<div class="input-group form-inline" style="margin-top: 10px;">
<tag-input class="form-group form-control" placeholder="Add alias" taglist="mailboxes.edit.aliases" name="aliases"></tag-input>
<div class="input-group-addon">@{{ domain.domain }}</div>
<div ng-show="mailboxes.edit.aliases.length === 0">
No aliases are configured. <a href="" ng-click="mailboxes.edit.addAlias($event)">Add an alias</a>
</div>
<div ng-show="mailboxes.edit.aliases.length > 0" style="margin-top: 5px;">
<a href="" ng-click="mailboxes.edit.addAlias($event)">Add another alias</a>
</div>
</div>
<input class="hide" type="submit" ng-disabled="mailboxedit_form.$invalid || mailboxes.edit.busy || !mailboxes.edit.owner"/>
</form>
</div>
@@ -328,10 +353,9 @@
{{ mailbox.ownerDisplayName }}
</td>
<td class="hand" ng-click="mailboxes.edit.show(mailbox)">
<!-- aliases is spaces separated, so it will wrap as needed -->
{{ mailbox.aliases }}
<span ng-repeat="alias in mailbox.aliases"> {{ alias.name + '@' + alias.domain }}</span>
</td>
<td class="hand" ng-click="mailboxes.edit.show(mailbox)">
<td class="hand no-wrap" ng-click="mailboxes.edit.show(mailbox)">
{{ mailbox.usage | prettyMailSize }}
</td>
<td class="text-right no-wrap">