Viewing File: /usr/local/cpanel/base/frontend/jupiter/mail/csvimport-step2.html.tt

[% SET CPANEL.CPVAR.dprefix = "../" %]

[%
USE Api2;
USE Uapi;

IF FORM.item('csvimportid');
    SET CPANEL.CPVAR.csvimportid = FORM.item('csvimportid');
ELSE;
    SET api2_result_CSVImport_uploadimport = Api2.exec("CSVImport" , "uploadimport" , {});
    SET api2_result_CSVImport_processdata = Api2.exec("CSVImport" , "processdata" , {
        "otherdelimiter" => RAW_FORM.other_delimiter,
        "csvimportid" => CPANEL.CPVAR.csvimportid.html,
        "colheader" => RAW_FORM.colheader,
        "delimiter" => RAW_FORM.delimiter
    });
END;

SET api2_result_CSVImport_loaddata = Api2.exec("CSVImport" , "loaddata" , {
    "csvimportid" =>CPANEL.CPVAR.csvimportid.html
});
SET csv_columnchoices = Api2.exec("CSVImport" , "columnchoices" , {
    "type" =>(RAW_FORM.item("importtype"))
});
SET import_type_data = Api2.exec("CSVImport" , "data" , {
    "type" =>(RAW_FORM.item("importtype"))
});

SET list_mail_domains_response = execute("Email", "list_mail_domains", {});

SET return_link = "csvimport.html?importtype=" _ RAW_FORM.item('importtype').uri() _ "&csvimportid=" _ RAW_FORM.item('csvimportid').uri();
%]

[% js_code = PROCESS js_block %]
[% WRAPPER '_assets/master.html.tt'
    app_key = 'address_importer'
    page_js = js_code
-%]
<div class="body-content">
    [% IF list_mail_domains_response.status %]
        [% IF (FORM.item('importtype') == "fwd") %]
            <h2 id="hdrImportFwds">[% locale.maketext("Import Forwarders") %]</h2>
        [% END %]

        [% IF (FORM.item('importtype') == "email") %]
            <h2 id="hdrImportAddrs">[% locale.maketext("Import E-mail Accounts") %]</h2>
        [% END %]

        <div class="section">
            <form action="csvimport-step3.html" method="get">
                <input id="hidImportType" type="hidden" name="importtype" value="[% FORM.item('importtype') %]" />
                <input id="hidImportId" type="hidden" name="csvimportid" value="[% CPANEL.CPVAR.item('csvimportid').html() %]" />

                <h2 id="step1header" style="display:none;">[% locale.maketext("Step 1") %]</h2>
                <p>[% locale.maketext("Choose the header from the dropdown in the table that corresponds to each column.") %]</p>

                <div>
                    <table id="ssimport" class="nonsortable table table-striped" >
                        <tr>
                            [% IF csv_columnchoices.size; %]
                                [% FOREACH hashref IN csv_columnchoices; %]
                                <th>
                                    <select class="form-control" onchange="checkcols(this);" name="header[% hashref.num.html() %]">
                                        [% FOREACH deep_hashref IN hashref.item("options") %]
                                            <option value="[% deep_hashref.colshortname.html() %]" [% deep_hashref.colselected.html() %]>
                                                [% deep_hashref.colname.html() %]
                                            </option>
                                        [% END; %]
                                    </select>
                                </th>
                                [% END; %]
                            [% ELSE %]
                                <th>[% locale.maketext("No data could be extracted.") %]</th>
                            [% END %]
                        </tr>
                        [% IF import_type_data.size; %]
                            [% FOREACH hashref IN import_type_data; %]
                                <tr id="row[% hashref.num.html() %]">
                                    [% FOREACH deep_hashref IN hashref.item("row"); %]
                                        <td>[% deep_hashref.value.html() %]</td>
                                    [% END; %]
                                </tr>
                            [% END; %]
                        [% END %]
                    </table>
                </div>

                <div id="step2" style="display:none;">
                    <h2>[% locale.maketext("Step 2") %]</h2>
                    <p>[% locale.maketext("Select the domain for the users in the list. [output,strong,NOTE]: You will see an appended list if the column contains a list of usernames instead of email addresses.") %]</p>

                    <div class="form-group">
                        <label id="lblDomainSel" for="domainSel">[% locale.maketext("Domain") %]</label>
                        <div class="row">
                            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
                                <select id="domainSel" name="domain" class="form-control">
                                    [% FOREACH domain IN list_mail_domains_response.data %]
                                        <option value="[% domain.domain.html() %]">[% domain.domain.html() %]</option>
                                    [% END %]
                                </select>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="form-group">
                    [% IF csv_columnchoices.size %]
                        <input id="btnNext"
                            type="submit"
                            class="btn btn-primary"
                            value="[% locale.maketext("Next") %]" />
                    [% ELSE %]
                        <input id="btnNext"
                            type="submit"
                            class="btn btn-primary"
                            disabled
                            value="[% locale.maketext("Next") %]" />
                    [% END %]
                </div>
            </form>
        </div>
    [% ELSE %]
        <div class="alert alert-danger" role="alert">
            <span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span>
            <div class="alert-message">
                <strong class="alert-title">[% locale.maketext('Error:') %]</strong>
                <span class="alert-body">
                    [% FOREACH err IN list_mail_domains_response.errors %]
                        [% err.html() %]
                    [% END %]
                </span>
            </div>
        </div>
    [% END %]

    [% INCLUDE _assets/return_link.html.tt return_location=return_link return_link_text=locale.maketext('Go Back') %]
