usmannasir 2025-07-02 01:04:36 +05:00
parent c84a07cf4b
commit 65590357b9
6 changed files with 387 additions and 56 deletions

View File

@ -4,6 +4,11 @@
{% block header_scripts %} {% block header_scripts %}
<style> <style>
/* Prevent Angular flicker on page load */
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
/* Dashboard Specific Styles */ /* Dashboard Specific Styles */
.dashboard-wrapper { .dashboard-wrapper {
background: transparent; background: transparent;
@ -297,6 +302,12 @@
justify-content: center; justify-content: center;
padding: 20px; padding: 20px;
backdrop-filter: blur(2px); backdrop-filter: blur(2px);
/* Initially hidden to prevent flicker on page load */
display: none;
}
.modal-backdrop.show {
display: flex;
} }
.modal-content { .modal-content {
@ -743,7 +754,7 @@
</div> </div>
<!-- SSH Activity Modal --> <!-- SSH Activity Modal -->
<div ng-if="showSSHActivityModal" class="modal-backdrop" ng-click="closeModalOnBackdrop($event)"> <div ng-show="showSSHActivityModal" class="modal-backdrop show ng-cloak" ng-click="closeModalOnBackdrop($event)">
<div class="modal-content"> <div class="modal-content">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px;"> <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px;">
<div style="font-size: 1.2rem; font-weight: 800; color: #5b5fcf;"> <div style="font-size: 1.2rem; font-weight: 800; color: #5b5fcf;">

View File

@ -33,9 +33,10 @@
} }
.page-subtitle { .page-subtitle {
font-size: 1.125rem; font-size: 1.25rem;
color: #64748b; color: #64748b;
margin-bottom: 0; margin-bottom: 0;
line-height: 1.5;
} }
.header-actions { .header-actions {
@ -86,9 +87,10 @@
.form-label { .form-label {
display: block; display: block;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-weight: 500; font-weight: 600;
color: #1e293b; color: #1e293b;
font-size: 0.875rem; font-size: 0.9375rem;
letter-spacing: 0.3px;
} }
.form-control { .form-control {
@ -98,6 +100,8 @@
border-radius: 8px; border-radius: 8px;
font-size: 0.875rem; font-size: 0.875rem;
transition: all 0.3s ease; transition: all 0.3s ease;
color: #2f3640;
background-color: white;
background: #fff; background: #fff;
} }
@ -107,6 +111,77 @@
box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1); box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
} }
/* Specific styling for select elements to fix Windows visibility issues */
select.form-control {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: white;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b5fcf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 10px center;
background-size: 20px;
padding-right: 40px;
color: #2f3640 !important;
font-size: 0.9375rem !important;
line-height: 1.5;
height: auto;
min-height: 42px;
}
/* Ensure option text is visible */
select.form-control option {
color: #2f3640;
background-color: white;
padding: 8px;
font-size: 0.9375rem;
}
/* Fix for Windows high contrast mode */
@media screen and (-ms-high-contrast: active) {
select.form-control {
border: 2px solid;
}
select.form-control option {
background: white;
color: black;
}
}
/* Specific focus styles for select */
select.form-control:focus {
background-color: white;
color: #2f3640;
}
/* Additional Windows-specific fixes */
@supports (-ms-ime-align: auto) {
/* Edge/IE specific styles */
select.form-control {
color: #2f3640 !important;
background-color: white !important;
}
}
/* Fix for Firefox on Windows */
@-moz-document url-prefix() {
select.form-control {
color: #2f3640 !important;
text-shadow: none;
}
}
/* Ensure selected option is always visible */
select.form-control::-ms-value {
color: #2f3640;
background-color: white;
}
/* Fix for Chrome on Windows */
select.form-control:not(:focus):not(:hover) {
color: #2f3640 !important;
}
.btn-primary { .btn-primary {
background: #5b5fcf; background: #5b5fcf;
color: white; color: white;
@ -151,13 +226,14 @@
background: #fff; background: #fff;
color: #ef4444; color: #ef4444;
border: 1px solid #fee2e2; border: 1px solid #fee2e2;
padding: 0.5rem 1rem; padding: 0.625rem 1.125rem;
border-radius: 6px; border-radius: 6px;
font-weight: 500; font-weight: 600;
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: all 0.3s ease;
text-decoration: none; text-decoration: none;
font-size: 0.875rem; font-size: 0.9375rem;
letter-spacing: 0.3px;
} }
.btn-danger:hover { .btn-danger:hover {
@ -170,13 +246,14 @@
background: #fff; background: #fff;
color: #5b5fcf; color: #5b5fcf;
border: 1px solid #e8e9ff; border: 1px solid #e8e9ff;
padding: 0.5rem 1rem; padding: 0.625rem 1.125rem;
border-radius: 6px; border-radius: 6px;
font-weight: 500; font-weight: 600;
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: all 0.3s ease;
text-decoration: none; text-decoration: none;
font-size: 0.875rem; font-size: 0.9375rem;
letter-spacing: 0.3px;
} }
.btn-action:hover { .btn-action:hover {
@ -241,7 +318,7 @@
.info-card h4 { .info-card h4 {
color: #1e293b; color: #1e293b;
font-size: 1rem; font-size: 1.125rem;
font-weight: 600; font-weight: 600;
margin-bottom: 1rem; margin-bottom: 1rem;
display: flex; display: flex;
@ -261,17 +338,18 @@
.config-table th { .config-table th {
background: #5b5fcf; background: #5b5fcf;
color: white; color: white;
padding: 0.75rem 1rem; padding: 0.875rem 1rem;
text-align: left; text-align: left;
font-weight: 600; font-weight: 600;
font-size: 0.875rem; font-size: 0.9375rem;
} }
.config-table td { .config-table td {
padding: 0.75rem 1rem; padding: 0.875rem 1rem;
border-bottom: 1px solid #f3f4f6; border-bottom: 1px solid #f3f4f6;
font-size: 0.875rem; font-size: 0.9375rem;
color: #64748b; color: #2f3640;
line-height: 1.5;
} }
.config-table tr:last-child td { .config-table tr:last-child td {
@ -291,21 +369,22 @@
} }
.email-table th { .email-table th {
padding: 1rem; padding: 1.25rem 1rem;
text-align: left; text-align: left;
font-weight: 600; font-weight: 700;
color: #1e293b; color: #1e293b;
font-size: 0.875rem; font-size: 0.9375rem;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.05em; letter-spacing: 0.75px;
border-bottom: 1px solid #e8e9ff; border-bottom: 2px solid #e8e9ff;
} }
.email-table td { .email-table td {
padding: 1rem; padding: 1.25rem 1rem;
color: #64748b; color: #2f3640;
font-size: 0.875rem; font-size: 0.9375rem;
border-bottom: 1px solid #f3f4f6; border-bottom: 1px solid #f3f4f6;
line-height: 1.5;
} }
.email-table tbody tr:hover { .email-table tbody tr:hover {
@ -373,19 +452,21 @@
} }
.modal .form-horizontal .control-label { .modal .form-horizontal .control-label {
font-weight: 500; font-weight: 600;
color: #1e293b; color: #1e293b;
font-size: 0.875rem; font-size: 0.9375rem;
padding-top: 0.75rem; padding-top: 0.75rem;
text-align: right; text-align: right;
letter-spacing: 0.3px;
} }
.modal .form-control { .modal .form-control {
padding: 0.75rem 1rem; padding: 0.875rem 1rem;
border: 1px solid #e8e9ff; border: 1px solid #e8e9ff;
border-radius: 8px; border-radius: 8px;
font-size: 0.875rem; font-size: 1rem;
transition: all 0.3s ease; transition: all 0.3s ease;
line-height: 1.5;
} }
.modal .form-control:focus { .modal .form-control:focus {
@ -625,10 +706,10 @@
<tr ng-repeat="record in records track by $index"> <tr ng-repeat="record in records track by $index">
<td> <td>
<i class="fas fa-user-circle" style="color: #5b5fcf; margin-right: 0.5rem;"></i> <i class="fas fa-user-circle" style="color: #5b5fcf; margin-right: 0.5rem;"></i>
<strong ng-bind="record.email"></strong> <strong style="font-size: 0.9375rem; color: #1e293b;" ng-bind="record.email"></strong>
</td> </td>
<td> <td>
<span style="padding: 0.25rem 0.75rem; background: #f0f1ff; color: #5b5fcf; border-radius: 4px; font-weight: 500; font-size: 0.75rem;"> <span style="padding: 0.375rem 0.875rem; background: #f0f1ff; color: #5b5fcf; border-radius: 4px; font-weight: 600; font-size: 0.875rem;">
{{ record.DiskUsage }} {{ record.DiskUsage }}
</span> </span>
</td> </td>

View File

@ -36,7 +36,7 @@
.section-title { .section-title {
font-size: 2rem; font-size: 2rem;
font-weight: 700; font-weight: 700;
color: #2f3640; color: #1a1a2e;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
margin: 0; margin: 0;
@ -50,8 +50,9 @@
background: linear-gradient(135deg, #5b5fcf 0%, #7b7fd0 100%); background: linear-gradient(135deg, #5b5fcf 0%, #7b7fd0 100%);
border: none; border: none;
border-radius: 8px; border-radius: 8px;
padding: 0.5rem 1.5rem; padding: 0.625rem 1.5rem;
font-weight: 600; font-weight: 600;
font-size: 0.875rem;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
transition: all 0.3s ease; transition: all 0.3s ease;
@ -73,27 +74,33 @@
} }
.table thead th { .table thead th {
background: #f8f9ff; background: #f8f9ff;
color: #2f3640; color: #1a1a2e;
font-weight: 700; font-weight: 700;
text-transform: uppercase; text-transform: uppercase;
font-size: 0.85rem; font-size: 0.875rem;
letter-spacing: 0.5px; letter-spacing: 0.75px;
padding: 1rem; padding: 1.25rem 1rem;
border: none; border: none;
border-bottom: 2px solid #e8e9ff; border-bottom: 2px solid #e8e9ff;
text-align: left; text-align: left;
} }
.table tbody td { .table tbody td {
padding: 1rem; padding: 1.25rem 1rem;
vertical-align: middle; vertical-align: middle;
color: #2f3640; color: #2f3640;
font-size: 0.9375rem;
border-bottom: 1px solid #f0f0ff; border-bottom: 1px solid #f0f0ff;
line-height: 1.5;
}
.table tbody td strong {
color: #1a1a2e;
font-weight: 600;
} }
.table tbody tr:hover { .table tbody tr:hover {
background: #f8f9ff; background: #f8f9ff;
} }
.btn-action { .btn-action {
padding: 0.375rem 0.75rem; padding: 0.5rem 0.875rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 6px; border-radius: 6px;
font-weight: 600; font-weight: 600;
@ -103,6 +110,7 @@
margin: 0 0.25rem; margin: 0 0.25rem;
border: 1px solid transparent; border: 1px solid transparent;
cursor: pointer; cursor: pointer;
letter-spacing: 0.3px;
} }
.btn-suspend { .btn-suspend {
color: #ef4444; color: #ef4444;
@ -149,18 +157,21 @@
text-decoration: none; text-decoration: none;
} }
.state-badge { .state-badge {
padding: 0.25rem 0.75rem; padding: 0.375rem 0.875rem;
border-radius: 20px; border-radius: 20px;
font-size: 0.85rem; font-size: 0.875rem;
font-weight: 600; font-weight: 600;
letter-spacing: 0.3px;
} }
.state-active { .state-active {
background: rgba(16, 185, 129, 0.1); background: rgba(16, 185, 129, 0.15);
color: #065f46; color: #065f46;
border: 1px solid rgba(16, 185, 129, 0.2);
} }
.state-suspended { .state-suspended {
background: rgba(239, 68, 68, 0.1); background: rgba(239, 68, 68, 0.15);
color: #991b1b; color: #991b1b;
border: 1px solid rgba(239, 68, 68, 0.2);
} }
.loading-icon { .loading-icon {
width: 20px; width: 20px;
@ -179,25 +190,30 @@
} }
.modal-title { .modal-title {
font-weight: 700; font-weight: 700;
color: #2f3640; color: #1a1a2e;
font-size: 1.25rem;
} }
.modal-body { .modal-body {
padding: 2rem; padding: 2rem;
} }
.form-label { .form-label {
color: #2f3640; color: #1a1a2e;
font-weight: 600; font-weight: 600;
font-size: 0.9375rem;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
display: block; display: block;
letter-spacing: 0.3px;
} }
.form-control { .form-control {
border: 1px solid #e8e9ff; border: 1px solid #e8e9ff;
border-radius: 8px; border-radius: 8px;
padding: 0.75rem 1rem; padding: 0.875rem 1rem;
font-size: 1rem; font-size: 1rem;
transition: all 0.3s ease; transition: all 0.3s ease;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
color: #2f3640;
line-height: 1.5;
} }
.form-control:focus { .form-control:focus {
border-color: #5b5fcf; border-color: #5b5fcf;
@ -205,10 +221,11 @@
outline: none; outline: none;
} }
.danger-text { .danger-text {
color: #ef4444; color: #dc2626;
font-weight: 600; font-weight: 600;
font-size: 1.1rem; font-size: 1rem;
margin-bottom: 1rem; margin-bottom: 1rem;
line-height: 1.5;
} }
.btn-danger { .btn-danger {
background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
@ -231,30 +248,39 @@
padding-left: 12px; padding-left: 12px;
padding-right: 12px; padding-right: 12px;
} }
.content-card {
padding: 1.5rem;
}
.section-title { .section-title {
float: none; float: none;
text-align: center; text-align: center;
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 1.5rem;
} }
.header-actions { .header-actions {
float: none; float: none;
text-align: center; text-align: center;
margin-top: 0; margin-top: 0;
} }
.table-card {
padding: 1rem;
}
.table { .table {
font-size: 0.9rem; font-size: 0.875rem;
}
.table thead th {
font-size: 0.8125rem;
padding: 0.875rem 0.625rem;
} }
.table thead th,
.table tbody td { .table tbody td {
padding: 0.5rem; padding: 0.875rem 0.625rem;
font-size: 0.875rem;
} }
.btn-action { .btn-action {
padding: 0.25rem 0.5rem; padding: 0.375rem 0.625rem;
font-size: 0.8rem; font-size: 0.8125rem;
margin: 0.1rem; margin: 0.125rem;
}
.state-badge {
font-size: 0.8125rem;
padding: 0.25rem 0.625rem;
} }
} }
</style> </style>

View File

@ -85,6 +85,43 @@
transition: all 0.2s ease; transition: all 0.2s ease;
} }
/* Specific styling for select elements to fix Windows visibility issues */
select.form-control {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: white;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc3545' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 10px center;
background-size: 20px;
padding-right: 40px;
color: #2f3640 !important;
font-size: 14px !important;
line-height: 1.5;
height: auto;
min-height: 42px;
}
/* Ensure option text is visible */
select.form-control option {
color: #2f3640;
background-color: white;
padding: 8px;
font-size: 14px;
}
/* Fix for Windows high contrast mode */
@media screen and (-ms-high-contrast: active) {
select.form-control {
border: 2px solid;
}
select.form-control option {
background: white;
color: black;
}
}
.form-control:hover { .form-control:hover {
border-color: #dc3545; border-color: #dc3545;
} }
@ -95,6 +132,12 @@
box-shadow: 0 0 0 3px rgba(220,53,69,0.1); box-shadow: 0 0 0 3px rgba(220,53,69,0.1);
} }
/* Specific focus styles for select */
select.form-control:focus {
background-color: white;
color: #2f3640;
}
/* Website selector card */ /* Website selector card */
.website-selector-card { .website-selector-card {
background: #fff5f5; background: #fff5f5;
@ -349,6 +392,34 @@
display: none; display: none;
} }
/* Additional Windows-specific fixes */
@supports (-ms-ime-align: auto) {
/* Edge/IE specific styles */
select.form-control {
color: #2f3640 !important;
background-color: white !important;
}
}
/* Fix for Firefox on Windows */
@-moz-document url-prefix() {
select.form-control {
color: #2f3640 !important;
text-shadow: none;
}
}
/* Ensure selected option is always visible */
select.form-control::-ms-value {
color: #2f3640;
background-color: white;
}
/* Fix for Chrome on Windows */
select.form-control:not(:focus):not(:hover) {
color: #2f3640 !important;
}
@media (max-width: 768px) { @media (max-width: 768px) {
.content-card { .content-card {
padding: 20px; padding: 20px;

View File

@ -85,6 +85,43 @@
transition: all 0.2s ease; transition: all 0.2s ease;
} }
/* Specific styling for select elements to fix Windows visibility issues */
select.form-control {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: white;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b5fcf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 10px center;
background-size: 20px;
padding-right: 40px;
color: #2f3640 !important;
font-size: 14px !important;
line-height: 1.5;
height: auto;
min-height: 42px;
}
/* Ensure option text is visible */
select.form-control option {
color: #2f3640;
background-color: white;
padding: 8px;
font-size: 14px;
}
/* Fix for Windows high contrast mode */
@media screen and (-ms-high-contrast: active) {
select.form-control {
border: 2px solid;
}
select.form-control option {
background: white;
color: black;
}
}
.form-control:hover { .form-control:hover {
border-color: #5b5fcf; border-color: #5b5fcf;
} }
@ -95,6 +132,12 @@
box-shadow: 0 0 0 3px rgba(91,95,207,0.1); box-shadow: 0 0 0 3px rgba(91,95,207,0.1);
} }
/* Specific focus styles for select */
select.form-control:focus {
background-color: white;
color: #2f3640;
}
/* Current value display */ /* Current value display */
.current-value { .current-value {
display: inline-block; display: inline-block;
@ -293,6 +336,34 @@
display: none; display: none;
} }
/* Additional Windows-specific fixes */
@supports (-ms-ime-align: auto) {
/* Edge/IE specific styles */
select.form-control {
color: #2f3640 !important;
background-color: white !important;
}
}
/* Fix for Firefox on Windows */
@-moz-document url-prefix() {
select.form-control {
color: #2f3640 !important;
text-shadow: none;
}
}
/* Ensure selected option is always visible */
select.form-control::-ms-value {
color: #2f3640;
background-color: white;
}
/* Fix for Chrome on Windows */
select.form-control:not(:focus):not(:hover) {
color: #2f3640 !important;
}
@media (max-width: 768px) { @media (max-width: 768px) {
.form-row { .form-row {
grid-template-columns: 1fr; grid-template-columns: 1fr;

View File

@ -85,6 +85,43 @@
transition: all 0.2s ease; transition: all 0.2s ease;
} }
/* Specific styling for select elements to fix Windows visibility issues */
select.form-control {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: white;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b5fcf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 10px center;
background-size: 20px;
padding-right: 40px;
color: #2f3640 !important;
font-size: 14px !important;
line-height: 1.5;
height: auto;
min-height: 42px;
}
/* Ensure option text is visible */
select.form-control option {
color: #2f3640;
background-color: white;
padding: 8px;
font-size: 14px;
}
/* Fix for Windows high contrast mode */
@media screen and (-ms-high-contrast: active) {
select.form-control {
border: 2px solid;
}
select.form-control option {
background: white;
color: black;
}
}
.form-control:hover { .form-control:hover {
border-color: #5b5fcf; border-color: #5b5fcf;
} }
@ -95,6 +132,12 @@
box-shadow: 0 0 0 3px rgba(91,95,207,0.1); box-shadow: 0 0 0 3px rgba(91,95,207,0.1);
} }
/* Specific focus styles for select */
select.form-control:focus {
background-color: white;
color: #2f3640;
}
/* Website selector card */ /* Website selector card */
.website-selector-card { .website-selector-card {
background: #f8f9ff; background: #f8f9ff;
@ -370,6 +413,34 @@
} }
/* Additional Windows-specific fixes */
@supports (-ms-ime-align: auto) {
/* Edge/IE specific styles */
select.form-control {
color: #2f3640 !important;
background-color: white !important;
}
}
/* Fix for Firefox on Windows */
@-moz-document url-prefix() {
select.form-control {
color: #2f3640 !important;
text-shadow: none;
}
}
/* Ensure selected option is always visible */
select.form-control::-ms-value {
color: #2f3640;
background-color: white;
}
/* Fix for Chrome on Windows */
select.form-control:not(:focus):not(:hover) {
color: #2f3640 !important;
}
@media (max-width: 768px) { @media (max-width: 768px) {
.state-selection { .state-selection {
flex-direction: column; flex-direction: column;