132 lines
7.6 KiB
HTML
132 lines
7.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" href="../../globalcss.css">
|
|
<link rel="stylesheet" href="../panel.css">
|
|
<link rel="stylesheet" href="style.css">
|
|
<link rel="shortcut icon" href="../../img/logo.png" type="image/x-icon">
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inconsolata">
|
|
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha1/0.6.0/sha1.min.js"></script>
|
|
<title>M-Panel | Logs</title>
|
|
</head>
|
|
<body>
|
|
<div id="loading-container" class="panel">
|
|
<div id="loading-item"></div>
|
|
</div>
|
|
|
|
<div id="app">
|
|
<m-navbar
|
|
loginhref="/Login/"
|
|
homehref="/"
|
|
rightbutton="Sign Out"
|
|
colorofbutton="yellow-white-linear"
|
|
></m-navbar>
|
|
<div id="background-front"></div>
|
|
<div id="background"></div>
|
|
<div id="page-content-container">
|
|
<div id="panel-content">
|
|
<transition name="fade">
|
|
<div id="announcement-popup-box" v-if="announcementPopup">
|
|
<div id="controls-box" class="announcement">
|
|
<div id="announcement-mod-title">
|
|
<span style="margin-left: 2.3148vh;">Announcement</span>
|
|
<span style="margin-right: 2.2222vh;">Description</span>
|
|
</div>
|
|
|
|
<div id="text-box-area">
|
|
<textarea name="" id="" cols="30" rows="10" placeholder="Type your annoucement in here..." v-model="announcementPopup.input"></textarea>
|
|
</div>
|
|
|
|
<div id="action-buttons-container">
|
|
<div id="action-button" @click="makeAnnouncement()">Make Announcement</div>
|
|
<div id="go-back-button" @click="announcementPopup = undefined"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</transition>
|
|
|
|
<left-navbar
|
|
activepage="Live Console"
|
|
></left-navbar>
|
|
<div id="right-page-container">
|
|
<div id="header-content">
|
|
<p style="margin-left: 3.4259vh; font-size: 1.6667vw; font-weight: 600;">Live Console</p>
|
|
<div id="server-status-container">
|
|
<div id="server-status-online-icon" style="background-image: url(img/OnlineStatus.png); background-position: center; background-size: 100%; background-repeat: no-repeat; width: 0.6204vh; height: 0.6204vh; margin-right: 1.3194vh;">
|
|
|
|
</div>
|
|
<p style="font-size: .8333vw; font-family: 'SF Pro Display Thin';">Server is <span style="color: #8BFF30;">online</span></p>
|
|
</div>
|
|
|
|
<notify-menu :notifymenu="notifyMenu" @closenotifymenu="notifyMenu = false"></notify-menu>
|
|
<new-notify :newnotify="newNotify" @closenewnotify="newNotify = false"></new-notify>
|
|
|
|
<div id="notify-container" @click="notifyMenu = true" v-if="!notifyMenu && !newNotify" style="margin-left: 27.037vh;">
|
|
<div id="notify-icon"></div>
|
|
</div>
|
|
|
|
<div id="user-details-container" v-if="!notifyMenu && !newNotify" style="margin-left: 3.7037vh;">
|
|
<div id="text-details">
|
|
<p style="font-size: 1.4815vh; font-weight: 700; font-family: 'SF Pro Display';">{{ userUsername }}</p>
|
|
<p class="rank" :style="{ 'color': userRank.color }">{{ userRank.title }}</p>
|
|
</div>
|
|
<div id="user-icon" :style="{ 'border-color': userRank.color, 'background-image': 'url('+userIcon+')', 'background-size': 'cover', 'background-position': 'center' }">
|
|
<div id="circle-user-icon"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="real-page-content">
|
|
<div id="real-page-container">
|
|
<div id="cfxre-status-container">
|
|
<span style="opacity: .68;">CFX.re Status</span>
|
|
<div id="cfxre-status-items">
|
|
<div id="cfxre-status-item" v-for="data in cfxreStatusItems" :class="data.status">
|
|
<div id="cfxre-status-dot"></div>
|
|
<span>{{ data.name }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="live-console-container">
|
|
<div id="live-console-box">
|
|
<div id="live-console-text-area">
|
|
<span v-for="(data, key) in consoleToShowText" v-html="data"></span>
|
|
</div>
|
|
<div class="line" style="margin-top: 0.9259vh;"></div>
|
|
<div id="live-console-shortcuts">
|
|
<div class="shortcut" @click="useShortcut(data)" v-for="data in consoleHistory.slice(0, 6)"><span>{{ data.command }}</span></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="live-console-bottom">
|
|
<div id="send-button" @click="executeCommand()"></div>
|
|
<input type="text" @keyup.down="switchBetweenHistories('down')" @keyup.up="switchBetweenHistories('up')" @keyup.enter="executeCommand()" v-model="consoleInput" placeholder="Send commands to console by pressing enter, UP/DOWN to navigate between past commands...">
|
|
|
|
<a href="" target=""></a>
|
|
|
|
<img src="img/DownloadIcon.png" @click="downloadConsoleLogs()" class="download" alt="downloadIcon" style="width: 1.0833vh; height: 1.3796vh; margin-left: 6.2037vh;">
|
|
<div id="iconHoverBox" class="download" style="right: 9.9074vh;"><span>Download Log</span></div>
|
|
|
|
<img src="img/ClearConsoleIcon.png" @click="clearConsole()" class="clear" alt="clearConsoleIcon" style="width: 1.3981vh; height: 1.287vh; margin-left: 4.6296vh;">
|
|
<div id="iconHoverBox" class="clear" style="right: 4.1667vh;"><span>Clear Console</span></div>
|
|
|
|
<img src="img/AnnouncementIcon.png" @click="announcementPopup = { input: '' }" class="announcement" alt="announcementIcon" style="width: 1.3889vh; height: 1.3796vh; margin-left: 4.6296vh;">
|
|
<div id="iconHoverBox" class="announcement" style="right: -1.8519vh;"><span>Announcement</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="../../components.js"></script>
|
|
<script src="main.js"></script>
|
|
</body>
|
|
</html> |