Viewing File: /usr/local/cpanel/base/frontend/jupiter/email_accounts/views/create.ptt

<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>
<section ng-show="!emailAccount.isLoading && accountStats.available != 0">
    <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>
                                                    <input type="radio" name="limitOptions"
                                                        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">
                                                <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>
Back to Directory File Manager