Вход Регистрация
Файл: concrete5.7.5.6/concrete/views/panels/page/versions.php
Строк: 433
<?php
defined
('C5_EXECUTE') or die("Access Denied.");
?>
<script type="text/javascript">

</script>
<script type="text/template" class="tbody">
<% _.each(versions, function(cv) { %>
     <%=templateRow(cv) %>
<% }); %>
</script>

<script type="text/template" class="version">
    <tr <% if (cvIsApproved == 1) { %> class="ccm-panel-page-version-approved" <% } %>>
        <td><input class="ccm-flat-checkbox" type="checkbox" name="cvID[]" value="<%-cvID%>" data-version-active="<%-cvIsApproved == 1%>" /></td>
        <td><span class="ccm-panel-page-versions-version-id"><%-cvID%></span></td>
        <td class="ccm-panel-page-versions-details">
            <p><span class="ccm-panel-page-versions-version-timestamp"><%-cvDateVersionCreated%></span></p>
            <p><?php echo t('Edit by')?> <%-cvAuthorUserName%></p>
            <% if (cvComments) { %>
                <p><small><%-cvComments%></small></p>
            <% } %>
            <% if (cvIsApproved == 1) { %>
                <p><?php echo t('Approved by')?> <%-cvApproverUserName%></p>
            <% } %>
        </td>
        <td>
            <% if (cvIsApproved == 1) { %>
                <i class="fa fa-ok" title="<?php echo t('This is the approved page version.')?>"></i>
            <% } %>
            <a href="#" class="ccm-panel-page-versions-version-menu" data-launch-versions-menu="ccm-panel-page-versions-version-menu-<%-cvID%>"><i class="fa fa-share"></i></a>
            <div class="ccm-popover-inverse popover fade" data-menu="ccm-panel-page-versions-version-menu-<%-cvID%>">
                <div class="popover-inner">
                <ul class="dropdown-menu">
                    <li><% if (cvIsApproved == 1) { %><span><?php echo t('Approve')?></span><% } else { %><a href="#" data-version-menu-task="approve" data-version-id="<%-cvID%>"><?php echo t('Approve')?></a><% } %></li>
                    <li><a href="#" data-version-menu-task="duplicate" data-version-id="<%-cvID%>"><?php echo t('Duplicate')?></a></li>
                    <li class="divider"></li>
                    <% if ( ! cIsStack) { %>
                    <li><a href="#" data-version-menu-task="new-page" data-version-id="<%-cvID%>"><?php echo t('New Page')?></a></li>
                    <% } %>
                    <% if (cpCanDeletePageVersions) { %>
                        <li><% if (cvIsApproved == 1) { %><span><?php echo t('Delete')?></span><% } else { %><a href="#" data-version-menu-task="delete" data-version-id="<%-cvID%>"><?php echo t('Delete')?></a><% } %></li>
                    <% } %>
                </ul>
                </div>
            </div>
        </td>
    </tr>
</script>

<script type="text/template" class="footer">
    <tr>
        <td colspan="4">
            <ul class="pager">
                <% if (hasPreviousPage == '1') { %>
                    <li><a href="#" data-version-navigation="<%=previousPageNum%>"><?php echo t('&larr; Newer')?></a></li>
                <% } else { %>
                    <li class="disabled"><a href="#"><?php echo t('&larr; Newer')?></a></li>
                <% } %>
                <% if (hasNextPage == '1') { %>
                    <li><a href="#" data-version-navigation="<%=nextPageNum%>"><?php echo t('Older &rarr;')?></a></li>
                <% } else { %>
                    <li class="disabled"><a href="#"><?php echo t('Older &rarr;')?></a></li>
                <% } %>
            </ul>
        </td>
    </tr>
</script>