</div>
[% END #wrapper %]

[% BLOCK js_block %]
<script type="text/javascript">
    var importDataPresent = [% csv_columnchoices.size %];
    var emailcol = 0;
    var domainlist = {};
    var domainlistLoaded = 0;
    YAHOO.util.Event.onAvailable('ssimport', checktbl);


    function loadDomainList() {
        var selEl=document.getElementById('domainSel');
        for(var i=0;i<selEl.options.length;i++) {
            domainlist[selEl.options[i].value]=1;
        }
        domainlistLoaded = 1;
    }

    function checktbl() {
        if (importDataPresent) {
            var tableEl = document.getElementById('ssimport');
            var columnCells = tableEl.rows[0].cells;

            for(var i=0;i<columnCells.length;i++) {
                var selectEls=columnCells[i].getElementsByTagName('select');
                checkcols(selectEls[0]);
            }
        }
    }
    function checkcols(selectboxEl) {

        var headerTH = selectboxEl.parentNode;
        var headerTBL = selectboxEl.parentNode;
        var columnNum = headerTH.cellIndex;

        if (selectboxEl.selectedIndex == -1) {
            if (columnNum == emailcol) { hideStep2(); }
            return;
        }
        var selectVal = selectboxEl.options[selectboxEl.selectedIndex].value;

        if (! domainlistLoaded) {loadDomainList();}

        while(headerTBL && headerTBL.tagName != "TBODY") {
            headerTBL=headerTBL.parentNode;
        }
        for(var i=1;i<headerTBL.rows.length;i++) {
            var tblData = headerTBL.rows[i].cells[columnNum].innerHTML;
            if (! tblData.match(/\@/)) {
                    emailcol = columnNum;
                    showStep2();
                    return;
            } else {
                var emailParts = tblData.split('@');
                if (!domainlist[emailParts[1]]) {
                    showStep2();
                    return;
                }
            }
        }
        hideStep2();

    }
    function hideStep2() {
        document.getElementById('step2').style.display='none';
        document.getElementById('step1header').style.display='none';
    }


    function showStep2() {
        document.getElementById('step2').style.display='';
        document.getElementById('step1header').style.display='';
    }

</script>
[% END %]
Back to Directory File Manager