2020-08-17 22:44:01 +02:00
<!-- Modal change mail server domain -->
2020-08-20 23:06:22 -07:00
< div class = "modal fade" id = "mailLocationModal" tabindex = "-1" role = "dialog" >
2020-08-17 22:44:01 +02:00
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2020-11-12 11:42:11 +01:00
< h4 class = "modal-title" > {{ 'emails.changeDomainDialog.title' | tr }}< / h4 >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "modal-body" >
2020-11-12 11:42:11 +01:00
< div ng-bind-html = " 'emails.changeDomainDialog.description' | tr " > < / div >
2020-08-22 16:43:17 -07:00
< br >
2020-08-20 23:06:22 -07:00
< form name = "mailLocationForm" role = "form" novalidate ng-submit = "mailLocation.submit()" autocomplete = "off" >
< div class = "form-group" ng-class = "{ 'has-error': (mailLocationForm.subdomain.$dirty && mailLocationForm.subdomain.$invalid) || (!mailLocationForm.subdomain.$dirty && mailLocation.error)}" >
2020-11-12 11:42:11 +01:00
< label class = "control-label" > {{ 'emails.changeDomainDialog.location' | tr }}< / label >
2020-08-20 23:06:22 -07:00
< div class = "has-error" ng-show = "mailLocation.error" > {{ mailLocation.error.message }}< / div >
< div class = "input-group form-inline" >
2020-11-12 11:42:11 +01:00
< input type = "text" class = "form-control" ng-model = "mailLocation.subdomain" id = "mailLocationLocationInput" name = "location" placeholder = "{{ 'emails.changeDomainDialog.locationPlaceholder' | tr }}" autofocus >
2020-08-20 23:06:22 -07:00
< div class = "input-group-btn" >
< button type = "button" class = "btn btn-default dropdown-toggle" data-toggle = "dropdown" >
< span > {{ (!mailLocation.subdomain ? '' : '.') + mailLocation.domain.domain }}< / span >
< span class = "caret" > < / span >
< / button >
< ul class = "dropdown-menu dropdown-menu-right" role = "menu" >
< li ng-repeat = "domain in domains" >
< a href = "" ng-click = "mailLocation.domain = domain" > {{ domain.domain }}< / a >
< / li >
< / ul >
< / div >
2020-08-17 22:44:01 +02:00
< / div >
< / div >
2020-08-20 23:06:22 -07:00
2020-11-12 23:13:52 +01:00
< p class = "text-center text-warning text-bold" ng-show = "mailLocation.domain.provider === 'manual'" ng-bind-html = "'emails.changeDomainDialog.manualInfo' | tr:{ domain: mailLocation.domain.domain }" > < / p >
2020-08-20 23:06:22 -07:00
< input class = "ng-hide" type = "submit" ng-disabled = "mailLocationForm.$invalid" / >
2020-08-17 22:44:01 +02:00
< / form >
< / div >
< div class = "modal-footer" >
2020-11-12 11:42:11 +01:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-click = "mailLocation.submit()" ng-disabled = "mailLocationForm.$invalid || mailLocation.busy" > < i class = "fa fa-circle-notch fa-spin" ng-show = "mailLocation.busy" > < / i > {{ 'main.dialog.save' | tr }}< / button >
2020-08-17 22:44:01 +02:00
< / div >
< / div >
< / div >
< / div >
<!-- Modal change max email size -->
< div class = "modal fade" id = "maxEmailSizeChangeModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2020-11-12 11:42:11 +01:00
< h4 class = "modal-title" > {{ 'emails.changeMailSizeDialog.title' | tr }}< / h4 >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "modal-body" >
2020-11-12 11:42:11 +01:00
< div ng-bind-html = " 'emails.changeMailSizeDialog.description' | tr " > < / div >
2020-08-20 23:28:43 -07:00
< br >
2020-08-17 22:44:01 +02:00
< form name = "maxEmailSizeChangeForm" role = "form" novalidate ng-submit = "maxEmailSize.submit()" autocomplete = "off" >
< div class = "form-group" >
Fix SI and Decimal unit usage
SI: For 1000, it is kB, MB, GB
IEC: For 1024, it is KiB, MiB, GiB
JEDEC: For 1024, it is KB, MB (conflicts with SI, of course)
Ultimately, what we decided is for RAM use IEC and for Disk use SI.
This is what docker does and also suggested here -
https://stackoverflow.com/questions/8632269/displaying-file-size-1000b-1kb-or-1024b-1kb
2022-10-13 21:48:03 +02:00
< label class = "control-label" > {{ 'emails.changeMailSizeDialog.size' | tr }} < b > {{ maxEmailSize.size | prettyDecimalSize }}< / b > < / label >
2022-10-13 21:57:12 +02:00
< slider ng-model = "maxEmailSize.size" tooltip = "hide" min = "1000000" max = "1000000000" step = "1000000" > < / slider >
2020-08-17 22:44:01 +02:00
< / div >
< input class = "ng-hide" type = "submit" / >
< / form >
< / div >
< div class = "modal-footer" >
2020-11-12 11:42:11 +01:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-click = "maxEmailSize.submit()" ng-disabled = "maxEmailSize.size === maxEmailSize.currentSize" > < i class = "fa fa-circle-notch fa-spin" ng-show = "maxEmailSize.busy" > < / i > {{ 'main.dialog.save' | tr }}< / button >
2020-08-17 22:44:01 +02:00
< / div >
< / div >
< / div >
< / div >
2021-12-08 11:33:36 -08:00
<!-- Modal change mailbox sharing -->
< div class = "modal fade" id = "mailboxSharingChangeModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > {{ 'emails.mailboxSharingDialog.title' | tr }}< / h4 >
< / div >
< div class = "modal-body" >
< div ng-bind-html = " 'emails.mailboxSharingDialog.description' | tr " > < / div >
< br >
< form name = "mailboxSharingChangeForm" role = "form" novalidate ng-submit = "mailboxSharing.submit()" autocomplete = "off" >
< div class = "form-group" >
< div class = "checkbox" >
< label >
< input type = "checkbox" ng-model = "mailboxSharing.enable" > {{ 'emails.mailboxSharing.mailboxSharingCheckbox' | tr }}< / input >
< / label >
< / div >
< / div >
< input class = "ng-hide" type = "submit" / >
< / form >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-click = "mailboxSharing.submit()" ng-disabled = "mailboxSharing.enable === mailboxSharing.enabled" > < i class = "fa fa-circle-notch fa-spin" ng-show = "mailboxSharing.busy" > < / i > {{ 'main.dialog.save' | tr }}< / button >
< / div >
< / div >
< / div >
< / div >
2020-11-19 17:45:16 -08:00
<!-- Modal solr config -->
< div class = "modal fade" id = "solrConfigModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > {{ 'emails.solrConfig.title' | tr }}< / h4 >
< / div >
< div class = "modal-body" >
2020-12-02 17:33:54 -08:00
< p ng-bind-html = " 'emails.solrConfig.description' | tr " > < / p >
<!-- only show this when user is trying to enable -->
< p class = "has-error" ng-show = "!solrConfig.currentConfig.enabled && !solrConfig.enoughMemory" > {{ 'emails.solrConfig.notEnoughMemory' | tr }}< / p >
2020-11-19 17:45:16 -08:00
< / div >
< div class = "modal-footer" >
2022-02-09 16:22:44 +01:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.close' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-hide = "solrConfig.currentConfig.enabled" ng-click = "solrConfig.submit(true)" ng-disabled = "(!solrConfig.currentConfig.enabled && !solrConfig.enoughMemory) || solrConfig.busy" > < i class = "fa fa-circle-notch fa-spin" ng-show = "solrConfig.busy" > < / i > {{ 'main.enableAction' | tr }}< / button >
< button type = "button" class = "btn btn-danger" ng-show = "solrConfig.currentConfig.enabled" ng-click = "solrConfig.submit(false)" ng-disabled = "solrConfig.busy" > < i class = "fa fa-circle-notch fa-spin" ng-show = "solrConfig.busy" > < / i > {{ 'main.disableAction' | tr }}< / button >
2020-11-19 17:45:16 -08:00
< / div >
< / div >
< / div >
< / div >
2021-10-13 14:22:37 -07:00
<!-- Modal change acl -->
< div class = "modal fade" id = "aclChangeModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > {{ 'emails.aclDialog.title' | tr }}< / h4 >
< / div >
< div class = "modal-body" >
< form name = "aclChangeForm" role = "form" novalidate ng-submit = "acl.submit()" autocomplete = "off" >
< div class = "form-group" >
< label class = "control-label" > {{ 'emails.aclDialog.dnsblZones' | tr }} < sup > < a ng-href = "https://docs.cloudron.io/email/#dnsbl" class = "help" target = "_blank" > < i class = "fa fa-question-circle" > < / i > < / a > < / sup > < / label >
< p class = "small" > {{ 'emails.aclDialog.dnsblZonesInfo' | tr }}< / p >
< div class = "has-error" ng-show = "acl.error.dnsblZones" > {{ acl.error.dnsblZones }}< / div >
< textarea ng-model = "acl.dnsblZones" placeholder = "{{ 'emails.aclDialog.dnsblZonesPlaceholder' | tr }}" name = "dnsblZones" class = "form-control" ng-class = "{ 'has-error': !aclChangeForm.dnsblZones.$dirty && acl.error.dnsblZones }" rows = "4" > < / textarea >
< / div >
< input class = "ng-hide" type = "submit" / >
< / form >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-click = "acl.submit()" > < i class = "fa fa-circle-notch fa-spin" ng-show = "acl.busy" > < / i > {{ 'main.dialog.save' | tr }}< / button >
< / div >
< / div >
< / div >
< / div >
2020-08-22 13:01:25 -07:00
<!-- Modal change spam config -->
< div class = "modal fade" id = "spamConfigChangeModal" tabindex = "-1" role = "dialog" >
2020-08-17 22:44:01 +02:00
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2020-11-12 11:42:11 +01:00
< h4 class = "modal-title" > {{ 'emails.spamFilterDialog.title' | tr }}< / h4 >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "modal-body" >
2020-08-22 13:01:25 -07:00
< form name = "spamConfigChangeForm" role = "form" novalidate ng-submit = "spamConfig.submit()" autocomplete = "off" >
2020-08-17 22:44:01 +02:00
< div class = "form-group" >
2020-11-12 11:42:11 +01:00
< label class = "control-label" > {{ 'emails.spamFilterDialog.blacklisteAddresses' | tr }}< / label >
< p class = "small" > {{ 'emails.spamFilterDialog.blacklisteAddressesInfo' | tr }}< / p >
2020-08-22 13:01:25 -07:00
< div class = "has-error" ng-show = "spamConfig.error.blacklist" > {{ spamConfig.error.blacklist }}< / div >
2020-11-12 11:42:11 +01:00
< textarea ng-model = "spamConfig.blacklist" placeholder = "{{ 'emails.spamFilterDialog.blacklisteAddressesPlaceholder' | tr }}" name = "blacklist" class = "form-control" ng-class = "{ 'has-error': !spamConfigChangeForm.blacklist.$dirty && spamConfig.error.blacklist }" rows = "4" > < / textarea >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "form-group" >
2020-11-12 11:42:11 +01:00
< label class = "control-label" > {{ 'emails.spamFilterDialog.customRules' | tr }} < sup > < a ng-href = "https://docs.cloudron.io/email/#custom-spam-filtering-rules" class = "help" target = "_blank" > < i class = "fa fa-question-circle" > < / i > < / a > < / sup > < / label >
2020-08-22 13:01:25 -07:00
< div class = "has-error" ng-show = "spamConfig.error.config" > {{ spamConfig.error.config }}< / div >
2020-11-12 11:42:11 +01:00
< textarea ng-model = "spamConfig.config" placeholder = "{{ 'emails.spamFilterDialog.customRulesPlaceholder' | tr }}" class = "form-control" name = "config" ng-class = "{ 'has-error': !spamConfigChangeForm.config.$dirty && spamConfig.error.config }" rows = "4" > < / textarea >
2020-08-17 22:44:01 +02:00
< / div >
< input class = "ng-hide" type = "submit" / >
< / form >
< / div >
< div class = "modal-footer" >
2020-11-12 11:42:11 +01:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "button" class = "btn btn-success" ng-click = "spamConfig.submit()" > < i class = "fa fa-circle-notch fa-spin" ng-show = "spamConfig.busy" > < / i > {{ 'main.dialog.save' | tr }}< / button >
2020-08-17 22:44:01 +02:00
< / div >
< / div >
< / div >
< / div >
2020-02-12 14:51:06 +01:00
<!-- Test email -->
< div class = "modal fade" id = "testEmailModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2020-11-12 23:13:52 +01:00
< h4 class = "modal-title" > {{ 'emails.testMailDialog.title' | tr:{ domain: testEmail.domain.domain } }}< / h4 >
2020-02-12 14:51:06 +01:00
< / div >
< div class = "modal-body" >
< form name = "testEmailForm" role = "form" novalidate ng-submit = "testEmail.submit()" autocomplete = "off" >
< fieldset >
< p class = "has-error text-center" ng-show = "testEmail.error" > {{ testEmail.error.generic }}< / p >
2020-11-12 23:13:52 +01:00
< p ng-bind-html = "'emails.testMailDialog.description' | tr:{ domain: testEmail.domain.domain }" > < / p >
2020-02-12 14:51:06 +01:00
< br / >
< div class = "form-group" ng-class = "{ 'has-error': testEmail.error.key }" >
2020-11-12 11:42:11 +01:00
< label class = "control-label" for = "inputTestEmailKey" > {{ 'emails.testMailDialog.mailTo' | tr }}< / label >
< input type = "text" class = "form-control" ng-model = "testEmail.mailTo" id = "inputTestMailTo" name = "mailTo" ng-disabled = "testEmail.busy" placeholder = "{{ 'emails.testMailDialog.mailToPlaceholder' | tr }}" autofocus >
2020-02-12 14:51:06 +01:00
< / div >
< input class = "ng-hide" type = "submit" ng-disabled = "testEmailForm.$invalid" / >
< / fieldset >
< / form >
< / div >
< div class = "modal-footer " >
2020-11-12 11:42:11 +01:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > {{ 'main.dialog.cancel' | tr }}< / button >
< button type = "submit" class = "btn btn-outline btn-success pull-right" ng-click = "testEmail.submit()" ng-disabled = "testEmail.$invalid || testEmail.busy" > < i class = "fa fa-circle-notch fa-spin" ng-show = "testEmail.busy" > < / i > {{ 'emails.testMailDialog.sendAction' | tr }}< / button >
2020-02-12 14:51:06 +01:00
< / div >
< / div >
< / div >
< / div >
2021-12-08 11:33:36 -08:00
< div class = "content" >
2020-02-11 21:06:34 +01:00
< div class = "text-left" >
2021-02-18 11:25:38 +01:00
< h1 >
{{ 'emails.title' | tr }}
2021-09-26 12:19:32 -07:00
2022-08-31 08:45:28 +02:00
< div class = "pull-right" >
< a class = "btn btn-default" ng-show = "user.isAtLeastOwner" href = "#/emails-queue" > {{ 'emails.action.queue' | tr }}< / a >
< a class = "btn btn-default" ng-show = "user.isAtLeastOwner" href = "#/emails-eventlog" > {{ 'eventlog.title' | tr }}< / a >
2021-09-26 12:19:32 -07:00
< / div >
2021-02-18 11:25:38 +01:00
< / h1 >
2020-02-11 21:06:34 +01:00
< / div >
2020-02-11 22:07:58 -08:00
< div class = "text-left" >
2020-11-12 11:42:11 +01:00
< h3 > {{ 'emails.domains.title' | tr }}< / h3 >
2020-02-11 22:07:58 -08:00
< / div >
2021-12-08 11:33:36 -08:00
< div class = "card" style = "margin-bottom: 15px;" >
2020-02-11 21:06:34 +01:00
< div class = "row ng-hide" ng-hide = "ready" >
< div class = "col-lg-12 text-center" >
< h2 > < i class = "fa fa-circle-notch fa-spin" > < / i > < / h2 >
< / div >
< / div >
< div class = "row animateMeOpacity ng-hide" ng-show = "ready" >
< div class = "col-xs-12" >
< table class = "table table-hover" style = "margin: 0;" >
< thead >
< tr >
2020-02-12 14:10:21 +01:00
< th style = "width: 5%" > < / th >
2020-11-12 11:42:11 +01:00
< th style = "width: 30%" > {{ 'emails.domains.domain' | tr }}< / th >
< th style = "width: 60%" > {{ 'emails.domains.config' | tr }}< / th >
2020-11-11 22:50:57 +01:00
< th style = "width: 10%" > {{ 'main.actions' | tr }}< / th >
2020-02-11 21:06:34 +01:00
< / tr >
< / thead >
< tbody >
< tr ng-repeat = "domain in domains" >
2020-02-12 14:10:21 +01:00
< td >
2022-02-16 18:52:34 +01:00
< i class = "fa fa-circle" ng-class = "{ 'status-active': domain.statusOk, 'status-error': !domain.statusOk }" ng-show = "domain.status" > < / i >
2020-02-12 14:10:21 +01:00
< i class = "fa fa-circle-notch fa-spin" ng-hide = "domain.status" > < / i >
< / td >
2020-02-11 21:06:34 +01:00
< td class = "elide-table-cell no-padding" >
< a href = "/#/email/{{ domain.domain }}" class = "email-domain-list-item" > {{ domain.domain }}< / a >
< / td >
2020-02-20 12:35:51 -08:00
< td class = "elide-table-cell no-padding" >
< a href = "/#/email/{{ domain.domain }}" class = "email-domain-list-item" >
2023-03-25 12:06:33 +01:00
< span ng-show = "domain.inbound && domain.outbound && domain.usage === null" > {{ 'main.loadingPlaceholder' | tr }} ...< / span >
< span ng-show = "domain.inbound && domain.outbound && domain.usage !== null" > {{ 'emails.domains.stats' | tr:{ mailboxCount: domain.mailboxCount, usage: (domain.usage | prettyDecimalSize) } }}< / span >
2020-11-12 11:42:11 +01:00
< span ng-show = "!domain.inbound && domain.outbound" > {{ 'emails.domains.outbound' | tr }}< / span >
< span ng-show = "!domain.inbound && !domain.outbound" > {{ 'emails.domains.disabled' | tr }}< / span >
2020-02-20 12:35:51 -08:00
< / a >
< / td >
2020-02-11 21:06:34 +01:00
< td class = "text-right no-wrap" >
2020-11-12 11:42:11 +01:00
< button class = "btn btn-xs btn-default" ng-click = "testEmail.show(domain)" uib-tooltip = "{{ 'emails.domains.testEmailTooltip' | tr }}" > < i class = "fa fa-paper-plane" > < / i > < / button >
2020-02-12 14:51:06 +01:00
< a href = "/#/email/{{ domain.domain }}" class = "btn btn-xs btn-default" > < i class = "fa fa-pencil-alt" > < / i > < / a >
2020-02-11 21:06:34 +01:00
< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / div >
< / div >
2023-05-02 14:29:52 +02:00
< div class = "text-left section-header" ng-show = "user.isAtLeastOwner" >
2021-12-08 11:33:36 -08:00
< h3 > {{ 'emails.mailboxSharing.title' | tr }}< / h3 >
< / div >
< div class = "card" ng-show = "user.isAtLeastOwner" style = "margin-bottom: 15px;" >
< div class = "row" >
< div class = "col-md-12" >
< p > {{ 'emails.mailboxSharing.description' | tr }}< / p >
2022-02-16 18:48:22 +01:00
< / div >
< / div >
< div class = "row" >
< div class = "col-md-2" style = "padding-top: 12px;" >
< i class = "fa fa-circle" ng-class = "{ 'status-active': mailboxSharing.enabled, 'status-inactive': !mailboxSharing.enabled }" > < / i > {{ mailboxSharing.enabled ? 'main.statusEnabled' : 'main.statusDisabled' | tr }}
< / div >
< div class = "col-md-10 text-right" >
< button class = "btn" ng-class = "{ 'btn-danger': mailboxSharing.enabled, 'btn-primary': !mailboxSharing.enabled }" ng-click = "mailboxSharing.submit()" ng-disabled = "mailboxSharing.enable === mailboxSharing.enabled" > < i class = "fa fa-circle-notch fa-spin" ng-show = "mailboxSharing.busy" > < / i > {{ mailboxSharing.enabled ? ('main.disableAction' | tr) : ('main.enableAction' | tr) }} < / button >
2021-12-08 11:33:36 -08:00
< / div >
< / div >
< / div >
2023-05-02 14:29:52 +02:00
< div class = "text-left section-header" ng-show = "user.isAtLeastOwner" >
2020-11-12 11:42:11 +01:00
< h3 > {{ 'emails.settings.title' | tr }}< / h3 >
2020-08-17 22:44:01 +02:00
< / div >
2021-12-08 11:33:36 -08:00
< div class = "card" ng-show = "user.isAtLeastOwner" style = "margin-bottom: 15px;" >
2020-11-12 11:42:11 +01:00
< p ng-bind-html = " 'emails.settings.info' | tr " > < / p >
2020-08-17 22:44:01 +02:00
< div class = "row" >
< div class = "col-xs-6" >
2020-11-12 11:42:11 +01:00
< span class = "text-muted" > {{ 'emails.settings.location' | tr }}< / span >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "col-xs-6 text-right" >
2020-08-20 23:06:22 -07:00
< span > {{ mailLocation.currentLocation.subdomain + (!mailLocation.currentLocation.subdomain ? '' : '.') + mailLocation.currentLocation.domain.domain }}
2020-09-09 21:05:06 -07:00
< a ng-hide = "mailLocation.busy" href = "" ng-click = "mailLocation.show()" > < i class = "fa fa-edit text-small" > < / i > < / a > <!-- ng - disabled does not work for links -->
2020-08-20 23:06:22 -07:00
< / span >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "col-xs-6" >
2020-11-12 11:42:11 +01:00
< span class = "text-muted" > {{ 'emails.settings.maxMailSize' | tr }}< / span >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "col-xs-6 text-right" >
Fix SI and Decimal unit usage
SI: For 1000, it is kB, MB, GB
IEC: For 1024, it is KiB, MiB, GiB
JEDEC: For 1024, it is KB, MB (conflicts with SI, of course)
Ultimately, what we decided is for RAM use IEC and for Disk use SI.
This is what docker does and also suggested here -
https://stackoverflow.com/questions/8632269/displaying-file-size-1000b-1kb-or-1024b-1kb
2022-10-13 21:48:03 +02:00
< span > {{ maxEmailSize.currentSize | prettyDecimalSize }} < a href = "" ng-click = "maxEmailSize.show()" > < i class = "fa fa-edit text-small" > < / i > < / a > < / span >
2020-08-17 22:44:01 +02:00
< / div >
2021-10-13 14:22:37 -07:00
< div class = "col-xs-6" >
< span class = "text-muted" > {{ 'emails.settings.acl' | tr }}< / span >
< / div >
< div class = "col-xs-6 text-right" >
< span > {{ 'emails.settings.aclOverview' | tr:{ dnsblZonesCount: acl.dnsblZonesCount } }} < a href = "" ng-click = "acl.show()" > < i class = "fa fa-edit text-small" > < / i > < / a > < / span >
< / div >
2020-08-17 22:44:01 +02:00
< div class = "col-xs-6" >
2020-11-12 11:42:11 +01:00
< span class = "text-muted" > {{ 'emails.settings.spamFilter' | tr }}< / span >
2020-08-17 22:44:01 +02:00
< / div >
< div class = "col-xs-6 text-right" >
2020-11-12 23:13:52 +01:00
< span > {{ 'emails.settings.spamFilterOverview' | tr:{ blacklistCount: spamConfig.acl.blacklist.length } }} < a href = "" ng-click = "spamConfig.show()" > < i class = "fa fa-edit text-small" > < / i > < / a > < / span >
2020-08-17 22:44:01 +02:00
< / div >
2020-11-19 17:45:16 -08:00
< div class = "col-xs-6" >
< span class = "text-muted" > {{ 'emails.settings.solrFts' | tr }}< / span >
< / div >
2022-02-09 16:22:44 +01:00
< div class = "col-xs-6 text-right" ng-hide = "solrConfig.currentConfig" >
< i class = "fa fa-circle-notch fa-spin" > < / i >
< / div >
2020-12-02 17:33:54 -08:00
< div class = "col-xs-6 text-right" ng-show = "solrConfig.currentConfig" >
2020-12-02 17:16:59 -08:00
< span ng-show = "solrConfig.currentConfig.enabled" >
{{ 'emails.settings.solrEnabled' | tr }}
< span ng-show = "solrConfig.running" > / {{ 'emails.settings.solrRunning' | tr }}< / span >
< span ng-hide = "solrConfig.running" > / {{ 'emails.settings.solrNotRunning' | tr }}< / span >
< / span >
2020-11-19 17:45:16 -08:00
< span ng-hide = "solrConfig.currentConfig.enabled" > {{ 'emails.settings.solrDisabled' | tr }}< / span >
< a href = "" ng-click = "solrConfig.show()" > < i class = "fa fa-edit text-small" > < / i > < / a >
< / div >
2020-08-17 22:44:01 +02:00
< / div >
2020-09-01 16:31:23 +02:00
< div class = "row" ng-show = "mailLocation.busy" >
< div class = "col-md-12" style = "margin-top: 10px;" >
2020-11-12 11:42:11 +01:00
{{ 'emails.settings.changeDomainProgress' | tr }}
2021-12-13 20:39:23 +01:00
< div style = "display: flex; margin: 4px 0;" >
< div class = "progress progress-striped active animateMe" style = "flex-grow: 1;" >
< div class = "progress-bar progress-bar-success" role = "progressbar" style = "width: {{ mailLocation.percent }}%" > < / div >
< / div >
< div ng-show = "mailLocation.taskMinutesActive >= 2" class = "text-danger hand" style = "margin: 0 4px;" ng-click = "mailLocation.stopTask()" uib-tooltip = "Cancel Task" > < i class = "fas fa-times" > < / i > < / div >
2020-09-01 16:31:23 +02:00
< / div >
< p > {{ mailLocation.message }}< / p >
< / div >
< / div >
2020-08-17 22:44:01 +02:00
< / div >
2020-02-11 21:06:34 +01:00
< / div >