mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-14 01:06:09 +01:00
286 lines
16 KiB
HTML
Executable File
286 lines
16 KiB
HTML
Executable File
{% extends "baseTemplate/index.html" %}
|
|
{% load i18n %}
|
|
{% block title %}{% trans "Websites Hosted - CyberPanel" %}{% endblock %}
|
|
{% block content %}
|
|
|
|
{% load static %}
|
|
{% get_current_language as LANGUAGE_CODE %}
|
|
<!-- Current language: {{ LANGUAGE_CODE }} -->
|
|
|
|
<script>
|
|
$(document).ready(function () {
|
|
$('[data-toggle="tooltip"]').tooltip();
|
|
});
|
|
</script>
|
|
|
|
<div ng-controller="listWebsites" class="container">
|
|
|
|
<div id="page-title">
|
|
<h2 id="domainNamePage">{% trans "List Websites" %}
|
|
<a class="pull-right btn btn-primary" href="{% url "createWebsite" %}">{% trans "Create Website" %}</a>
|
|
</h2>
|
|
<img ng-hide="cyberPanelLoading" src="{% static 'images/loading.gif' %}">
|
|
<p>{% trans "On this page you can launch, list, modify and delete websites from your server." %}</p>
|
|
</div>
|
|
|
|
<div class="col-sm-10" style="padding: 0px; box-shadow: 0px 0px 1px 0px #888888; margin-bottom: 2%">
|
|
<input ng-change="searchWebsites()" placeholder="Search..." ng-model="patternAdded" name="dom" type="text"
|
|
class="form-control" required>
|
|
</div>
|
|
|
|
<div class="col-sm-2">
|
|
<div class="form-group">
|
|
<select ng-model="recordsToShow" ng-change="getFurtherWebsitesFromDB()"
|
|
class="form-control" id="example-select">
|
|
<option>10</option>
|
|
<option>50</option>
|
|
<option>100</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-repeat="web in WebSitesList track by $index" class="panel col-md-12"
|
|
style="padding: 0px; box-shadow: 0px 0px 1px 0px #888888;">
|
|
<div class="">
|
|
<div class="table-responsive no-gutter text-nowrap" style="overflow-x: hidden;">
|
|
|
|
<div style="border-bottom: 1px solid #888888" class="col-md-12">
|
|
<div class="col-lg-10 content-box-header" style="text-transform: none;">
|
|
<a href="http://{$ web.domain $}" target="_blank" title="Visit Site">
|
|
<h2 style="display: inline; color: #414C59;" ng-bind="web.domain"></h2>
|
|
</a>
|
|
<a target="_self" href="/filemanager/{$ web.domain $}" title="Open File Manager"> --
|
|
{% trans "File Manager" %}</a>
|
|
</div>
|
|
<div class="col-md-2 content-box-header" style="text-transform: none;">
|
|
<a href="/websites/{$ web.domain $}" target="_self" title="Manage Website">
|
|
<i class="p fa fa-external-link btn-icon"> </i>
|
|
<span>{% trans "Manage" %}</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-12">
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-sticky-note btn-icon text-muted" data-toggle="tooltip"
|
|
data-placement="right" title="State"> </i>
|
|
<span ng-bind="web.state" style="text-transform: none"></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-map-marker btn-icon text-muted" data-toggle="tooltip"
|
|
data-placement="right" title="IP Address"> </i>
|
|
<span ng-bind="web.ipAddress"></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-lock btn-icon text-muted" data-toggle="tooltip" data-placement="right"
|
|
title="SSL"> </i>
|
|
<span><a ng-click="issueSSL(web.domain)" href=""
|
|
style="text-transform: none">{% trans "Issue SSL" %}</a></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<span ng-bind="web.phpVersion"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-12">
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-hdd-o btn-icon text-muted" data-toggle="tooltip"
|
|
data-placement="right"
|
|
title="Disk Usage"> </i>
|
|
<span ng-bind="web.diskUsed" style="text-transform: none"></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-cubes btn-icon text-muted" data-toggle="tooltip"
|
|
data-placement="right"
|
|
title="Packages"> </i>
|
|
<span ng-bind="web.package" style="text-transform: none"></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<i class="p fa fa-user btn-icon text-muted" data-toggle="tooltip" data-placement="right"
|
|
title="Owner"> </i>
|
|
<span ng-bind="web.admin" style="text-transform: none"></span>
|
|
</div>
|
|
<div class="col-md-3 content-box-header">
|
|
<a href="javascript:void(0);" ng-click="showWPSites(web.domain)" style="cursor: pointer;">
|
|
<i class="p fa fa-wordpress btn-icon text-muted" data-toggle="tooltip"
|
|
data-placement="right" title="Show WordPress Sites"> </i>
|
|
<span ng-if="web.wp_sites && web.wp_sites.length > 0" style="text-transform: none">
|
|
{$ web.wp_sites.length $} WordPress Sites
|
|
</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- WordPress Sites Section -->
|
|
<div class="col-md-12" ng-if="web.showWPSites && web.wp_sites && web.wp_sites.length > 0">
|
|
<div ng-repeat="wp in web.wp_sites" class="wp-site-item">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="wp-site-header">
|
|
<div class="row">
|
|
<div class="col-sm-8">
|
|
<h4>{$ wp.title $}</h4>
|
|
</div>
|
|
<div class="col-sm-4 text-right">
|
|
<button class="btn btn-primary btn-sm" ng-click="manageWP(wp.id)">
|
|
<i class="fas fa-cog"></i> Manage
|
|
</button>
|
|
<button class="btn btn-danger btn-sm" ng-click="deleteWPSite(wp)">
|
|
<i class="fas fa-trash"></i> Delete
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="wp-site-content">
|
|
<div class="row">
|
|
<div class="col-sm-3">
|
|
<img ng-src="https://api.microlink.io/?url={$ getFullUrl(wp.url) $}&screenshot=true&meta=false&embed=screenshot.url"
|
|
alt="{$ wp.title $}"
|
|
class="img-responsive"
|
|
style="max-width: 100%; margin-bottom: 10px;"
|
|
onerror="this.onerror=null; this.src='https://s.wordpress.org/style/images/about/WordPress-logotype-standard.png';">
|
|
<div class="text-center">
|
|
<a ng-href="{$ getFullUrl(wp.url) $}" target="_blank" class="btn btn-default btn-sm">
|
|
<i class="fas fa-external-link-alt"></i> Visit Site
|
|
</a>
|
|
<a href="{% url 'AutoLogin' %}?id={$ wp.id $}" target="_blank" class="btn btn-primary btn-sm">
|
|
<i class="fab fa-wordpress"></i> WP Login
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<div class="row">
|
|
<div class="col-sm-3">
|
|
<div class="info-box">
|
|
<label>WordPress</label>
|
|
<span>{$ wp.version || 'Unknown' $}</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="info-box">
|
|
<label>PHP Version</label>
|
|
<span>{$ wp.phpVersion || 'Loading...' $}</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="info-box">
|
|
<label>Theme</label>
|
|
<span>{$ wp.theme || 'twentytwentyfive' $}</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="info-box">
|
|
<label>Plugins</label>
|
|
<span>{$ wp.activePlugins || '0' $} active</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row mt-3">
|
|
<div class="col-sm-6">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="wp.searchIndex" ng-change="updateSetting(wp, 'search-indexing')">
|
|
Search engine indexing
|
|
</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="wp.debugging" ng-change="updateSetting(wp, 'debugging')">
|
|
Debugging
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="wp.passwordProtection" ng-change="updateSetting(wp, 'password-protection')">
|
|
Password protection
|
|
</label>
|
|
</div>
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="wp.maintenanceMode" ng-change="updateSetting(wp, 'maintenance-mode')">
|
|
Maintenance mode
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.wp-site-item {
|
|
border: 1px solid #ddd;
|
|
margin-bottom: 20px;
|
|
border-radius: 4px;
|
|
background: white;
|
|
}
|
|
.wp-site-header {
|
|
padding: 15px;
|
|
border-bottom: 1px solid #ddd;
|
|
background: #f5f5f5;
|
|
}
|
|
.wp-site-content {
|
|
padding: 15px;
|
|
}
|
|
.info-box {
|
|
margin-bottom: 15px;
|
|
}
|
|
.info-box label {
|
|
display: block;
|
|
font-size: 12px;
|
|
color: #666;
|
|
margin-bottom: 5px;
|
|
}
|
|
.info-box span {
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
}
|
|
.checkbox {
|
|
margin-bottom: 10px;
|
|
}
|
|
.mt-3 {
|
|
margin-top: 1rem;
|
|
}
|
|
.btn {
|
|
margin: 0 2px;
|
|
}
|
|
.btn i {
|
|
margin-right: 5px;
|
|
}
|
|
.text-center .btn {
|
|
min-width: 100px;
|
|
}
|
|
</style>
|
|
|
|
<div id="listFail" class="alert alert-danger">
|
|
<p>{% trans "Cannot list websites. Error message:" %} {$ errorMessage $}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div style="margin-top: 2%" class="row">
|
|
<div class="col-md-12">
|
|
<div class="row">
|
|
<div class="col-md-9">
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="form-group">
|
|
<select ng-model="currentPage" class="form-control"
|
|
ng-change="getFurtherWebsitesFromDB()">
|
|
<option ng-repeat="page in pagination">{$ $index + 1 $}</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div> <!-- end row -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|