<script type="text/javascript">
var ConcretePageVersionList = {

    sendRequest: function(url, data, onComplete) {
        var _data = [];
        $.each(data, function(i, dataItem) {
            _data.push({'name': dataItem.name, 'value': dataItem.value});
        });
        $.ajax({
            type: 'post',
            dataType: 'json',
            data: _data,
            url: url,
            beforeSubmit: function() {
                jQuery.fn.dialog.showLoader();
            },
            error: function(r) {
              ConcreteAlert.dialog('Error', '<div class="alert alert-danger">' + r.responseText + '</div>');
              },
            success: function(r) {
                if (r.error) {
                    ConcreteAlert.dialog('Error', '<div class="alert alert-danger">' + r.errors.join("<br>") + '</div>');
                } else {
                    if (onComplete) {
                        onComplete(r);
                    }
                }
            },
            complete: function() {
                jQuery.fn.dialog.hideLoader();
            }
        });
    },

    handleVersionRemovalResponse: function(r) {
        $('button[data-version-action]').addClass('disabled');
        for (i = 0; i < r.versions.length; i++) {
            var $row = $('input[type=checkbox][value=' + r.versions[i].cvID + ']').parent().parent();
            $row.queue(function() {
                $(this).addClass('bounceOutLeft animated');
                $(this).dequeue();
            }).delay(600).queue(function() {
                $(this).remove();
                $(this).dequeue();
            });
        }
    },

    previewSelectedVersions: function(checkboxes) {
        var panel = ConcretePanelManager.getByIdentifier('page');
        if (!panel) {
            return;
        }
        if (checkboxes.length > 0) {
            var src = '<?php echo URL::to("/ccm/system/panels/details/page/versions")?>';
            var data = '';
            $.each(checkboxes, function(i, cb) {
                data += '&cvID[]=' + $(cb).val();
            });
            panel.openPanelDetail({'identifier': 'page-versions', 'data': data, 'url': src, target: null});

        } else {
            panel.closePanelDetail();
        }
    },

    handleVersionUpdateResponse: function(r) {
        for (i = 0; i < r.versions.length; i++) {
            var $row = $('input[type=checkbox][value=' + r.versions[i].cvID + ']').parent().parent();
            if ($row.length) {
                $row.replaceWith(templateRow(r.versions[i]));
            } else {
                $('#ccm-panel-page-versions table tbody').prepend(templateRow(r.versions[i]));
            }
            this.setupMenus();
        }
    },

    setupMenus: function() {
        // the click proxy is kinda screwy on this
        $('a.ccm-panel-page-versions-version-menu').each(function() {
            $(this).concreteMenu({
                menuLauncherHoverClass: 'ccm-panel-page-versions-hover',
                menuContainerClass: 'ccm-panel-page-versions-container',
                menu: 'div[data-menu=' + $(this).attr('data-launch-versions-menu') + ']'
            });
        });

        $('a[data-version-menu-task]').unbind('.vmenu').on('click.vmenu', function() {
            var cvID = $(this).attr('data-version-id');
            switch($(this).attr('data-version-menu-task')) {
                case 'delete':

                    ConcretePageVersionList.sendRequest('<?php echo $controller->action("delete")?>', [{'name': 'cvID[]', 'value': cvID}], function(r) {
                        ConcreteAlert.notify({
                        'message': r.message
                        });
                        ConcretePageVersionList.handleVersionRemovalResponse(r);
                    });
                    break;
                case 'approve':
                    ConcretePageVersionList.sendRequest('<?php echo $controller->action("approve")?>', [{'name': 'cvID', 'value': cvID}], function(r) {
                        ConcreteAlert.notify({
                        'message': r.message
                        });
                        ConcretePageVersionList.handleVersionUpdateResponse(r);
                    });
                    break;
                case 'duplicate':
                    ConcretePageVersionList.sendRequest('<?php echo $controller->action("duplicate")?>', [{'name': 'cvID', 'value': cvID}], function(r) {
                        ConcreteAlert.notify({
                        'message': r.message
                        });
                        ConcretePageVersionList.handleVersionUpdateResponse(r);
                    });
                    break;
                case 'new-page':
                    ConcretePageVersionList.sendRequest('<?php echo $controller->action("new_page")?>', [{'name': 'cvID', 'value': cvID}], function(r) {
                        window.location.href = r.redirectURL;
                    });
                    break;
            }

            return false;
        });
    }

}

var templateBody = _.template(
    $('script.tbody').html()
);
var templateRow = _.template(
    $('script.version').html()
);
var templateFooter = _.template(
    $('script.footer').html()
);

