feat: full de-Angularization with Bootstrap 5 migration
- Removed AngularJS 1.4.8 completely — no more framework dependency - Extracted core RCON logic into pure vanilla JS (js/rcon.js) - Added lightweight hash-based SPA router (js/router.js) - Rewrote all 6 pages as vanilla JS modules in js/pages/ - Migrated Bootstrap 3 → Bootstrap 5 (cards instead of panels, bootstrap-icons instead of glyphicons) - Removed jQuery dependency (Bootstrap 5 is vanilla JS) - Purged all Angular templates from html/ - Removed npm artifacts (package.json, node_modules) - Added nginx.example.conf for static hosting - Updated rcon.css dark theme for BS5 variables - Static file only — no Node.js backend required Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
+47
-50
@@ -1,71 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" ng-app="RconApp">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Websocket Rcon</title>
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.2/nv.d3.min.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap-theme.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="rcon.css" rel="stylesheet">
|
||||
</head>
|
||||
<body ng-controller="RconController">
|
||||
|
||||
<div ng-include="'html/header.html'" ng-show="Connected"></div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div ng-include="'html/connect.html'" ng-show="!Connected"></div>
|
||||
|
||||
<div ng-show="Connected" class="col-sm-2 sidebar">
|
||||
|
||||
<ul class="nav nav-sidebar">
|
||||
<li ng-repeat="page in pages" ng-class="{'active' : $route.current.Title == page.Title }">
|
||||
<a href="#{{Nav( page.originalPath )}}">{{page.Title}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<body class="bg-dark text-light">
|
||||
|
||||
<!-- Server info header (hidden until connected) -->
|
||||
<nav class="navbar navbar-dark bg-primary" id="server-header" style="display:none">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="#" id="header-hostname"></a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-collapse-header">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse-header">
|
||||
<span class="navbar-text me-3" title="Uptime" id="header-uptime"></span>
|
||||
<span class="navbar-text me-3" title="Map Name" id="header-map"></span>
|
||||
<span class="navbar-text me-3" title="Players" id="header-players"></span>
|
||||
<span class="navbar-text me-3" title="Framerate" id="header-fps"></span>
|
||||
<span class="navbar-text me-3" title="Entity Count" id="header-entities"></span>
|
||||
<button class="btn btn-danger ms-auto" type="button" id="btn-disconnect">Disconnect</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="col-sm-10" ng-show="Connected">
|
||||
|
||||
<h1 class="page-header">{{$route.current.Title}}</h1>
|
||||
<div class="row" ng-view></div>
|
||||
|
||||
<!-- Main layout: hidden until connected -->
|
||||
<div id="app-connected" style="display:none">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<ul class="nav flex-column nav-sidebar" id="sidebar-nav"></ul>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<h1 id="page-title"></h1>
|
||||
<div id="app-view"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
<!-- Connect page: shown when not connected -->
|
||||
<div id="app-connect" class="container"></div>
|
||||
|
||||
<!-- AngularJS -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
|
||||
|
||||
<!-- For charts -->
|
||||
<!-- Bootstrap 5 JS (vanilla, no jQuery needed) -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<!-- Charts -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.1/nv.d3.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-nvd3/1.0.9/angular-nvd3.min.js"></script>
|
||||
|
||||
<!-- Data manipulation -->
|
||||
<script src="js/linq.min.js"></script>
|
||||
|
||||
<!-- Our stuff -->
|
||||
<script src="js/rconService.js"></script>
|
||||
<!-- App scripts -->
|
||||
<script src="js/utils.js"></script>
|
||||
<script src="js/rcon.js"></script>
|
||||
<script src="js/router.js"></script>
|
||||
<script src="js/pages/connect.js"></script>
|
||||
<script src="js/pages/serverInfo.js"></script>
|
||||
<script src="js/pages/console.js"></script>
|
||||
<script src="js/pages/chat.js"></script>
|
||||
<script src="js/pages/playerlist.js"></script>
|
||||
<script src="js/pages/playerInfo.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="js/connection.js"></script>
|
||||
<script src="js/serverInfo.js"></script>
|
||||
<script src="js/console.js"></script>
|
||||
<script src="js/playerlist.js"></script>
|
||||
<script src="js/playerInfo.js"></script>
|
||||
<script src="js/chat.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user