5ee48acc创建于 2023年8月17日历史提交
@extends('modstart::admin.frame')

@section('pageTitle'){{'超级搜索索引同步'}}@endsection

@section('bodyAppend')
    @parent
    <script>
        $(function () {
            $('[data-refresh]').on('click', function () {
                var $bucket = $(this).closest('[data-bucket]');
                $bucket.find('[data-status]').html('<span class="ub-text-muted">正在刷新</span>');
                var action = $(this).attr('data-refresh')
                MS.api.post(window.location.href, {
                    action: 'refresh',
                    bucket: $bucket.attr('data-bucket')
                }, function (res) {
                    $bucket.find('[data-status]').html('');
                    MS.api.defaultCallback(res, {
                        success: function (res) {
                            $bucket.find('[data-count]').html(res.data.count);
                        },
                        error: function (res) {
                            $bucket.find('[data-status]').html('<span class="ub-text-danger">' + res.msg + '</span>');
                        }
                    });
                });
            });
            var sync = function ($bucket, bucket, nextId) {
                $bucket.find('[data-status]').show().html('<span class="ub-text-muted">正在同步(' + bucket + ',' + nextId + ')</span>');
                MS.api.post(window.location.href, {action: 'sync', bucket: bucket, nextId: nextId}, function (res) {
                    MS.api.defaultCallback(res, {
                        success: function (res) {
                            if (res.data.count > 0) {
                                setTimeout(function () {
                                    sync($bucket, bucket, res.data.nextId);
                                }, 0);
                            } else {
                                $bucket.find('[data-refresh]').click();
                                MS.dialog.alertSuccess('同步完成(' + bucket + ',' + nextId + ')');
                                $bucket.find('[data-status]').html('<span class="ub-text-success">同步完成(' + bucket + ',' + nextId + ')</span>');
                            }
                        },
                        error: function (res) {
                            $bucket.find('[data-status]').html('<span class="ub-text-danger">' + res.msg + '</span>');
                        }
                    });
                });
            };
            $('[data-sync]').on('click', function () {
                var $bucket = $(this).closest('[data-bucket]');
                sync($bucket, $bucket.attr('data-bucket'), 0);
            });
        });
    </script>
@endsection

@section($_tabSectionName)

    @if(empty($provider))
        <div class="ub-alert danger">
            <i class="iconfont icon-warning"></i>
            没有配置超级搜索驱动,
            请安装 <a href="https://modstart.com/m/SuperSearchES" target="_blank">ElasticSearch</a> 超级搜索驱动。
        </div>
    @endif

    <div class="ub-panel">
        <div class="head">
            <div class="title">超级搜索索引同步</div>
        </div>
        <div class="body">
            <table class="ub-table">
                <thead>
                <tr>
                    <th>标识</th>
                    <th>标题</th>
                    <th width="200">数量</th>
                    <th width="400">操作</th>
                </tr>
                </thead>
                <tbody>
                @foreach($bizList as $biz)
                    <tr data-bucket="{{$biz->name()}}">
                        <td>{{$biz->name()}}</td>
                        <td>{{$biz->title()}}</td>
                        <td>
                            <span data-count>-</span>
                        </td>
                        <td>
                            @if(!empty($provider))
                                <a href="javascript:;" class="action-btn" data-refresh>
                                    刷新
                                </a>
                                <a href="javascript:;" class="action-btn" data-sync>
                                    全量同步
                                </a>
                                <span class="margin-left" data-status></span>
                            @else
                                <span class="ub-text-warning">不可用</span>
                            @endif
                        </td>
                    </tr>
                @endforeach
                </tbody>
            </table>
        </div>
    </div>
@endsection