File manager - Edit - /usr/local/cpanel/base/frontend/jupiter/email_accounts/views/create.ptt
Back
<section> <p id="descEmailAccountsCreate" class="description"> [% locale.maketext("Use this page to create new email addresses for any of the domains on your [asis,cPanel] account.") %] [% locale.maketext("Want to learn more? Read our [output,url,_1,documentation,class,externalLink,target,_2,id,_3].", "https://go.cpanel.net/CreateEmailAccount", "cp-create-email", "lnkCreateEmailAccountsDocumentation") %] </p> </section> <cp-loading-panel id="createLoadingPanel" ng-show="emailAccount.isLoading"> <span>[% locale.maketext('Loading …') %]</span> </cp-loading-panel> <callout ng-if="accountStats.available==0" callout-type="warning" callout-heading="[% locale.maketext('Warning: Cannot create additional email accounts') %]"> <p>[% locale.maketext("You have reached the maximum number of accounts and can’t create any more. We’re redirecting you to [output,url,_1,the list of email accounts,id,_2] …", "#/list/","lnkListEmailView") %]</p> </callout> <callout ng-if="!mailDomains.length && !emailAccount.isLoading" callout-type="warning" callout-heading="[% locale.maketext('Warning:') %]"> <p>[% locale.maketext("Cannot create email accounts for temporary domains. We are redirecting you to [output,url,_1,the list of email accounts,id,_2] …", "#/list/","lnkListEmailView") %]</p> </callout> <section ng-show="!emailAccount.isLoading && accountStats.available != 0 && mailDomains.length"> <div class="row"> <div class="col-xs-12 col-sm-8 col-md-6"> <form name="emailAccount.frmCreateEmail" novalidate> <div class="panel panel-default"> <div class="panel-heading"> <div class="widget-title pull-left flip"> [% locale.maketext('Create an Email Account')%] </div> <div class="pull-right flip"> <button type="button" class="btn btn-default btn-xs" id="lnkshowHideHelp" ng-click="emailAccount.toggleHelp()"> [% locale.maketext("Show/Hide Help") %] <i class="far fa-question-circle form-info-sign"></i> </button> </div> <div class="clearfix"></div> </div> <div class="panel-body"> <!-- Domain --> <div class="form-group" ng-if="mailDomains.length > 1"> <toggle-label-info id="lblDomain" for="ddlDomain" label-text="[% locale.maketext('Domain') %]" show-info-block="{{showAllHelp}}" > [% locale.maketext('Choose the domain that you want to use. Your email address will end with this domain ([asis,username@domain.com]).') %] </toggle-label-info> <div class="row"> <div class="col-xs-12"> [% IF !CPANEL.ua_is_mobile %] <select id="ddlDomain" name="ddlDomain" class="form-control" search_contains="true" chosen width="'100%'" ng-class="::{ 'chosen-rtl': emailAccount.isRTL }" ng-model="emailAccount.details.domain" ng-options="domain for domain in mailDomains" auto-focus="mailDomains.length > 1"> <option value=""></option> </select> [% ELSE %] <select id="ddlDomain" name="ddlDomain" class="form-control" ng-model="emailAccount.details.domain" ng-options="domain for domain in mailDomains" auto-focus="mailDomains.length > 1"> </select> [% END %] <span class="help-block"> [% locale.maketext("Missing a domain? Check the [output,em,Missing a domain?] section to find out how you can create one.") %] </span> </div> <div class="col-xs-12"> <div id="ddlDomain_error"></div> </div> </div> </div> <!-- user name --> <div class="form-group"> <div class="row"> <div class="col-xs-12"> <toggle-label-info for="txtUserName" label-text="[% locale.maketext('Username') %]" show-info-block="{{showAllHelp}}" > [% locale.maketext('Enter the username that you want to use. Your email address will start with this username ([asis,username@domain.com]).') %] </toggle-label-info> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="input-group"> <input id="txtUserName" name="txtUserName" type="text" class="form-control" size="64" ng-model="emailAccount.details.userName" ng-required="true" username="cpanel" maxlength="64" placeholder="[% locale.maketext("Enter your email address’s username here.") %]" email-full-length="254" email-other-value="emailAccount.details.domain" auto-focus="mailDomains.length == 1" autocomplete="off" /> <span id="spanAddEmailAccountDomains" class="input-group-addon" title="@{{ emailAccount.details.domain }}"> <span class="text-truncate domain-text"> @{{ emailAccount.details.domain }} <input type="hidden" name="domain" ng-model="emailAccount.details.domain" ng-if="::mailDomains.length === 1"/> </span> </span> </div> <span class="help-block"> <div class="missing-domain-link"> <a ng-click="emailAccount.scrollToMissingDomains()"> [% locale.maketext("Missing a domain?") %] </a> </div> </span> </div> <div class="col-xs-12"> <ul validation-container field-name="txtUserName" role="alert" id="txtUserNameErrorPanel"> <li validation-item field-name="txtUserName" validation-name="required" id="valUsernameRequired"> [% locale.maketext('Enter a username.') %] </li> <li validation-item field-name="txtUserName" validation-name="maxlength" id="valUsernameMaxLength"> [% locale.maketext("Your username cannot contain more than [numf,_1] characters.", 64) %] </li> <li validation-item field-name="txtUserName" validation-name="emailFulllength" id="valUsernameFullLength"> [% locale.maketext("Your email address cannot contain more than [numf,_1] characters.", 254) %] </li> </ul> </div> </div> </div> <!-- Set password or email --> <div class="row"> <div class="col-xs-12"> <label id="lblAddEmailPassword" for="txtEmailPassword"> [% locale.maketext('Password') %] </label> </div> </div> <div class="form-group invite-password-section" ng-if="isInviteSubEnabled"> <div class="row"> <div class="col-xs-12"> <div class="radio"> <label for="setPasswordNow"> <input type="radio" name="incomingRadio" id="setPasswordNow" ng-model="emailAccount.details.setPassword" ng-value="true" value="true"> [% locale.maketext("Set password now.") %] </label> </div> <div class="radio"> <label for="setPasswordLater"> <input type="radio" name="incomingRadio" id="setPasswordLater" ng-model="emailAccount.details.setPassword" ng-value="false" value="false"> [% locale.maketext("Send login link to alternate email address.") %] </label> </div> </div> </div> </div> <!-- additional contact email --> <div class="form-group" ng-if="!emailAccount.details.setPassword"> <div class="row"> <div class="col-xs-12"> <toggle-label-info for="txtRecoveryEmail" label-text="[% locale.maketext('Alternate Email') %]" label-id="lblRecoveryEmail" info-icon-id="icoRecoveryEmail" info-block-id="txtRecoverEmailInfo" show-info-block="{{showAllHelp}}" > [% locale.maketext('We will send notifications and password reset emails to this address.') %] </toggle-label-info> </div> <div class="col-xs-12"> <div class="row"> <div class="col-xs-12"> <input id="txtRecoveryEmail" name="txtRecoveryEmail" required email="rfc" email-not-reserved-include-sub-addresses="{{ emailAccount.details.userName + '@' + emailAccount.details.domain }}" class="form-control" placeholder="alt.email@another.domain.tld" title="[% locale.maketext('Enter your alternate email address.') %]" ng-model="emailAccount.details.recoveryEmail" auto-focus="!emailAccount.details.setPassword"> <span class="help-block"> [% locale.maketext("The system will send an email with a password reset link. This will allow the user to choose a password.") %] </span> </div> <div class="col-xs-12"> <ul validation-container field-name="txtRecoveryEmail" id="txtRecoveryEmailErrorPanel"> <li validation-item field-name="txtRecoveryEmail" validation-name="required" id="valTxtRecoveryEmailRequired"> [% locale.maketext('Provide a valid email address where we can send the password link.') %] </li> </ul> </div> </div> </div> </div> </div> <!-- Password --> <div class="form-group" ng-if="emailAccount.details.setPassword"> <div class="row"> <div class="col-xs-12"> <!-- prevent password autofill --> <input type="text" style="display:none"> <input type="password" autocomplete='off' style="display:none"> <!-- prevent Firefox from displaying the "Save Password" dialog --> <input type="password" autocomplete='off' style="display:none;" value="fakepassword1"> <input type="password" autocomplete='off' style="display:none;" value="fakepassword2"> <password name="txtEmailPassword" password="emailAccount.details.password" minimum-length="5" minimum-strength="{{::requiredPasswordStrength}}" show-meter="true" show-strength="false" show-generator="true" generate-button-tab-index="-1" toggle-view-button-tab-index="-1" generate-settings-tab-index="-1" required auto-focus="emailAccount.details.setPassword"></password> </div> <div class="col-xs-12"> <ul validation-container id="txtEmailPasswordErrorPanel" field-name="txtEmailPassword"> <li validation-item field-name="txtEmailPassword" validation-name="minlength" id="val-password-minlength"> [% locale.maketext('Your password must contain at least [quant,_1,character,characters].', 5) %] </li> <li validation-item field-name="txtEmailPassword" validation-name="required" id="val-password-required"> [% locale.maketext('Enter a password.') %] </li> <li validation-item field-name="txtEmailPassword" validation-name="minimumPasswordStrength" id="val-password-minimum-strength"> [%- locale.maketext('Enter a [output,strong,stronger] password.') -%] </li> </ul> </div> </div> </div> <div class="form-group"> <div class="row optional-settings-header"> <div class="col-xs-12"> <div class="pull-left flip optional-settings-text"> <strong>[% locale.maketext("Optional Settings") %]</strong> </div> <div class="pull-right flip"> <button type="button" class="btn btn-default btn-xs" id="btnShowOptionalSettings" ng-click="emailAccount.toggleOptionalSettingsButtonState()"> <i class="{{OptionalSettingsIconClass}}" aria-hidden="true"></i> {{OptionalSettingsButtonText}} </button> </div> </div> </div> </div> <div id="optionalSettingsDiv" class="optional-settings-content" ng-if="showOptionalSettings"> <!-- Set quota --> <div class="form-group" id="storageSection"> <div class="row"> <div class="col-xs-12"> <toggle-label-info for="quota" label-text="[% locale.maketext('Storage Space') %]" label-id="lblDiskSpace" info-icon-id="icoDiskSpace" info-block-id="txtDiskSpace" show-info-block="{{showAllHelp}}"> [% locale.maketext('The amount of space that your email account can use to store emails.') %] </toggle-label-info> </div> </div> <div class="row"> <div class="col-xs-12 pull-left flip"> <div class="radio"> <label> <input type="radio" name="limitOptions" id="limitedQuota" ng-model="emailAccount.details.quotaType" value="userdefined"> <bytes-input name="quota" ng-model="emailAccount.details.quota" display-format="si" value-format="binary" value-unit="MiB" selected-unit="emailAccount.details.quotaUnit" ng-required="emailAccount.details.quotaType === 'userdefined'" is-disabled="emailAccount.details.quotaType !== 'userdefined'" size="11" bytes-input-min="1" bytes-input-max="{{::maxQuota}}"/> </label> </div> </div> <div class="col-xs-12"> <div class="radio"> <label data-testid="unlimitedQuotaLabel"> <input type="radio" name="limitOptions" data-testid="unlimitedQuotaRadioButton" id="unlimitedQuota" ng-model="emailAccount.details.quotaType" value="unlimited"> {{maxEmailQuotaText}} </label> </div> </div> <div class="col-xs-12"> <ul validation-container field-name="quota" id="valQuotaErrorPanel" data-testid="quotaErrorPanel"> <li validation-item field-name="quota" validation-name="max" id="val-quota-max-quota"> {{maxQuotaHelpText}} </li> <li validation-item field-name="quota" validation-name="required" id="val-quota-required"> [% locale.maketext("Enter a number.") %] </li> <li validation-item field-name="quota" validation-name="number" id="val-quota-number"> [% locale.maketext("Enter a number.") %] </li> <li validation-item field-name="quota" validation-name="min" id="val-quota-min-quota"> [% locale.maketext("Enter a number that is larger than zero.") %] </li> <li validation-item field-name="quota" validation-name="integer" id="val-quota-positive-integer"> [% locale.maketext("Enter a positive number.") %] </li> </ul> </div> </div> </div> <!-- sub addressing --> <div class="form-group sub-addressing-section"> <div class="row"> <div class="col-xs-12"> <toggle-label-info id="lblSubaddressing" for="autoaddressing" label-text="[% locale.maketext('Automatically Create Folders for Plus Addressing') %]" show-info-block="{{showAllHelp}}" > [% locale.maketext('Automatically create a folder when this email address receives a message that uses plus addressing. For example, the system would place a message addressed to “[_1]” in a new folder called “[asis,plusaddress]”.', "{{ emailAccount.examplePlusAddress }}") %] </toggle-label-info> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="radio"> <label for="autoAddressingCreate"> <input type="radio" name="autoaddressing" id="autoAddressingCreate" ng-model="emailAccount.details.autoCreateSubaddressFolders" ng-value="true" value="true"> [% locale.maketext("Automatically Create Folders") %] </label> </div> <div class="radio"> <label for="autoAddressingInbox"> <input type="radio" name="autoaddressing" id="autoAddressingInbox" ng-model="emailAccount.details.autoCreateSubaddressFolders" ng-value="false" value="false"> [% locale.maketext("Do Not Automatically Create Folders") %] </label> </div> </div> </div> </div> <!-- Send email to set mail box --> <div class="row"> <div class="col-xs-12"> <div class="checkbox create-email-checkbox send-email-checkbox"> <label> <input type="checkbox" name="send_welcome_email" id="send_welcome_email" value="1" ng-model="emailAccount.details.sendWelcomeEmail"> [% locale.maketext("Send a welcome email with instructions to set up a mail client.") %] </label> </div> </div> </div> </div> </div> <div class="panel-footer"> <div class="checkbox create-email-checkbox"> <label> <input type="checkbox" name="stay" id="stay" ng-model="emailAccount.details.stayOnView" ng-change="emailAccount.stayOnPageChanged()"> [% locale.maketext("Stay on this page after I click [output,em,Create].") %] </label> </div> <hr class="separator"/> <button id="btnCreateEmailAccount" type="submit" spinner-id="spinnerCreateEmail" cp-action="emailAccount.create(emailAccount.details)" title="[% locale.maketext('Click here to create your new email account.') %]"> <i class="fas fa-plus" aria-hidden="true"></i> [% locale.maketext("Create") %] </button> <button id="btnCancelEmailAccount" type="button" class="btn btn-link pull-right flip" ng-click="emailAccount.backToListView()" title="[% locale.maketext('Go back to the list of email accounts.') %]"> <i class="fas" ng-class="{ 'fa-arrow-left': !emailAccount.RTL, 'fa-arrow-right': emailAccount.isRTL }" aria-hidden="true"></i> [% locale.maketext('Go Back') %] </button> </div> </div> </form> </div> <div class="col-xs-12 col-sm-4 col-md-3"> <div class="margin-bottom-20" ng-class="emailAccount.statsCssClass"> <stats used-id="lblUsed" ng-model="accountStats.used" available-id="lblAvailable" max="accountStats.maximum" upgrade-link-id="lblUpgradeLink" upgrade-link="{{upgradeURL}}" upgrade-link-text="[% locale.maketext('Buy More') %]" show-upgrade-link="true" upgrade-link-target="emailUpgrade" > </stats> </div> <section class="widget" id="missingDomainSection"> <h3 class="widget-title">[% locale.maketext('Missing a domain?')%]</h3> <ul> <li> <p class="widget-item-description"> [% locale.maketext('Navigate to a full list of the account’s domains.') %] </p> <a href="[% CPANEL.CPVAR.dprefix _ 'domains/index.html' %]" title="[% locale.maketext('Manage your account’s domains.') %]" target="domain"> <i class="fas fa-wrench"></i> [% locale.maketext("Manage Domains") %] </a> </li> </ul> </section> <section class="widget"> <h3 class="widget-title">[% locale.maketext('Need Help?')%]</h3> <ul> <li> <a href="https://go.cpanel.net/CreateEmailAccount" title="[% locale.maketext('Need help? Click here to read more about how to create and manage email addresses.') %]" target="cp-create-email"> <i class="fas fa-fw fa-external-link-alt" aria-hidden="true"></i> [% locale.maketext("About This Interface") %] </a> </li> </ul> </section> </div> </div> </section>
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.05 |
proxy
|
phpinfo
|
Settings