133 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{{define "dashboard/server"}}
 | 
						||
{{template "common/header" .}}
 | 
						||
{{template "common/menu" .}}
 | 
						||
<div class="nb-container">
 | 
						||
    <div class="ui container">
 | 
						||
        <div class="ui grid">
 | 
						||
            <div class="right floated right aligned twelve wide column">
 | 
						||
                <button class="ui right labeled nezha-primary-btn icon button" onclick="addOrEditServer()"><i
 | 
						||
                        class="add icon"></i> 添加主机
 | 
						||
                </button>
 | 
						||
                <button class="ui right labeled nezha-primary-btn icon button" onclick="forceUpdate()"><i
 | 
						||
                        class="arrow alternate circle up outline icon"></i> 强制更新
 | 
						||
                </button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
        <table class="ui very basic table">
 | 
						||
            <thead>
 | 
						||
                <tr>
 | 
						||
                    <th><button onclick="checkAllServer()" class="ui mini nezha-primary-btn button">全选</button></th>
 | 
						||
                    <th>ID(排序)</th>
 | 
						||
                    <th>名称</th>
 | 
						||
                    <th>分组</th>
 | 
						||
                    <th>IP</th>
 | 
						||
                    <th>版本号</th>
 | 
						||
                    <th>密钥</th>
 | 
						||
                    <th>一键安装</th>
 | 
						||
                    <th>备注</th>
 | 
						||
                    <th>管理</th>
 | 
						||
                </tr>
 | 
						||
            </thead>
 | 
						||
            <tbody>
 | 
						||
                {{range $server := .Servers}}
 | 
						||
                <tr>
 | 
						||
                    <td><input type="checkbox" class="nezha-servers" value="{{$server.ID}}" /></td>
 | 
						||
                    <td>{{$server.ID}}({{$server.DisplayIndex}})</td>
 | 
						||
                    <td>{{$server.Name}}</td>
 | 
						||
                    <td>{{$server.Tag}}</td>
 | 
						||
                    <td>{{$server.Host.IP}}</td>
 | 
						||
                    <td>{{$server.Host.Version}}</td>
 | 
						||
                    <td>{{$server.Secret}}</td>
 | 
						||
                    <td>
 | 
						||
                        <button class="ui icon green mini button"
 | 
						||
                            data-clipboard-text="{{if $.Conf.GRPCHost}}curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent {{$.Conf.GRPCHost}} {{if $.Conf.ProxyGRPCPort}}{{$.Conf.ProxyGRPCPort}}{{else}}{{$.Conf.GRPCPort}}{{end}} {{$server.Secret}}{{if $.Conf.TLS}} --tls{{end}}{{else}}请先在设置页面配置 未接入CDN的面板服务器域名/IP{{end}}"
 | 
						||
                            data-tooltip="点击复制安装命令">
 | 
						||
                            <i class="linux icon"></i>
 | 
						||
                        </button>
 | 
						||
                        <button class="ui icon mini button" data-tooltip="尚未支持,请下载release手动安装">
 | 
						||
                            <i class="windows icon"></i>
 | 
						||
                        </button>
 | 
						||
                        <button class="ui icon mini button" data-tooltip="尚未支持,请下载release手动安装">
 | 
						||
                            <i class="apple icon"></i>
 | 
						||
                        </button>
 | 
						||
                    </td>
 | 
						||
                    <td style="word-break: break-word;">{{$server.Note}}</td>
 | 
						||
                    <td>
 | 
						||
                        <div class="ui mini icon buttons">
 | 
						||
                            <button class="ui button" onclick="connectToServer({{$server.ID}})">
 | 
						||
                                <i class="terminal icon"></i>
 | 
						||
                            </button>
 | 
						||
                            <button class="ui button" onclick="addOrEditServer({{$server.Marshal}})">
 | 
						||
                                <i class="edit icon"></i>
 | 
						||
                            </button>
 | 
						||
                            <button class="ui button"
 | 
						||
                                onclick="showConfirm('删除主机','确认删除此主机?',deleteRequest,'/api/server/'+{{$server.ID}})">
 | 
						||
                                <i class="trash alternate outline icon"></i>
 | 
						||
                            </button>
 | 
						||
                        </div>
 | 
						||
                    </td>
 | 
						||
                </tr>
 | 
						||
                {{end}}
 | 
						||
            </tbody>
 | 
						||
        </table>
 | 
						||
    </div>
 | 
						||
</div>
 | 
						||
{{template "component/server" .}}
 | 
						||
{{template "common/footer" .}}
 | 
						||
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script>
 | 
						||
<script>
 | 
						||
    var clipboard = new ClipboardJS('.ui.icon.green.mini.button');
 | 
						||
    const checkBoxList = document.querySelectorAll('tbody > tr > td > input.nezha-servers[type=checkbox]')
 | 
						||
    function checkAllServer() {
 | 
						||
        checkBoxList.forEach(cb => {
 | 
						||
            cb.checked = true
 | 
						||
        })
 | 
						||
    }
 | 
						||
    function forceUpdate() {
 | 
						||
        const servers = []
 | 
						||
        checkBoxList.forEach(cb => {
 | 
						||
            if (cb.checked) {
 | 
						||
                servers.push(parseInt(cb.value))
 | 
						||
            }
 | 
						||
        })
 | 
						||
        if (servers.length == 0) {
 | 
						||
            $.suiAlert({
 | 
						||
                title: '当前没有选中的服务器',
 | 
						||
                description: '',
 | 
						||
                type: 'warning',
 | 
						||
                time: '2',
 | 
						||
                position: 'top-center',
 | 
						||
            });
 | 
						||
            return
 | 
						||
        }
 | 
						||
        $.post('/api/force-update', JSON.stringify(servers))
 | 
						||
            .then((resp) => {
 | 
						||
                if (resp.code == 200) {
 | 
						||
                    $.suiAlert({
 | 
						||
                        title: '执行结果',
 | 
						||
                        description: resp.message,
 | 
						||
                        type: 'success',
 | 
						||
                        time: '3',
 | 
						||
                        position: 'top-center',
 | 
						||
                    });
 | 
						||
                } else {
 | 
						||
                    $.suiAlert({
 | 
						||
                        title: '',
 | 
						||
                        description: resp.message,
 | 
						||
                        type: 'error',
 | 
						||
                        time: '3',
 | 
						||
                        position: 'top-center',
 | 
						||
                    });
 | 
						||
                }
 | 
						||
            }).catch(err => {
 | 
						||
                $.suiAlert({
 | 
						||
                    title: '',
 | 
						||
                    description: err,
 | 
						||
                    type: 'error',
 | 
						||
                    time: '3',
 | 
						||
                    position: 'top-center',
 | 
						||
                });
 | 
						||
            })
 | 
						||
    }
 | 
						||
</script>
 | 
						||
{{end}} |