<?php
// Copyright 1999-2015. Parallels IP Holdings GmbH. All Rights Reserved.
?>
<script type="text/javascript">
//<![CDATA[
Jsw.onReady(function() {
    new Jsw.Panel({
        cls: 'list-box',
        renderTo: 'main',

        items: [
            new Jsw.Hint({
                hint: <?php echo $this->sitesList->jsLmsg('listDescription'); ?>
            }),

            new Jsw.List({
                id: 'sites-list',
                searchable: false,
                disabledSelectHint: <?php echo $this->sitesList->jsLmsg('disabledSelectHint');?>,
                data: <?php echo Zend_Json::encode($this->sitesList->fetchData()); ?>,
                dataUrl: '/web/list-data',

                isDisabledItem: function(item) {
                    return !item.isRemovable;
                },

                columns: [
                    <?php if (($this->allowCreateDomain || $this->allowManageSubdomain || $this->allowManageDomainAliases)): ?>
                    Jsw.list.COLUMN_SELECTION,
                    <?php endif; ?>
                    {
                        header: <?php echo $this->sitesList->jsLmsg('domainHeader'); ?>,
                        sortable: true,
                        dataIndex: 'displayName',
                        renderer: function(item) {
                            var link = '<a href="' + Jsw.baseUrl + '/web/overview/id/' + item.id + '">'
                                 + item.displayName.escapeHTML() + '</a>';

                            if (item.mainDomain) {
                                link = '<strong class="primary-domain">' + link + '</strong>';
                            }

                            if (item.isSuspended) {
                                link = link
                                    + '<div class="hint-sub hint-attention">'
                                    + <?php echo $this->sitesList->jsLmsg('suspended'); ?>;
                                if (item.error503PageUrl) {
                                    link = link
                                        + ' <a href="' + Jsw.baseUrl + item.error503PageUrl + '">'
                                            + <?php echo $this->sitesList->jsLmsg('error503PageLink'); ?>
                                        + '</a>'
                                }
                                link = link
                                    + '</div>';
                            } else if (item.isDisabled) {
                                link = link
                                    + '<div class="hint-sub hint-attention">'
                                    + <?php echo $this->sitesList->jsLmsg('disabled'); ?>
                                    + '</div>';
                            }

                            if (item.customDescription) {
                                if (item.customDescription.admin) {
                                    link = link
                                        + '<div class="minor">'
                                        + item.customDescription.admin.truncate(50, '...').escapeHTML()
                                        + '<span class="tooltipData">' + item.customDescription.admin.escapeHTML() + '</span></div>';
                                }
                                if (item.customDescription.reseller) {
                                    var description = item.customDescription.admin ? <?php echo $this->sitesList->jsLmsg('resellerDescription');?> + ': ' : '' ;
                                    link = link
                                        + '<div class="minor">'
                                        + description
                                        + item.customDescription.reseller.truncate(50, '...').escapeHTML()
                                        + '<span class="tooltipData">' + item.customDescription.reseller.escapeHTML() + '</span></div>';
                                }
                                if (item.customDescription.owner) {
                                    var description = (item.customDescription.admin || item.customDescription.reseller) ? <?php echo $this->sitesList->jsLmsg('ownerDescription');?> + ': ' : '' ;
                                    link = link
                                        + '<div class="minor">'
                                        + description
                                        + item.customDescription.owner.truncate(50, '...').escapeHTML()
                                        + '<span class="tooltipData">' + item.customDescription.owner.escapeHTML() + '</span></div>';
                                }
                            }

                            if (item.isSubdomain || item.isDomainAlias) {
                                link = '<div class="level1">' + link + '</div>';
                            }

                            return link;
                        }
                    }, <?php echo $this->partial('partials/icp-permit-classic.phtml', [
                            'link' => Plesk_Config::get()->domainManagement->features->icpPermitLearnMore,
                        ]) ?>{
                        header: <?php echo $this->sitesList->jsLmsg('hostingHeader'); ?>,
                        sortable: false,
                        renderer: function(item) {
                            var message = '';

                            if (item.hostingType == 'vrt_hst') {

                                var webrootDir = item.webrootDir;

                                if (item.filemanagerUrl) {
                                    webrootDir = '<a href="' + Jsw.prepareUrl(item.filemanagerUrl) + '">'
                                        + item.webrootDir
                                        + '</a>';
                                }

                                message = '<img src="<?php echo $this->skinUrl('/icons/16/plesk/website.png') ?>"/>'
                                    + ' '
                                    + <?php echo $this->sitesList->jsLmsg('websiteAt'); ?>
                                    + ' '
                                    + webrootDir;

                                if (item.purchaseDomainMessage) {
                                    message += '<br/>'
                                        + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/domain.png') ?>"/>'
                                        + ' '
                                        + item.purchaseDomainMessage;

                                }

                            } else if (item.hostingType == 'none') {
                                message = '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" />'
                                    + '<em class="hint">' + <?php echo $this->sitesList->jsLmsg('noHosting'); ?> + '</em>';
                                <?php if ($this->showAddHostingButton): ?>
                                    message += ' '
                                        + '<a href="' + Jsw.baseUrl + item.changeHostingUrl + '">['
                                        + <?php echo $this->sitesList->jsLmsg('add') ?>
                                        + ']</a>';
                                <?php endif ?>

                            } else if (item.hostingType == 'frm_fwd' || item.hostingType == 'std_fwd') {

                                message = '<img src="<?php echo $this->skinUrl('/icons/16/plesk/forward-to-dom.png') ?>"/>'
                                    + ' '
                                    + <?php echo $this->sitesList->jsLmsg('forwardingTo'); ?>
                                    + ' '
                                    + '<a href="' + item.forwardingUrl.escapeHTML() + '" target="_blank">'
                                    + item.forwardingDisplayUrl.escapeHTML()
                                    + '</a>';
                            } else if (item.isDomainAlias) {
                                message = '<img src="<?php echo $this->skinUrl('/icons/16/plesk/dom-aliases.png') ?>"/>'
                                    + ' '
                                    + item.description;
                            }
                            return message;
                        }
                    }, {
                        header: <?php echo $this->sitesList->jsLmsg('diskUsage');?>,
                        sortable: true,
                        dataIndex: 'realSize',
                        renderer: function(item, isDisabled) {
                            return item.diskUsage.escapeHTML();
                        }
                    }, {
                        header: <?php echo $this->sitesList->jsLmsg('traffic');?>,
                        sortable: false,
                        dataIndex: 'traffic'
                    }, {
                        header: '',
                        cls: 'action-icon-set t-r',
                        renderer: function(item) {

                            var content = '';

                            content += !item.previewUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('previewHint'); ?>
                                    + '</span>'
                                    + '<a href="' + item.previewUrl + '" target="_blank">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/preview.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.filemanagerUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('manageFilesHint'); ?>
                                    + '</span>'
                                    + '<a href="' + Jsw.prepareUrl(item.filemanagerUrl) + '">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/website-folder.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.sitebuilderUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('sitebuilderHint'); ?>
                                    + '</span>'
                                    + '<a href="' + Jsw.baseUrl + item.sitebuilderUrl + '" target="_blank">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/sitebuilder.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.sitebuilderLegacyUrl
                                ? ''
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('sitebuilderOldHint'); ?>
                                    + '</span>'
                                    + '<a href="' + item.sitebuilderLegacyUrl + '" target="_blank">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/sitebuilder.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.statisticsUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('webstatisticsHint'); ?>
                                    + '</span>'
                                    + '<a href="#" onclick=\'' + item.statisticsUrl + '\'>'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/stats.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.certificatesUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('certificatesHint'); ?>
                                    + '</span>'
                                    + '<a href="' + Jsw.baseUrl + item.certificatesUrl + '">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/ssl-cert.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.logsUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('logsHint'); ?>
                                    + '</span>'
                                    + '<a href="' + Jsw.baseUrl + item.logsUrl + '">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/logs.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            content += !item.dnsUrl
                                ? '<img src="<?php echo $this->skinUrl('/icons/16/plesk/spacer.png') ?>" /> '
                                : '<span>'
                                    + '<span class="tooltipData">'
                                    + <?php echo $this->sitesList->jsLmsg('dnsHint'); ?>
                                    + '</span>'
                                    + '<a href="' + Jsw.baseUrl + item.dnsUrl + '">'
                                    + '<img src="<?php echo $this->skinUrl('/icons/16/plesk/dns.png') ?>"/>'
                                    + '</a>'
                                    + '</span> ';

                            return content;
                        }
                    }
                ],

                operations: [
                    null
                    <?php if (($this->hasWebspace && $this->allowCreateDomain) || $this->allowCreateWebspace): ?>
                    ,{
                        componentType: 'Jsw.SmallButton',
                        id: 'buttonAddDomain',
                        cls: 's-btn sb-new-domain',
                        title: <?php echo $this->sitesList->jsLmsg('buttonAddDomain'); ?>,
                        description: <?php echo $this->sitesList->jsLmsg('buttonAddDomainHint'); ?> + <?php echo $this->jsEscape(' ' . $this->resourceUsage('max_site')); ?>,
                        handler: function() {
                            Jsw.redirect('/web/add-domain');
                        }
                    }
                    <?php endif; ?>
                    <?php if ($this->hasWebspace && $this->allowManageSubdomain): ?>
                    ,{
                        componentType: 'Jsw.SmallButton',
                        id: 'buttonAddSubDomain',
                        cls: 's-btn sb-new-subdomain',
                        title: <?php echo $this->sitesList->jsLmsg('buttonAddSubdomain'); ?>,
                        description: <?php echo $this->sitesList->jsLmsg('buttonAddSubdomainHint'); ?> + <?php echo $this->jsEscape(' ' . $this->resourceUsage('max_subdom')); ?>,
                        handler: function() {
                            Jsw.redirect('/web/add-subdomain');
                        }
                    }
                    <?php endif; ?>
                    <?php if ($this->allowManageDomainAliases): ?>
                    ,{
                        componentType: 'Jsw.SmallButton',
                        id: 'buttonAddDomainAlias',
                        cls: 's-btn sb-new-domain-alias',
                        title: <?php echo $this->sitesList->jsLmsg('buttonAddDomainAlias'); ?>,
                        description: <?php echo $this->sitesList->jsLmsg('buttonAddDomainAliasHint'); ?> + <?php echo $this->jsEscape(' ' . $this->resourceUsage('max_dom_aliases')); ?>,
                        handler: function() {
                            Jsw.redirect('/web/add-domain-alias');
                        }
                    }
                    <?php endif; ?>
                    <?php if ($this->hasWebspace && ($this->allowCreateDomain || $this->allowManageSubdomain || $this->allowManageDomainAliases)): ?>
                    ,{
                        componentType: 'Jsw.bar.Separator'
                    }
                    <?php endif; ?>
                    <?php if ($this->hasWebspace && ($this->showDeleteButton)): ?>
                    ,{
                        componentType: 'Jsw.SmallButton',
                        id: 'buttonRemoveSite',
                        title: <?php echo $this->sitesList->jsLmsg('buttonRemove'); ?>,
                        description: <?php echo $this->sitesList->jsLmsg('buttonRemoveHint'); ?>,
                        cls: 's-btn sb-remove-selected',
                        handler: function(event) {
                            Jsw.getComponent('sites-list').execGroupOperation({
                                url: '/web/delete/',
                                subtype: 'delete',
                                mouseEvent: event,
                                locale: {
                                    confirmOnGroupOperation: <?php echo $this->sitesList->jsLmsg('removeConfirmation'); ?>
                                },

                                isAjax: <?php echo $this->isHomonymSearchEnabled ? 'true' : 'false' ?>,
                                requestUrl: '/web/search-homonym-data/',
                                loadingTitle: <?php echo $this->jsLmsg('components.homonyms.loading'); ?>
                            });
                        }
                    }
                    <?php endif; ?>
                    ,{
                        componentType: 'Jsw.list.AdditionalActions',
                        cls: 'actions-menu list-type-switcher',
                        titleAddCls: 'sb-manage',
                        operations: [{
                            componentType: 'Jsw.SmallButton',
                            id: 'buttonActiveList',
                            title: <?php echo $this->sitesList->jsLmsg('buttonActiveList'); ?>,
                            description: <?php echo $this->sitesList->jsLmsg('buttonActiveListHint'); ?>,
                            cls: 'sb-btn',
                            addCls: 'sb-active-list',
                            handler: function() {
                                Jsw.redirect('?list-type=active');
                            }
                        }]
                    }, {
                        componentType: 'Jsw.SmallButton',
                        id: 'buttonHelp',
                        description: <?php echo $this->sitesList->jsLmsg('buttonHelpHint'); ?>,
                        addCls: 'sb-help',
                        handler: function() {
                            $('main-disabled-block').show();
                            $('modal-informer').show();
                        }
                    }
                ],

                onRedraw: function() {
                    $('sites-list').select('input[name="listCheckbox[]"]').each(function(checkbox) {
                        checkbox.observe('click', function() {
                            // if domain selected
                            if ('undefined' == typeof checkbox.up('tr').down('div.level1')) {
                                var nextRows = checkbox.up('tr').nextSiblings();
                                nextRows.each(function(rowElement) {
                                    if ('undefined' == typeof rowElement.down('div.level1')) {
                                        throw $break;
                                    }
                                    rowElement.down('input[name="listCheckbox[]"]').checked = checkbox.checked;
                                    if (checkbox.checked) {
                                        rowElement.addClassName('selected');
                                    } else {
                                        rowElement.removeClassName('selected');
                                    }
                                });
                            } else {
                                var prevRows = checkbox.up('tr').previousSiblings();
                                prevRows.each(function(rowElement) {
                                    if ('undefined' == typeof rowElement.down('div.level1')) {
                                        if (!checkbox.checked) {
                                            var parentCheckbox = rowElement.down('input[name="listCheckbox[]"]');
                                            if (parentCheckbox) {
                                                parentCheckbox.checked = false;
                                                rowElement.removeClassName('selected');
                                            }
                                        }
                                        throw $break;
                                    }
                                });
                            }
                        });
                    });
                }
            })
        ]
    });

});
//]]>
</script>