var templateData = <?php echo $response->getJSON()?>;
$('#ccm-panel-page-versions table tbody').html(
    templateBody(templateData)
);
$('#ccm-panel-page-versions table tfoot').html(
    templateFooter(templateData)
);

$(function() {
    ConcretePageVersionList.setupMenus();
    $('#ccm-panel-page-versions tbody').on('click', 'tr', function() {
        var $cb = $(this).find('input[type=checkbox]');
        if (!$cb.is(':checked')) {
            $cb.prop('checked', true);
        } else {
            $cb.prop('checked', false);
        }
        $cb.trigger('change');
        return false;
    });
    $('#ccm-panel-page-versions tbody').on('click', 'input[type=checkbox]', function(e) {
        e.stopPropagation();
    });
    $('#ccm-panel-page-versions tbody').on('click', 'a.ccm-panel-page-versions-version-menu', function(e) {
        e.stopPropagation();
    });
    var $checkboxes = $('#ccm-panel-page-versions tbody input[type=checkbox][data-version-active=false]');
    $('#ccm-panel-page-versions thead input[type=checkbox]').on('change', function() {
        $checkboxes.prop('checked', $(this).prop('checked')).trigger('change');
        Concrete.forceRefresh();
    });

    $('#ccm-panel-page-versions tbody').on('change', 'input[type=checkbox]', function() {
        if ($(this).is(':checked')) {
            $(this).parent().parent().addClass('ccm-panel-page-versions-version-checked');
        } else {
            $(this).parent().parent().removeClass('ccm-panel-page-versions-version-checked');
        }
        var checkboxes = $('#ccm-panel-page-versions tbody input[type=checkbox]:checked');
        $('button[data-version-action]').addClass('disabled');
        if (checkboxes.length > 1) {
            $('button[data-version-action=compare]').removeClass('disabled');
        }
        if (checkboxes.length > 0 && !checkboxes.filter('[data-version-active=true]').length) {
            $('button[data-version-action=delete]').removeClass('disabled');
        }
        ConcretePageVersionList.previewSelectedVersions(checkboxes);

    });

    $('#ccm-panel-page-versions tfoot').on('click', 'a', function() {
        var pageNum = $(this).attr('data-version-navigation');
        if (pageNum) {
            ConcretePageVersionList.sendRequest('<?php echo $controller->action("get_json")?>', [{'name': 'currentPage', 'value': $(this).attr('data-version-navigation')}], function(r) {
                $('#ccm-panel-page-versions table tbody').html(
                    templateBody(r)
                );
                $('#ccm-panel-page-versions table tfoot').html(
                    templateFooter(r)
                );
            });
        }
        return false;
    });


    $('button[data-version-action=delete]').on('click', function() {
        if (!$(this).hasClass("disabled")) {
            var checkboxes = $('#ccm-panel-page-versions tbody input[type=checkbox]:checked');
            var cvIDs = [];
            $.each(checkboxes, function (i, cb) {
                cvIDs.push({'name': 'cvID[]', 'value': $(cb).val()});
            });
            if(cvIDs.length > 0) {
                ConcretePageVersionList.sendRequest('<?php echo $controller->action("delete")?>', cvIDs, function (r) {
                    ConcretePageVersionList.handleVersionRemovalResponse(r);
                });
            }
        }
    });

});

</script>


<section id="ccm-panel-page-versions" class="ccm-ui">
    <header><a href="" data-panel-navigation="back" class="ccm-panel-back"><span class="fa fa-chevron-left"></span></a> <a href="" data-panel-navigation="back"><?php echo t('Versions')?></a></header>
    <table class="table">
        <thead>
            <tr>
                <th><input class="ccm-flat-checkbox" type="checkbox" /></th>
                <th colspan="3"><!--<button type="button" class="btn-link" data-version-action="compare" disabled><?php echo t('Compare')?></button>//--><button type="button" class="btn-link disabled" data-version-action="delete"><?php echo t('Delete')?></button></th>
            </tr>
        </thead>
        <tbody></tbody>
        <tfoot></tfoot>
    </table>
</section>
Онлайн: 1
Реклама