refactor(icons): replace fa icons [EE-4459] (#7907)

refactor(icons): remove fontawesome EE-4459

refactor(icon) replace feather with lucide EE-4472
pull/8119/head
Ali 2022-11-28 15:00:28 +13:00 committed by GitHub
parent 9dfac98a26
commit d78b762f7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
498 changed files with 2102 additions and 2817 deletions

View File

@ -104,7 +104,7 @@ overrides:
'react/jsx-no-bind': off
'no-await-in-loop': 'off'
'react/jsx-no-useless-fragment': ['error', { allowExpressions: true }]
'regex/invalid': ['error', [{ 'regex': 'data-feather="(.*)"', 'message': 'Please use `react-feather` package instead' }]]
'regex/invalid': ['error', [{ 'regex': '<Icon icon="(.*)"', 'message': 'Please directly import the `lucide-react` icon instead of using the string' }]]
- files:
- app/**/*.test.*
extends:

View File

@ -1,4 +1,4 @@
<button ng-if="!$ctrl.state.uploadInProgress" type="button" ngf-select="$ctrl.onFileSelected($file)" class="btn btn-light ng-scope">
<pr-icon icon="'upload'" feather="true"></pr-icon>
<pr-icon icon="'upload'"></pr-icon>
</button>
<button ng-if="$ctrl.state.uploadInProgress" type="button" class="btn btn-sm btn-light" button-spinner="$ctrl.state.uploadInProgress"></button>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -60,7 +60,7 @@
<tr ng-if="!$ctrl.isRoot">
<td colspan="4">
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ng-click="$ctrl.goToParent()"
><pr-icon icon="'corner-left-up'" feather="true"></pr-icon>Go to parent</button
><pr-icon icon="'corner-left-up'"></pr-icon>Go to parent</button
>
</td>
</tr>
@ -74,15 +74,15 @@
on-enter-key="$ctrl.rename({ name: item.Name, newName: item.newName }); item.edit = false"
auto-focus
/>
<a class="interactive" ng-click="item.edit = false;"><pr-icon icon="'x'" feather="true"></pr-icon></a>
<a class="interactive" ng-click="$ctrl.rename({name: item.Name, newName: item.newName}); item.edit = false;"><pr-icon icon="'check'" feather="true"></pr-icon></a>
<a class="interactive" ng-click="item.edit = false;"><pr-icon icon="'x'"></pr-icon></a>
<a class="interactive" ng-click="$ctrl.rename({name: item.Name, newName: item.newName}); item.edit = false;"><pr-icon icon="'check'"></pr-icon></a>
</span>
<span ng-if="!item.edit && item.Dir">
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ng-click="$ctrl.browse({name: item.Name})" class="vertical-center"
><pr-icon icon="'folder'" feather="true"></pr-icon>{{ item.Name }}</button
><pr-icon icon="'folder'"></pr-icon>{{ item.Name }}</button
>
</span>
<span ng-if="!item.edit && !item.Dir" class="vertical-center"><pr-icon icon="'file'" feather="true"></pr-icon>{{ item.Name }}</span>
<span ng-if="!item.edit && !item.Dir" class="vertical-center"><pr-icon icon="'file'"></pr-icon>{{ item.Name }}</span>
</td>
<td>{{ item.Size | humansize }}</td>
<td>
@ -90,13 +90,13 @@
</td>
<td>
<btn authorization="DockerAgentBrowseGet" class="btn btn-xs btn-secondary space-right" ng-click="$ctrl.download({ name: item.Name })" ng-if="!item.Dir">
<pr-icon icon="'download'" feather="true"></pr-icon> Download
<pr-icon icon="'download'"></pr-icon> Download
</btn>
<btn authorization="DockerAgentBrowseRename" class="btn btn-xs btn-secondary space-right" ng-click="item.newName = item.Name; item.edit = true">
<pr-icon icon="'edit'" feather="true"></pr-icon> Rename
<pr-icon icon="'edit'"></pr-icon> Rename
</btn>
<btn authorization="DockerAgentBrowseDelete" class="btn btn-xs btn-dangerlight" ng-click="$ctrl.delete({ name: item.Name })">
<pr-icon icon="'trash-2'" feather="true"></pr-icon> Delete
<pr-icon icon="'trash-2'"></pr-icon> Delete
</btn>
</td>
</tr>

View File

@ -147,27 +147,6 @@ input[type='checkbox'] {
background-color: var(--bg-item-highlighted-null-color);
}
.fa.green-icon {
color: #23ae89;
}
.fa.red-icon {
color: #f04438;
}
.fa.orange-icon {
color: #f0ad4e;
}
.fa.white-icon {
color: white;
}
.fa.blue-icon,
.fab.blue-icon {
color: var(--blue-2);
}
.text-warning {
@apply text-warning-9 th-dark:text-warning-7 th-highcontrast:text-warning-1;
}

View File

@ -1,4 +1,4 @@
.feather {
.lucide {
display: block;
height: 1em;
width: 1em;

View File

@ -1,7 +1,4 @@
import 'bootstrap/dist/css/bootstrap.css';
import '@fortawesome/fontawesome-free/css/brands.css';
import '@fortawesome/fontawesome-free/css/solid.css';
import '@fortawesome/fontawesome-free/css/fontawesome.css';
import 'toastr/build/toastr.css';
import 'xterm/dist/xterm.css';
import 'angularjs-slider/dist/rzslider.css';

View File

@ -1,11 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28003C22.1592 5.28003 28.4649 11.5865 28.4649 19.365C28.4649 27.1435 22.1592 33.45 14.3817 33.45C6.60065 33.4535 0.294922 27.1435 0.294922 19.365C0.294922 11.5865 6.60065 5.28003 14.3817 5.28003Z" fill="#E0F2FE"/>
<g clip-path="url(#clip0_9538_418895)">
<path d="M15.0049 13.2509L8.75488 20.7509H14.3799L13.7549 25.7509L20.0049 18.2509H14.3799L15.0049 13.2509Z" stroke="#0086C9" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_9538_418895">
<rect width="15" height="15" fill="white" transform="translate(6.87988 12.0009)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 719 B

View File

@ -1,4 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28003C22.1592 5.28003 28.4649 11.5865 28.4649 19.365C28.4649 27.1435 22.1592 33.45 14.3817 33.45C6.60065 33.4535 0.294922 27.1435 0.294922 19.365C0.294922 11.5865 6.60065 5.28003 14.3817 5.28003Z" fill="#E0F2FE"/>
<path d="M9.32758 23.1544V23.0281C9.32758 21.9669 9.32758 21.4364 9.53409 21.0311C9.71574 20.6746 10.0056 20.3847 10.3621 20.2031C10.7674 19.9966 11.298 19.9966 12.3591 19.9966H16.4011C17.4622 19.9966 17.9928 19.9966 18.3981 20.2031C18.7546 20.3847 19.0444 20.6746 19.2261 21.0311C19.4326 21.4364 19.4326 21.9669 19.4326 23.0281V23.1544M9.32758 23.1544C8.62997 23.1544 8.06445 23.7199 8.06445 24.4175C8.06445 25.1151 8.62997 25.6806 9.32758 25.6806C10.0252 25.6806 10.5907 25.1151 10.5907 24.4175C10.5907 23.7199 10.0252 23.1544 9.32758 23.1544ZM19.4326 23.1544C18.735 23.1544 18.1695 23.7199 18.1695 24.4175C18.1695 25.1151 18.735 25.6806 19.4326 25.6806C20.1302 25.6806 20.6957 25.1151 20.6957 24.4175C20.6957 23.7199 20.1302 23.1544 19.4326 23.1544ZM14.3801 23.1544C13.6825 23.1544 13.117 23.7199 13.117 24.4175C13.117 25.1151 13.6825 25.6806 14.3801 25.6806C15.0777 25.6806 15.6432 25.1151 15.6432 24.4175C15.6432 23.7199 15.0777 23.1544 14.3801 23.1544ZM14.3801 23.1544V16.8388M10.5907 16.8388H18.1695C18.758 16.8388 19.0523 16.8388 19.2844 16.7426C19.5939 16.6144 19.8398 16.3685 19.968 16.059C20.0641 15.8269 20.0641 15.5326 20.0641 14.9441C20.0641 14.3555 20.0641 14.0613 19.968 13.8291C19.8398 13.5196 19.5939 13.2737 19.2844 13.1455C19.0523 13.0494 18.758 13.0494 18.1695 13.0494H10.5907C10.0022 13.0494 9.70789 13.0494 9.47576 13.1455C9.16626 13.2737 8.92036 13.5196 8.79217 13.8291C8.69602 14.0613 8.69602 14.3555 8.69602 14.9441C8.69602 15.5326 8.69602 15.8269 8.79217 16.059C8.92036 16.3685 9.16626 16.6144 9.47576 16.7426C9.70789 16.8388 10.0022 16.8388 10.5907 16.8388Z" stroke="#0086C9" stroke-width="1.15" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2.01501 12H23M23 12L16.0001 5M23 12L16.0001 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 252 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M49.9999 87.5001L49.9999 12.5004M49.9999 87.5001L67.6776 69.8224M49.9999 87.5001L32.3222 69.8224M49.9999 12.5004L32.3223 30.178M49.9999 12.5004L67.6776 30.1781" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 368 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M49.9999 9.22363V92.557M79.4627 21.4275L20.5371 80.3531M91.6666 50.8903H8.33325M79.4627 80.3531L20.5371 21.4275" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 320 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M39.5835 91.6665C56.8424 91.6665 70.8335 77.6754 70.8335 60.4165C70.8335 43.1576 56.8424 29.1665 39.5835 29.1665C22.3246 29.1665 8.3335 43.1576 8.3335 60.4165C8.3335 77.6754 22.3246 91.6665 39.5835 91.6665Z" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M20.8335 62.4998C20.8335 50.9939 30.1609 41.6665 41.6668 41.6665" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M71.6499 9.34864V4.1665M85.4165 14.7403L89.0808 11.076M85.2593 42.1688L88.9237 45.8332M57.8308 14.7403L54.1665 11.076M90.651 28.3498H95.8332M63.0022 36.9975L74.9998 24.9998" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 853 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M37.1986 10.3367C20.4498 15.7383 8.33334 31.4541 8.33334 49.9999C8.33334 73.0118 26.9881 91.6666 50 91.6666C73.0119 91.6666 91.6667 73.0118 91.6667 49.9999C91.6667 31.4541 79.5502 15.7383 62.8014 10.3367" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 412 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M22.7 13.5L20.7005 11.5L18.6999 13.5M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C15.3019 3 18.1885 4.77814 19.7545 7.42909M12 7V12L15 14" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 382 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-cloud"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"></path></svg>

Before

Width:  |  Height:  |  Size: 284 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M87.7688 12.2312L66.9354 33.0645M66.9354 33.0645H87.7688M66.9354 33.0645V12.2312M12.2964 12.2964L22.7131 22.7131L33.1298 33.1298M33.1298 33.1298V12.2964M33.1298 33.1298H12.2964M87.4042 87.4042L66.5709 66.5709M66.5709 66.5709L66.5709 87.4042M66.5709 66.5709L87.4042 66.5709M12.6353 87.3647L33.4686 66.5314M33.4686 66.5314H12.6353M33.4686 66.5314V87.3647" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 561 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.6992 13.533L6.96646 16.1623M6.96646 16.1623L2.2337 13.533M6.96646 16.1623L6.96647 21.4519M11.9776 18.4221V13.9026M11.9776 18.4221C11.9776 18.6129 11.9776 18.7083 11.9495 18.7934C11.9246 18.8686 11.884 18.9377 11.8303 18.996C11.7696 19.0619 11.6862 19.1082 11.5194 19.2009L7.39912 21.4899C7.24121 21.5777 7.16226 21.6215 7.07864 21.6387C7.00464 21.6539 6.92831 21.6539 6.85431 21.6387C6.77069 21.6215 6.69174 21.5777 6.53383 21.4899L2.41355 19.2009C2.24678 19.1082 2.16339 19.0619 2.10267 18.996C2.04895 18.9377 2.0083 18.8686 1.98343 18.7934C1.95532 18.7083 1.95532 18.6129 1.95532 18.4221V13.9026C1.95532 13.7118 1.95532 13.6164 1.98343 13.5313C2.0083 13.4561 2.04895 13.387 2.10267 13.3287C2.16339 13.2628 2.24677 13.2165 2.41355 13.1238L6.53383 10.8348C6.69174 10.747 6.77069 10.7032 6.85431 10.686C6.92831 10.6708 7.00464 10.6708 7.07864 10.686C7.16226 10.7032 7.24121 10.747 7.39912 10.8348L11.5194 13.1238C11.6862 13.2165 11.7696 13.2628 11.8303 13.3287C11.884 13.387 11.9246 13.4561 11.9495 13.5313C11.9776 13.6164 11.9776 13.7118 11.9776 13.9026M11.9776 18.4221C11.9776 18.6129 11.9777 18.7083 12.0058 18.7934C12.0306 18.8686 12.0713 18.9377 12.125 18.996C12.1857 19.0619 12.2691 19.1082 12.4359 19.2009L16.5562 21.4899C16.7141 21.5777 16.793 21.6215 16.8766 21.6387C16.9506 21.6539 17.027 21.6539 17.101 21.6387C17.1846 21.6215 17.2635 21.5777 17.4215 21.4899L21.5417 19.2009C21.7085 19.1082 21.7919 19.0619 21.8526 18.996C21.9063 18.9377 21.947 18.8686 21.9719 18.7934C22 18.7083 22 18.6129 22 18.4221V13.9026C22 13.7118 22 13.6164 21.9719 13.5313C21.947 13.4561 21.9063 13.387 21.8526 13.3287C21.7919 13.2628 21.7085 13.2165 21.5417 13.1238L17.4215 10.8348C17.2635 10.747 17.1846 10.7032 17.101 10.686C17.027 10.6708 16.9506 10.6708 16.8766 10.686C16.793 10.7032 16.7141 10.747 16.5562 10.8348L12.4359 13.1238C12.2691 13.2165 12.1857 13.2628 12.125 13.3287C12.0713 13.387 12.0306 13.4561 12.0058 13.5313C11.9777 13.6164 11.9776 13.7118 11.9776 13.9026M16.7328 5.20832L12 7.83763M12 7.83763L7.26727 5.20832M12 7.83763L12 13.1272M21.7215 13.533L16.9888 16.1623M16.9888 16.1623L12.256 13.533M16.9888 16.1623L16.9888 21.4519M17.0112 10.0974V5.57786C17.0112 5.38708 17.0112 5.29169 16.9831 5.20661C16.9582 5.13135 16.9176 5.06226 16.8638 5.00397C16.8031 4.93808 16.7197 4.89175 16.553 4.7991L12.4327 2.51006C12.2748 2.42233 12.1958 2.37847 12.1122 2.36127C12.0382 2.34605 11.9619 2.34605 11.8879 2.36127C11.8043 2.37847 11.7253 2.42233 11.5674 2.51006L7.44712 4.7991C7.28034 4.89175 7.19696 4.93808 7.13624 5.00397C7.08252 5.06226 7.04187 5.13135 7.017 5.20661C6.98889 5.29169 6.98889 5.38708 6.98889 5.57786V10.0974C6.98889 10.2882 6.98889 10.3836 7.017 10.4687C7.04187 10.5439 7.08252 10.613 7.13624 10.6713C7.19696 10.7372 7.28034 10.7835 7.44712 10.8762L11.5674 13.1652C11.7253 13.253 11.8043 13.2968 11.8879 13.314C11.9619 13.3292 12.0382 13.3292 12.1122 13.314C12.1958 13.2968 12.2748 13.253 12.4327 13.1652L16.553 10.8762C16.7197 10.7835 16.8031 10.7372 16.8638 10.6713C16.9176 10.613 16.9582 10.5439 16.9831 10.4687C17.0112 10.3836 17.0112 10.2882 17.0112 10.0974Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,4 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28009C22.1592 5.28009 28.4649 11.5864 28.4649 19.3646C28.4649 27.1428 22.1592 33.4491 14.3817 33.4491C6.60065 33.4526 0.294922 27.1428 0.294922 19.3646C0.294922 11.5864 6.60065 5.28009 14.3817 5.28009Z" fill="#E0F2FE"/>
<path d="M18.059 25.043H10.414C9.9746 25.043 9.56654 24.8721 9.25613 24.5617C8.94573 24.2513 8.77832 23.8397 8.77832 23.4037V15.7615C8.77832 15.3255 8.94922 14.9139 9.25962 14.6035C9.57002 14.293 9.98157 14.1221 10.4175 14.1221H14.24C14.54 14.1221 14.7876 14.3663 14.7876 14.6697C14.7876 14.9732 14.5435 15.2174 14.24 15.2174H10.4175C10.271 15.2174 10.135 15.2732 10.0304 15.3778C9.92577 15.4824 9.86996 15.6185 9.86996 15.765V23.4072C9.86996 23.5537 9.92577 23.6897 10.0304 23.7943C10.135 23.899 10.271 23.9548 10.4175 23.9548H18.059C18.2055 23.9548 18.3415 23.899 18.4462 23.7943C18.5508 23.6897 18.6066 23.5537 18.6066 23.4072V19.5843C18.6066 19.2844 18.8507 19.0367 19.1542 19.0367C19.4576 19.0367 19.7017 19.2809 19.7017 19.5843V23.4072C19.7017 23.8432 19.5308 24.2547 19.2204 24.5652C18.91 24.8756 18.4985 25.0465 18.0625 25.0465L18.059 25.043ZM12.6008 21.7678C12.4578 21.7678 12.3183 21.712 12.2137 21.6074C12.0777 21.4713 12.0254 21.276 12.0707 21.0876L12.6148 18.9042C12.6392 18.8065 12.688 18.7193 12.7578 18.6495L17.9439 13.4629C18.5892 12.8176 19.7087 12.8176 20.3539 13.4629C20.6748 13.7838 20.8527 14.2128 20.8527 14.6663C20.8527 15.1197 20.6748 15.5487 20.3539 15.8696L15.1678 21.0563C15.098 21.126 15.0108 21.1748 14.9132 21.1993L12.7299 21.7469C12.6845 21.7573 12.6427 21.7643 12.5973 21.7643L12.6008 21.7678ZM13.6401 19.3157L13.3507 20.4703L14.5051 20.1808L19.5832 15.1023C19.6983 14.9872 19.761 14.8337 19.761 14.6697C19.761 14.5058 19.6983 14.3523 19.5832 14.2372C19.353 14.007 18.9484 14.007 18.7182 14.2372L13.6401 19.3157Z" fill="#0086C9"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4 18V17.8C4 16.1198 4 15.2798 4.32698 14.638C4.6146 14.0735 5.07354 13.6146 5.63803 13.327C6.27976 13 7.11984 13 8.8 13H15.2C16.8802 13 17.7202 13 18.362 13.327C18.9265 13.6146 19.3854 14.0735 19.673 14.638C20 15.2798 20 16.1198 20 17.8V18M4 18C2.89543 18 2 18.8954 2 20C2 21.1046 2.89543 22 4 22C5.10457 22 6 21.1046 6 20C6 18.8954 5.10457 18 4 18ZM20 18C18.8954 18 18 18.8954 18 20C18 21.1046 18.8954 22 20 22C21.1046 22 22 21.1046 22 20C22 18.8954 21.1046 18 20 18ZM12 18C10.8954 18 10 18.8954 10 20C10 21.1046 10.8954 22 12 22C13.1046 22 14 21.1046 14 20C14 18.8954 13.1046 18 12 18ZM12 18V8M6 8H18C18.9319 8 19.3978 8 19.7654 7.84776C20.2554 7.64477 20.6448 7.25542 20.8478 6.76537C21 6.39783 21 5.93188 21 5C21 4.06812 21 3.60218 20.8478 3.23463C20.6448 2.74458 20.2554 2.35523 19.7654 2.15224C19.3978 2 18.9319 2 18 2H6C5.06812 2 4.60218 2 4.23463 2.15224C3.74458 2.35523 3.35523 2.74458 3.15224 3.23463C3 3.60218 3 4.06812 3 5C3 5.93188 3 6.39783 3.15224 6.76537C3.35523 7.25542 3.74458 7.64477 4.23463 7.84776C4.60218 8 5.06812 8 6 8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,11 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28003C22.1592 5.28003 28.4649 11.5865 28.4649 19.365C28.4649 27.1435 22.1592 33.45 14.3817 33.45C6.60065 33.4535 0.294922 27.1435 0.294922 19.365C0.294922 11.5865 6.60065 5.28003 14.3817 5.28003Z" fill="#E0F2FE"/>
<g clip-path="url(#clip0_9538_418898)">
<path d="M18.1297 18.2509H17.3422C17.1084 17.3452 16.6252 16.5233 15.9476 15.8786C15.27 15.2339 14.4252 14.7921 13.509 14.6035C12.5929 14.415 11.6423 14.4871 10.7651 14.8118C9.88797 15.1366 9.11948 15.7008 8.54699 16.4405C7.9745 17.1801 7.62095 18.0655 7.52652 18.9961C7.4321 19.9266 7.60058 20.865 8.01282 21.7046C8.42506 22.5442 9.06453 23.2513 9.85857 23.7456C10.6526 24.2399 11.5694 24.5016 12.5047 24.5009H18.1297C18.9585 24.5009 19.7534 24.1716 20.3394 23.5856C20.9255 22.9995 21.2547 22.2047 21.2547 21.3759C21.2547 20.5471 20.9255 19.7522 20.3394 19.1661C19.7534 18.5801 18.9585 18.2509 18.1297 18.2509Z" stroke="#0086C9" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_9538_418898">
<rect width="15" height="15" fill="white" transform="translate(6.87988 12.0009)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M66.6667 33.3333L87.5 12.5M87.5 12.5H66.6667M87.5 12.5V33.3333M33.3333 33.3333L12.5 12.5M12.5 12.5L12.5 33.3333M12.5 12.5L33.3333 12.5M33.3333 66.6667L12.5 87.5M12.5 87.5H33.3333M12.5 87.5L12.5 66.6667M66.6667 66.6667L87.5 87.5M87.5 87.5V66.6667M87.5 87.5H66.6667" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 472 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-book"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg><svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M58.3333 9.45654V26.6671C58.3333 29.0007 58.3333 30.1675 58.7875 31.0588C59.1869 31.8428 59.8244 32.4802 60.6084 32.8797C61.4997 33.3338 62.6665 33.3338 65 33.3338H82.2106M58.3333 72.9168L68.75 62.5002L58.3333 52.0835M41.6667 52.0835L31.25 62.5002L41.6667 72.9168M83.3333 41.6178V71.6668C83.3333 78.6675 83.3333 82.1678 81.9709 84.8417C80.7725 87.1937 78.8602 89.106 76.5082 90.3044C73.8343 91.6668 70.334 91.6668 63.3333 91.6668H36.6667C29.666 91.6668 26.1657 91.6668 23.4918 90.3044C21.1398 89.106 19.2275 87.1937 18.0291 84.8417C16.6667 82.1678 16.6667 78.6675 16.6667 71.6668V28.3335C16.6667 21.3328 16.6667 17.8325 18.0291 15.1586C19.2275 12.8066 21.1398 10.8943 23.4918 9.69591C26.1657 8.3335 29.666 8.3335 36.6667 8.3335H50.0491C53.1064 8.3335 54.6351 8.3335 56.0737 8.67887C57.3492 8.98508 58.5685 9.49014 59.6869 10.1755C60.9484 10.9485 62.0293 12.0295 64.1912 14.1914L77.4755 27.4756C79.6374 29.6375 80.7183 30.7185 81.4913 31.9799C82.1767 33.0983 82.6818 34.3176 82.988 35.5931C83.3333 37.0317 83.3333 38.5604 83.3333 41.6178Z" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M58.3333 9.45654V26.6671C58.3333 29.0007 58.3333 30.1675 58.7875 31.0588C59.1869 31.8428 59.8244 32.4802 60.6084 32.8797C61.4997 33.3338 62.6664 33.3338 65 33.3338H82.2106M37.5 66.6668L45.8333 75.0002L64.5833 56.2502M58.3333 8.3335H36.6667C29.666 8.3335 26.1657 8.3335 23.4918 9.69591C21.1397 10.8943 19.2275 12.8066 18.0291 15.1586C16.6667 17.8325 16.6667 21.3328 16.6667 28.3335V71.6668C16.6667 78.6675 16.6667 82.1678 18.0291 84.8417C19.2275 87.1937 21.1397 89.106 23.4918 90.3044C26.1657 91.6668 29.666 91.6668 36.6667 91.6668H63.3333C70.334 91.6668 73.8343 91.6668 76.5082 90.3044C78.8602 89.106 80.7725 87.1937 81.9709 84.8417C83.3333 82.1678 83.3333 78.6675 83.3333 71.6668V33.3335L58.3333 8.3335Z" stroke="currentColor" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 913 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-book"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>

Before

Width:  |  Height:  |  Size: 349 B

View File

@ -1,5 +0,0 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M43.542 76.0248C47.5986 74.1886 52.6393 74.1886 56.6959 76.0248M39.6892 69.9387C44.8263 73.9617 44.8263 80.4844 39.6892 84.5075C34.5521 88.5305 26.2232 88.5305 21.0861 84.5075C15.9491 80.4844 15.9491 73.9618 21.0861 69.9387C26.2232 65.9156 34.5521 65.9156 39.6892 69.9387ZM79.1522 69.9387C84.2892 73.9617 84.2892 80.4844 79.1522 84.5075C74.0151 88.5305 65.6862 88.5305 60.5491 84.5075C55.412 80.4844 55.412 73.9618 60.5491 69.9387C65.6862 65.9156 74.0151 65.9156 79.1522 69.9387Z" stroke="black" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M28.7138 40.7474C15.866 42.0672 8.27072 45.0645 8.27072 47.9823C8.27072 52.2584 26.9536 55.7248 50 55.7248C73.0465 55.7248 91.7294 52.2584 91.7294 47.9823C91.7294 45.4722 85.0332 42.5759 75.0544 41.1611" stroke="black" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M28.8541 40.2396L37.3725 14.6046L45.8429 20.592C45.8429 20.592 51.7915 18.0993 55.1599 16.6418C59.9267 14.5791 66.8807 12.4751 66.8807 12.4751L70.8711 26.3574L74.8616 40.2396" stroke="black" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M15.5 11.5H14.5L13 14.5L11 8.5L9.5 11.5H8.5M11.9932 5.13581C9.9938 2.7984 6.65975 2.16964 4.15469 4.31001C1.64964 6.45038 1.29697 10.029 3.2642 12.5604C4.75009 14.4724 8.97129 18.311 10.948 20.0749C11.3114 20.3991 11.4931 20.5613 11.7058 20.6251C11.8905 20.6805 12.0958 20.6805 12.2805 20.6251C12.4932 20.5613 12.6749 20.3991 13.0383 20.0749C15.015 18.311 19.2362 14.4724 20.7221 12.5604C22.6893 10.029 22.3797 6.42787 19.8316 4.31001C17.2835 2.19216 13.9925 2.7984 11.9932 5.13581Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 687 B

View File

@ -1,11 +0,0 @@
<svg width="37" height="40" viewBox="0 0 37 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.8817 5.28003C22.6592 5.28003 28.9649 11.5865 28.9649 19.365C28.9649 27.1435 22.6592 33.45 14.8817 33.45C7.10065 33.4535 0.794922 27.1435 0.794922 19.365C0.794922 11.5865 7.10065 5.28003 14.8817 5.28003Z" fill="#E0F2FE"/>
<g clip-path="url(#clip0_9540_418847)">
<path d="M17.3803 22.0008L14.8803 19.5008M14.8803 19.5008L12.3803 22.0008M14.8803 19.5008V25.1258M20.124 23.4946C20.7336 23.1623 21.2152 22.6364 21.4927 22C21.7702 21.3636 21.8279 20.6529 21.6567 19.98C21.4854 19.3072 21.095 18.7105 20.547 18.2842C19.9989 17.858 19.3246 17.6263 18.6303 17.6258H17.8428C17.6536 16.8941 17.301 16.2148 16.8115 15.639C16.322 15.0631 15.7083 14.6058 15.0166 14.3012C14.3249 13.9967 13.5731 13.8529 12.8179 13.8808C12.0626 13.9086 11.3235 14.1073 10.656 14.4619C9.98859 14.8165 9.41023 15.3178 8.96442 15.9281C8.51862 16.5384 8.21697 17.2418 8.08215 17.9855C7.94733 18.7291 7.98285 19.4937 8.18604 20.2216C8.38924 20.9496 8.75481 21.622 9.25529 22.1883" stroke="#0086C9" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_9540_418847">
<rect width="15" height="15" fill="white" transform="translate(7.37988 12.0009)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 16.5918V7.7918C21 6.67169 21 6.11164 20.782 5.68382C20.5903 5.30749 20.2843 5.00153 19.908 4.80978C19.4802 4.5918 18.9201 4.5918 17.8 4.5918H6.2C5.07989 4.5918 4.51984 4.5918 4.09202 4.80978C3.71569 5.00153 3.40973 5.30749 3.21799 5.68382C3 6.11164 3 6.67169 3 7.7918V16.5918M4.66667 20.5918H19.3333C19.9533 20.5918 20.2633 20.5918 20.5176 20.5236C21.2078 20.3387 21.7469 19.7996 21.9319 19.1094C22 18.8551 22 18.5451 22 17.9251C22 17.6151 22 17.4601 21.9659 17.333C21.8735 16.9879 21.6039 16.7183 21.2588 16.6259C21.1317 16.5918 20.9767 16.5918 20.6667 16.5918H3.33333C3.02334 16.5918 2.86835 16.5918 2.74118 16.6259C2.39609 16.7183 2.12654 16.9879 2.03407 17.333C2 17.4601 2 17.6151 2 17.9251C2 18.5451 2 18.8551 2.06815 19.1094C2.25308 19.7996 2.79218 20.3387 3.48236 20.5236C3.73669 20.5918 4.04669 20.5918 4.66667 20.5918Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

3
app/assets/ico/linux.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -1,3 +0,0 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M54.1668 58.3335L41.6668 45.8335M62.5432 14.5835V8.3335M78.9571 21.0862L83.3766 16.6668M78.9571 54.1668L83.3766 58.5862M45.8766 21.0862L41.4572 16.6668M85.4599 37.5002H91.7099M25.5475 86.9528L64.0361 48.4642C65.6861 46.8141 66.5112 45.9891 66.8203 45.0377C67.0922 44.2009 67.0922 43.2994 66.8203 42.4626C66.5112 41.5112 65.6861 40.6862 64.0361 39.0361L60.9641 35.9642C59.3141 34.3141 58.489 33.4891 57.5377 33.18C56.7008 32.9081 55.7994 32.9081 54.9625 33.18C54.0112 33.4891 53.1861 34.3141 51.5361 35.9642L13.0475 74.4528C11.3974 76.1029 10.5724 76.9279 10.2633 77.8793C9.99135 78.7161 9.99135 79.6176 10.2633 80.4544C10.5724 81.4058 11.3974 82.2308 13.0475 83.8809L16.1194 86.9528C17.7695 88.6029 18.5945 89.4279 19.5459 89.737C20.3827 90.0089 21.2842 90.0089 22.121 89.737C23.0724 89.4279 23.8974 88.6028 25.5475 86.9528Z" stroke="black" stroke-width="8.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M13.0001 14L10.0001 11M15.0104 3.5V2M18.9498 5.06066L20.0104 4M18.9498 13L20.0104 14.0607M11.0104 5.06066L9.94979 4M20.5104 9H22.0104M6.13146 20.8686L15.3687 11.6314C15.7647 11.2354 15.9627 11.0373 16.0369 10.809C16.1022 10.6082 16.1022 10.3918 16.0369 10.191C15.9627 9.96265 15.7647 9.76465 15.3687 9.36863L14.6315 8.63137C14.2354 8.23535 14.0374 8.03735 13.8091 7.96316C13.6083 7.8979 13.3919 7.8979 13.1911 7.96316C12.9627 8.03735 12.7647 8.23535 12.3687 8.63137L3.13146 17.8686C2.73545 18.2646 2.53744 18.4627 2.46325 18.691C2.39799 18.8918 2.39799 19.1082 2.46325 19.309C2.53744 19.5373 2.73545 19.7354 3.13146 20.1314L3.86872 20.8686C4.26474 21.2646 4.46275 21.4627 4.69108 21.5368C4.89192 21.6021 5.10827 21.6021 5.30911 21.5368C5.53744 21.4627 5.73545 21.2646 6.13146 20.8686Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 989 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2 12C2 17.5228 6.47715 22 12 22C13.6569 22 15 20.6569 15 19V18.5C15 18.0356 15 17.8034 15.0257 17.6084C15.2029 16.2622 16.2622 15.2029 17.6084 15.0257C17.8034 15 18.0356 15 18.5 15H19C20.6569 15 22 13.6569 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M7 13C7.55229 13 8 12.5523 8 12C8 11.4477 7.55229 11 7 11C6.44772 11 6 11.4477 6 12C6 12.5523 6.44772 13 7 13Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 9C16.5523 9 17 8.55229 17 8C17 7.44772 16.5523 7 16 7C15.4477 7 15 7.44772 15 8C15 8.55229 15.4477 9 16 9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 8C10.5523 8 11 7.55229 11 7C11 6.44772 10.5523 6 10 6C9.44772 6 9 6.44772 9 7C9 7.55229 9.44772 8 10 8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,5 +1,5 @@
<svg width="752pt" height="752pt" version="1.1" viewBox="0 0 752 752" xmlns="http://www.w3.org/2000/svg">
<path d="m552.21 372.31c-1.1094-1.8477-2.5859-2.957-4.4336-3.3242l-36.203-9.2344c-4.0625-1.1094-8.1289 1.4766-8.8672 5.543l-8.1289 32.879-31.395-7.7617-1.4766-0.37109c-1.8477-0.37109-4.0625 0-5.543 0.73828-1.8477 1.1094-2.957 2.5859-3.3242 4.4336l-8.1289 32.879-32.879-8.1289c-4.0625-1.1094-8.1289 1.4766-8.8672 5.543l-8.8633 32.508-32.879-8.1289c-1.8477-0.37109-4.0625 0-5.543 0.73828-1.8477 1.1094-2.957 2.5859-3.3242 4.4336l-0.73828 2.957-8.4961 34.723c-1.1094 4.0625 1.4766 8.1289 5.543 8.8672l143.33 35.832c1.8477 0.37109 3.3242 0.73828 5.1719 0.73828 9.2344 0 17.73-6.2812 19.949-15.516l36.203-144.81c0.36719-1.8477-0.003906-3.6914-1.1094-5.5391zm-137.05 63.535 32.137 8.1289c1.8477 0.73828 4.4336 0.37109 6.2812-0.73828s3.3242-3.3242 3.3242-5.543l6.2812-25.488 20.688 27.336-10.344 41.375-65.754-16.625zm87.547 83.117c-0.73828 3.3242-4.0625 5.1719-7.0195 4.4336l-136.31-33.984 5.1719-20.316 113.04 28.445c0.37109 0 1.1094 0.37109 1.4766 0.37109h0.37109c0.37109 0 0.73828 0 1.4766-0.37109h0.37109c0.73828 0 1.1094-0.37109 1.4766-0.73828 1.8477-1.1094 2.957-2.5859 3.3242-4.4336l12.93-52.086c0.37109-2.2148 0-4.4336-1.1094-6.2812l-18.102-23.641 17.73 4.4336c4.0625 1.1094 8.1289-1.4766 8.8672-5.543l8.1289-32.879 22.164 5.543z" fill="currentColor" stroke="currentColor"/>
<path d="m351.62 434.37c4.0625 0 7.3867-3.3242 7.3867-7.3867v-33.984h33.617c4.0625 0 7.3867-3.3242 7.3867-7.3867v-33.617h33.617c4.0625 0 7.3867-3.3242 7.3867-7.3867v-33.984h30.293c4.0625 0 7.3867-3.3242 7.3867-7.3867v-65.391c0-11.453-9.2344-20.688-20.688-20.688h-235.31c-11.453 0-20.688 9.2344-20.688 20.688v215c0 11.453 9.2344 20.688 20.688 20.688h87.551c4.0625 0 7.3867-3.3242 7.3867-7.3867v-31.398zm33.617-56.148h-33.617c-4.0625 0-7.3867 3.3242-7.3867 7.3867v33.984h-91.242v-22.535l28.812-21.797 25.121 14.406c2.957 1.4766 6.2812 1.1094 8.8672-1.1094l55.043-53.195 14.406 11.453zm-82.379 80.16h-80.164c-3.3242 0-5.9102-2.5859-5.9102-5.9102v-214.62c0-3.3242 2.5859-5.9102 5.9102-5.9102h235.31c3.3242 0 5.9102 2.5859 5.9102 5.9102v58.367h-29.922c-4.0625 0-7.3867 3.3242-7.3867 7.3867v33.984h-29.551l-21.797-17.363c-2.957-2.2148-7.0195-2.2148-9.6055 0.37109l-56.148 53.566-24.383-14.039c-2.5859-1.4766-5.9102-1.4766-8.1289 0.37109l-35.832 26.965c-1.8477 1.4766-2.957 3.6953-2.957 5.9102v33.988c0 1.8477 0.73828 3.6953 2.2148 5.1719 1.4766 1.4766 3.3242 2.2148 5.1719 2.2148h57.258z" fill="currentColor" stroke="currentColor"/>
<path d="m277 329.09c18.469 0 33.246-15.145 33.246-33.246 0-18.469-15.145-33.246-33.246-33.246-18.469 0-33.246 15.145-33.246 33.246-0.37109 18.102 14.777 33.246 33.246 33.246zm0-52.086c10.344 0 18.469 8.4961 18.469 18.469 0 10.344-8.4961 18.469-18.469 18.469-10.344 0-18.469-8.4961-18.469-18.469-0.37109-10.34 8.125-18.469 18.469-18.469z" fill="currentColor" stroke="currentColor"/>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M23.4187 11.6494C23.3461 11.5285 23.2495 11.4559 23.1286 11.4319L20.7593 10.8275C20.4934 10.7549 20.2273 10.9242 20.179 11.1903L19.647 13.342L17.5924 12.8341L17.4958 12.8098C17.3748 12.7855 17.2299 12.8098 17.133 12.8581C17.0121 12.9307 16.9395 13.0273 16.9155 13.1483L16.3835 15.3L14.2317 14.768C13.9659 14.6954 13.6998 14.8646 13.6514 15.1308L13.0714 17.2582L10.9197 16.7262C10.7987 16.7019 10.6538 16.7262 10.5569 16.7745C10.436 16.8471 10.3634 16.9438 10.3393 17.0647L10.291 17.2582L9.73501 19.5306C9.66241 19.7965 9.83165 20.0626 10.0978 20.1109L19.4779 22.4559C19.5988 22.4802 19.6954 22.5042 19.8163 22.5042C20.4207 22.5042 20.9766 22.0932 21.1219 21.4888L23.4911 12.0119C23.5152 11.8909 23.4909 11.7703 23.4185 11.6494L23.4187 11.6494ZM14.4496 15.8074L16.5528 16.3394C16.6737 16.3877 16.843 16.3637 16.9639 16.2911C17.0848 16.2185 17.1814 16.0735 17.1814 15.9283L17.5925 14.2603L18.9464 16.0493L18.2694 18.757L13.9662 17.669L14.4496 15.8074ZM20.1791 21.2469C20.1307 21.4645 19.9132 21.5854 19.7197 21.5371L10.799 19.313L11.1375 17.9835L18.5353 19.845C18.5595 19.845 18.6079 19.8693 18.6319 19.8693H18.6562C18.6805 19.8693 18.7045 19.8693 18.7528 19.845H18.7771C18.8254 19.845 18.8497 19.8207 18.8737 19.7967C18.9947 19.7241 19.0673 19.6275 19.0913 19.5065L19.9375 16.0978C19.9618 15.9529 19.9375 15.8077 19.8649 15.6868L18.6802 14.1396L19.8405 14.4298C20.1064 14.5024 20.3725 14.3331 20.4208 14.067L20.9528 11.9153L22.4033 12.278L20.1791 21.2469Z" fill="currentColor" stroke="currentColor" stroke-width="0.3" />
<path d="M10.2912 15.7109C10.5571 15.7109 10.7746 15.4933 10.7746 15.2275V13.0034H12.9747C13.2405 13.0034 13.4581 12.7859 13.4581 12.52V10.32H15.6581C15.924 10.32 16.1415 10.1024 16.1415 9.83654V7.6125H18.124C18.3899 7.6125 18.6074 7.39495 18.6074 7.12908V2.84963C18.6074 2.1001 18.0031 1.49573 17.2535 1.49573H1.85391C1.10438 1.49573 0.5 2.10006 0.5 2.84963V16.9201C0.5 17.6696 1.10434 18.274 1.85391 18.274H7.58359C7.84946 18.274 8.06701 18.0564 8.06701 17.7906V15.7358L10.2912 15.7109ZM12.4912 12.0363H10.2912C10.0254 12.0363 9.8078 12.2539 9.8078 12.5197V14.7438H3.83656V13.269L5.72214 11.8425L7.36615 12.7853C7.55967 12.8819 7.77722 12.8579 7.94646 12.7127L11.5487 9.23141L12.4915 9.98094L12.4912 12.0363ZM7.10004 17.2823H1.85379C1.63624 17.2823 1.467 17.1131 1.467 16.8955V2.84993C1.467 2.63239 1.63623 2.46315 1.85379 2.46315H17.2534C17.471 2.46315 17.6402 2.63238 17.6402 2.84993V6.6697H15.682C15.4161 6.6697 15.1986 6.88725 15.1986 7.15312V9.37717H13.2646L11.8381 8.24086C11.6446 8.09592 11.3788 8.09592 11.2095 8.26515L7.53498 11.7707L5.93926 10.852C5.77003 10.7553 5.55247 10.7553 5.40727 10.8762L3.06228 12.6409C2.94136 12.7376 2.86876 12.8828 2.86876 13.0277V15.252C2.86876 15.373 2.91708 15.4939 3.01371 15.5905C3.11034 15.6871 3.23126 15.7354 3.35218 15.7354H7.09937L7.10004 17.2823Z" fill="currentColor" stroke="currentColor" stroke-width="0.3" />
<path d="M5.40775 8.82098C6.61644 8.82098 7.58351 7.82983 7.58351 6.64523C7.58351 5.43655 6.59236 4.46948 5.40775 4.46948C4.19907 4.46948 3.232 5.46063 3.232 6.64523C3.20772 7.8299 4.19907 8.82098 5.40775 8.82098ZM5.40775 5.41227C6.08471 5.41227 6.61644 5.96829 6.61644 6.62095C6.61644 7.29791 6.06042 7.82964 5.40775 7.82964C4.7308 7.82964 4.19907 7.27362 4.19907 6.62095C4.17478 5.94426 4.7308 5.41227 5.40775 5.41227Z" fill="currentColor" stroke="currentColor" stroke-width="0.3" />
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16 5.44336V4.64336C16 3.52325 16 2.9632 15.782 2.53538C15.5903 2.15905 15.2843 1.85309 14.908 1.66135C14.4802 1.44336 13.9201 1.44336 12.8 1.44336H11.2C10.0799 1.44336 9.51984 1.44336 9.09202 1.66135C8.71569 1.85309 8.40973 2.15905 8.21799 2.53538C8 2.9632 8 3.52325 8 4.64336V5.44336M3 5.44336H21M19 5.44336V16.6434C19 18.3235 19 19.1636 18.673 19.8053C18.3854 20.3698 17.9265 20.8288 17.362 21.1164C16.7202 21.4434 15.8802 21.4434 14.2 21.4434H9.8C8.11984 21.4434 7.27976 21.4434 6.63803 21.1164C6.07354 20.8288 5.6146 20.3698 5.32698 19.8053C5 19.1636 5 18.3235 5 16.6434V5.44336M12 16.5053L12 10.5053M12 10.5053L15 13.5053M12 10.5053L9 13.5053" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 853 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.9996 10.9999L3.49964 20.4999M14.0181 3.53837C15.2361 4.34658 16.4068 5.29941 17.5008 6.3934C18.6042 7.49683 19.564 8.67831 20.3767 9.90766M9.2546 7.89605L6.37973 6.93776C6.04865 6.8274 5.68398 6.89763 5.41756 7.12306L2.56041 9.54065C1.97548 10.0356 2.14166 10.9775 2.86064 11.2424L5.56784 12.2398M11.6807 18.3524L12.6781 21.0596C12.943 21.7786 13.8849 21.9448 14.3798 21.3599L16.7974 18.5027C17.0228 18.2363 17.0931 17.8716 16.9827 17.5405L16.0244 14.6657M19.3482 2.27063L14.4418 3.08838C13.9119 3.17668 13.426 3.43709 13.0591 3.82932L6.446 10.8985C4.73185 12.7308 4.77952 15.5924 6.55378 17.3667C8.32803 19.1409 11.1896 19.1886 13.022 17.4744L20.0911 10.8614C20.4834 10.4944 20.7438 10.0085 20.8321 9.47869L21.6498 4.57222C21.8754 3.21858 20.7019 2.04503 19.3482 2.27063Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 981 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M20.7914 12.6075C21.0355 12.3982 21.1575 12.2936 21.2023 12.1691C21.2415 12.0598 21.2415 11.9403 21.2023 11.831C21.1575 11.7065 21.0355 11.6019 20.7914 11.3926L12.3206 4.13202C11.9004 3.77182 11.6903 3.59172 11.5124 3.58731C11.3578 3.58348 11.2101 3.6514 11.1124 3.77128C11 3.90921 11 4.18595 11 4.73942V9.03468C8.86532 9.40813 6.91159 10.4898 5.45971 12.1139C3.87683 13.8846 3.00123 16.176 3 18.551V19.163C4.04934 17.8989 5.35951 16.8766 6.84076 16.166C8.1467 15.5395 9.55842 15.1684 11 15.0706V19.2607C11 19.8141 11 20.0909 11.1124 20.2288C11.2101 20.3487 11.3578 20.4166 11.5124 20.4128C11.6903 20.4084 11.9004 20.2283 12.3206 19.8681L20.7914 12.6075Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 859 B

View File

@ -1,4 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28003C22.1592 5.28003 28.4649 11.5865 28.4649 19.365C28.4649 27.1435 22.1592 33.45 14.3817 33.45C6.60065 33.4535 0.294922 27.1435 0.294922 19.365C0.294922 11.5865 6.60065 5.28003 14.3817 5.28003Z" fill="#E0F2FE"/>
<path d="M14.3797 23.5025C16.98 23.5025 19.0879 21.3946 19.0879 18.7943L19.0879 16.3519L16.7331 16.3519M14.3797 23.5025C11.7795 23.5025 9.67156 21.3946 9.67156 18.7943L9.67156 16.3519L16.7331 16.3519M14.3797 23.5025C14.3797 24.9593 14.3797 26.5726 16.7331 26.5726L17.7794 26.5726M16.7331 16.3519L16.7331 13.4274M12.0216 16.3519L12.0216 13.4274" stroke="#0086C9" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 768 B

View File

@ -0,0 +1,3 @@
<svg width="22" height="20" viewBox="0 0 22 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.8641 8.08333H1.69743M10.3224 16.7083L17.7974 16.7083C18.8709 16.7083 19.4076 16.7083 19.8176 16.4994C20.1782 16.3157 20.4714 16.0225 20.6552 15.6618C20.8641 15.2518 20.8641 14.7151 20.8641 13.6417V6.35833C20.8641 5.2849 20.8641 4.74818 20.6552 4.33819C20.4714 3.97754 20.1782 3.68433 19.8176 3.50057C19.4076 3.29167 18.8709 3.29167 17.7974 3.29167H16.0724M10.3224 16.7083L12.2391 18.625M10.3224 16.7083L12.2391 14.7917M6.48909 16.7083H4.76409C3.69066 16.7083 3.15394 16.7083 2.74394 16.4994C2.3833 16.3157 2.09009 16.0225 1.90633 15.6618C1.69743 15.2518 1.69743 14.7151 1.69743 13.6417V6.35833C1.69743 5.2849 1.69743 4.74818 1.90633 4.33818C2.09009 3.97754 2.3833 3.68433 2.74394 3.50057C3.15394 3.29167 3.69066 3.29167 4.76409 3.29167H12.2391M12.2391 3.29167L10.3224 5.20833M12.2391 3.29167L10.3224 1.375" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
</svg>

After

Width:  |  Height:  |  Size: 1016 B

View File

@ -1,3 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.7453 16C18.5362 14.8661 19 13.4872 19 12C19 11.4851 18.9444 10.9832 18.8389 10.5M6.25469 16C5.46381 14.8662 5 13.4872 5 12C5 8.13401 8.13401 5 12 5C12.4221 5 12.8355 5.03737 13.2371 5.10897M16.4999 7.5L11.9999 12M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM13 12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12C11 11.4477 11.4477 11 12 11C12.5523 11 13 11.4477 13 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 656 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M8 8H8.01M2 5.2L2 9.67451C2 10.1637 2 10.4083 2.05526 10.6385C2.10425 10.8425 2.18506 11.0376 2.29472 11.2166C2.4184 11.4184 2.59135 11.5914 2.93726 11.9373L10.6059 19.6059C11.7939 20.7939 12.388 21.388 13.0729 21.6105C13.6755 21.8063 14.3245 21.8063 14.927 21.6105C15.612 21.388 16.2061 20.7939 17.3941 19.6059L19.6059 17.3941C20.7939 16.2061 21.388 15.612 21.6105 14.927C21.8063 14.3245 21.8063 13.6755 21.6105 13.0729C21.388 12.388 20.7939 11.7939 19.6059 10.6059L11.9373 2.93726C11.5914 2.59135 11.4184 2.4184 11.2166 2.29472C11.0376 2.18506 10.8425 2.10425 10.6385 2.05526C10.4083 2 10.1637 2 9.67451 2L5.2 2C4.0799 2 3.51984 2 3.09202 2.21799C2.7157 2.40973 2.40973 2.71569 2.21799 3.09202C2 3.51984 2 4.07989 2 5.2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 927 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 11L13.4059 3.40589C12.887 2.88703 12.6276 2.6276 12.3249 2.44208C12.0564 2.27759 11.7638 2.15638 11.4577 2.08289C11.1124 2 10.7455 2 10.0118 2L6 2M7.9282 9.85725H7.9382M3 8.7L3 10.6745C3 11.1637 3 11.4083 3.05526 11.6385C3.10425 11.8425 3.18506 12.0376 3.29472 12.2166C3.4184 12.4184 3.59136 12.5914 3.93726 12.9373L11.7373 20.7373C12.5293 21.5293 12.9253 21.9253 13.382 22.0737C13.7837 22.2042 14.2163 22.2042 14.618 22.0737C15.0747 21.9253 15.4707 21.5293 16.2627 20.7373L18.7373 18.2627C19.5293 17.4707 19.9253 17.0747 20.0737 16.618C20.2042 16.2163 20.2042 15.7837 20.0737 15.382C19.9253 14.9253 19.5293 14.5293 18.7373 13.7373L11.4373 6.43726C11.0914 6.09136 10.9184 5.9184 10.7166 5.79472C10.5376 5.68506 10.3425 5.60425 10.1385 5.55526C9.90829 5.5 9.6637 5.5 9.17452 5.5H6.2C5.07989 5.5 4.51984 5.5 4.09202 5.71799C3.7157 5.90973 3.40973 6.2157 3.21799 6.59202C3 7.01984 3 7.5799 3 8.7Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28009C22.1592 5.28009 28.4649 11.5864 28.4649 19.3646C28.4649 27.1428 22.1592 33.4491 14.3817 33.4491C6.60065 33.4526 0.294922 27.1428 0.294922 19.3646C0.294922 11.5864 6.60065 5.28009 14.3817 5.28009Z" fill="#E0F2FE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.3533 15.103C19.4222 14.6894 19.0636 14.3308 18.65 14.3997L16.5794 14.7448C17.02 15.0919 17.4471 15.4705 17.8568 15.8803C18.2726 16.296 18.6563 16.7296 19.0076 17.1771L19.3533 15.103ZM18.5628 18.5987C18.1171 17.947 17.5985 17.319 17.0083 16.7288C16.4237 16.1442 15.8021 15.6299 15.1571 15.1871L12.8847 17.6163C12.8799 17.6216 12.875 17.6269 12.87 17.632L11.1762 19.4426C10.4928 20.1731 10.397 21.2469 10.8789 22.0734L14.2825 18.6698C14.5168 18.4355 14.8967 18.4355 15.131 18.6698C15.3654 18.9041 15.3654 19.284 15.131 19.5184L11.7409 22.9085C12.5586 23.3509 13.5978 23.2434 14.3104 22.5767L16.1186 20.8852C16.1253 20.8786 16.1322 20.8722 16.1392 20.8659L18.5628 18.5987ZM17.2294 21.4893L19.4111 19.4484C19.7449 19.1361 19.9666 18.7225 20.0417 18.2715L20.5369 15.3003C20.7412 14.0745 19.6785 13.0117 18.4527 13.2161L15.4814 13.7113C15.0305 13.7864 14.6169 14.0081 14.3046 14.3419L12.2636 16.5236L10.8877 16.065C10.4885 15.9319 10.0489 16.0166 9.72772 16.2884L7.99751 17.7524C7.29234 18.3491 7.49268 19.4846 8.35946 19.8039L9.46051 20.2096C9.2529 21.1392 9.43813 22.1371 10.0118 22.9405L8.52958 24.4228C8.29527 24.6571 8.29527 25.037 8.52958 25.2713C8.7639 25.5056 9.1438 25.5056 9.37811 25.2713L10.8688 23.7806C11.6623 24.3233 12.6355 24.4952 13.5434 24.2925L13.949 25.3934C14.2684 26.2602 15.4039 26.4605 16.0006 25.7554L17.4646 24.0251C17.7364 23.704 17.8211 23.2643 17.688 22.8652L17.2294 21.4893ZM16.2652 22.3913L15.1302 23.4531C14.9793 23.5942 14.8189 23.7192 14.6511 23.8278L15.0751 24.9786C15.0755 24.9797 15.0759 24.9806 15.0762 24.9812C15.0769 24.9815 15.0779 24.9819 15.0793 24.9821M15.0826 24.9824C15.0831 24.9819 15.0837 24.9812 15.0845 24.9802L16.5486 23.25C16.5498 23.2485 16.5502 23.2465 16.5496 23.2447L16.2652 22.3913M9.92511 19.1019C10.0338 18.9341 10.1587 18.7737 10.2999 18.6228L11.3616 17.4878L10.5082 17.2034C10.5064 17.2028 10.5043 17.2032 10.5029 17.2044L8.77264 18.6684C8.77168 18.6693 8.77098 18.6699 8.77049 18.6704" fill="#0086C9"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6 6L10.5 10.5M6 6H3L2 3L3 2L6 3V6ZM19.259 2.74101L16.6314 5.36863C16.2354 5.76465 16.0373 5.96265 15.9632 6.19098C15.8979 6.39183 15.8979 6.60817 15.9632 6.80902C16.0373 7.03735 16.2354 7.23535 16.6314 7.63137L16.8686 7.86863C17.2646 8.26465 17.4627 8.46265 17.691 8.53684C17.8918 8.6021 18.1082 8.6021 18.309 8.53684C18.5373 8.46265 18.7354 8.26465 19.1314 7.86863L21.5893 5.41072C21.854 6.05488 22 6.76039 22 7.5C22 10.5376 19.5376 13 16.5 13C16.1338 13 15.7759 12.9642 15.4298 12.8959C14.9436 12.8001 14.7005 12.7521 14.5532 12.7668C14.3965 12.7824 14.3193 12.8059 14.1805 12.8802C14.0499 12.9501 13.919 13.081 13.657 13.343L6.5 20.5C5.67157 21.3284 4.32843 21.3284 3.5 20.5C2.67157 19.6716 2.67157 18.3284 3.5 17.5L10.657 10.343C10.919 10.081 11.0499 9.95005 11.1198 9.81949C11.1941 9.68068 11.2176 9.60347 11.2332 9.44681C11.2479 9.29945 11.1999 9.05638 11.1041 8.57024C11.0358 8.22406 11 7.86621 11 7.5C11 4.46243 13.4624 2 16.5 2C17.5055 2 18.448 2.26982 19.259 2.74101ZM12.0001 14.9999L17.5 20.4999C18.3284 21.3283 19.6716 21.3283 20.5 20.4999C21.3284 19.6715 21.3284 18.3283 20.5 17.4999L15.9753 12.9753C15.655 12.945 15.3427 12.8872 15.0408 12.8043C14.6517 12.6975 14.2249 12.7751 13.9397 13.0603L12.0001 14.9999Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-upload-cloud"><polyline points="16 16 12 12 8 16"></polyline><line x1="12" y1="12" x2="12" y2="21"></line><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"></path><polyline points="16 16 12 12 8 16"></polyline></svg>

Before

Width:  |  Height:  |  Size: 435 B

View File

@ -1,4 +0,0 @@
<svg width="37" height="40" viewBox="0 0 37 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.8817 5.28003C22.6592 5.28003 28.9649 11.5865 28.9649 19.365C28.9649 27.1435 22.6592 33.45 14.8817 33.45C7.10065 33.4535 0.794922 27.1435 0.794922 19.365C0.794922 11.5865 7.10065 5.28003 14.8817 5.28003Z" fill="#E0F2FE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7962 13.2812C13.6421 13.25 14.484 13.411 15.2587 13.7521C16.0335 14.0932 16.7208 14.6054 17.269 15.2504C17.7155 15.7756 18.0603 16.3778 18.2874 17.0259H18.6307C19.4583 17.0264 20.2625 17.3025 20.9157 17.8107C21.569 18.3188 22.0344 19.03 22.2385 19.8321C22.4427 20.6341 22.3739 21.4812 22.0431 22.2398C21.7123 22.9984 21.1382 23.6253 20.4116 24.0214C20.1207 24.18 19.7562 24.0728 19.5976 23.7818C19.439 23.4909 19.5463 23.1264 19.8372 22.9678C20.3298 22.6993 20.7189 22.2744 20.9431 21.7602C21.1674 21.246 21.214 20.6717 21.0756 20.128C20.9372 19.5844 20.6217 19.1023 20.1789 18.7579C19.7362 18.4134 19.1913 18.2262 18.6303 18.2259H17.8432C17.5696 18.2259 17.3307 18.0409 17.2623 17.7761C17.0958 17.1321 16.7855 16.5343 16.3547 16.0276C15.924 15.5209 15.3839 15.1184 14.7752 14.8504C14.1665 14.5824 13.505 14.4559 12.8403 14.4804C12.1757 14.5049 11.5253 14.6797 10.9379 14.9918C10.3506 15.3038 9.84163 15.745 9.44932 16.282C9.05701 16.8191 8.79156 17.4381 8.67291 18.0925C8.55427 18.7469 8.58553 19.4197 8.76434 20.0603C8.94315 20.7009 9.26486 21.2927 9.70528 21.7911C9.92471 22.0394 9.9013 22.4185 9.65299 22.638C9.40468 22.8574 9.02551 22.834 8.80608 22.5857C8.24555 21.9514 7.8361 21.1983 7.60853 20.383C7.38095 19.5677 7.34116 18.7114 7.49216 17.8785C7.64316 17.0456 7.98101 16.2577 8.48031 15.5742C8.97961 14.8907 9.62738 14.3292 10.3749 13.9321C11.1224 13.5349 11.9503 13.3124 12.7962 13.2812ZM14.4564 19.0766C14.6907 18.8423 15.0706 18.8423 15.3049 19.0766L17.8049 21.5766C18.0393 21.8109 18.0393 22.1908 17.8049 22.4251C17.5706 22.6594 17.1907 22.6594 16.9564 22.4251L15.4807 20.9494V25.1259C15.4807 25.4572 15.212 25.7259 14.8807 25.7259C14.5493 25.7259 14.2807 25.4572 14.2807 25.1259V20.9494L12.8049 22.4251C12.5706 22.6594 12.1907 22.6594 11.9564 22.4251C11.7221 22.1908 11.7221 21.8109 11.9564 21.5766L14.4564 19.0766Z" fill="#0086C9"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,4 +0,0 @@
<svg width="36" height="40" viewBox="0 0 36 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3817 5.28009C22.1592 5.28009 28.4649 11.5864 28.4649 19.3646C28.4649 27.1428 22.1592 33.4491 14.3817 33.4491C6.60065 33.4526 0.294922 27.1428 0.294922 19.3646C0.294922 11.5864 6.60065 5.28009 14.3817 5.28009Z" fill="#E0F2FE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.76176 18.7646H11.3097C11.4479 17.0118 12.0382 15.3298 13.0159 13.8805C10.7429 14.4441 9.01305 16.3839 8.76176 18.7646ZM14.3803 14.0432C13.3165 15.4037 12.6679 17.0435 12.5139 18.7646H16.2467C16.0926 17.0435 15.4441 15.4037 14.3803 14.0432ZM16.2467 19.9646C16.0926 21.6858 15.4441 23.3256 14.3803 24.6861C13.3165 23.3256 12.6679 21.6858 12.5139 19.9646H16.2467ZM11.3097 19.9646H8.76176C9.01305 22.3454 10.7429 24.2852 13.0159 24.8488C12.0382 23.3995 11.4479 21.7175 11.3097 19.9646ZM15.7446 24.8488C16.7223 23.3995 17.3127 21.7175 17.4509 19.9646H19.9988C19.7475 22.3454 18.0177 24.2852 15.7446 24.8488ZM19.9988 18.7646H17.4509C17.3127 17.0118 16.7223 15.3298 15.7446 13.8805C18.0177 14.4441 19.7475 16.3839 19.9988 18.7646ZM7.53027 19.3646C7.53027 15.5815 10.5971 12.5146 14.3803 12.5146C18.1634 12.5146 21.2303 15.5815 21.2303 19.3646C21.2303 23.1478 18.1634 26.2146 14.3803 26.2146C10.5971 26.2146 7.53027 23.1478 7.53027 19.3646Z" fill="#0086C9"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5.3163 19.4384C5.92462 18.0052 7.34492 17 9 17H15C16.6551 17 18.0754 18.0052 18.6837 19.4384M16 9.5C16 11.7091 14.2091 13.5 12 13.5C9.79086 13.5 8 11.7091 8 9.5C8 7.29086 9.79086 5.5 12 5.5C14.2091 5.5 16 7.29086 16 9.5ZM22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 539 B

View File

@ -1 +0,0 @@
<svg width="auto" height="auto" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M10.4501 18.2458C11.4236 17.8052 12.6334 17.8052 13.607 18.2458M6.89134 9.77925C3.80785 10.096 1.98499 10.8154 1.98499 11.5156C1.98499 12.5419 6.46887 13.3738 12 13.3738C17.5312 13.3738 22.0151 12.5419 22.0151 11.5156C22.0151 10.9132 20.408 10.2181 18.0131 9.87855M6.92499 9.65762L8.96939 3.50522L11.0023 4.9422C11.0023 4.9422 12.43 4.34395 13.2384 3.99414C14.3824 3.49911 16.0514 2.99414 16.0514 2.99414L17.0091 6.32588L17.9668 9.65762M9.52539 16.7852C10.7583 17.7507 10.7583 19.3162 9.52539 20.2817C8.29249 21.2472 6.29356 21.2472 5.06066 20.2817C3.82776 19.3162 3.82776 17.7507 5.06066 16.7852C6.29356 15.8197 8.29248 15.8197 9.52539 16.7852ZM18.9965 16.7852C20.2294 17.7507 20.2294 19.3162 18.9965 20.2817C17.7636 21.2472 15.7647 21.2472 14.5318 20.2817C13.2989 19.3162 13.2989 17.7507 14.5318 16.7852C15.7647 15.8197 17.7636 15.8197 18.9965 16.7852Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

9
app/assets/ico/vendor/docker-icon.svg vendored Normal file
View File

@ -0,0 +1,9 @@
<!--
This exists because it has 'fill:currentColor' unlike the other docker icon assets
and can directly replace fa-docker.
-->
<svg width="34" height="24" viewBox="0 0 34 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.0332 9.67619H22.2271ZM15.2309 9.67619H18.4249ZM11.5047 9.67619H14.6986ZM7.77848 9.67619H10.8963ZM3.9762 9.67619H7.17011ZM7.77848 6.17809H10.8963ZM11.5047 6.17809H14.6986ZM15.2309 6.17809H18.4249ZM15.2309 2.67999H18.4249Z" fill="currentColor" />
<path d="M19.0332 9.67619H22.2271M15.2309 9.67619H18.4249M11.5047 9.67619H14.6986M7.77848 9.67619H10.8963M3.9762 9.67619H7.17011M7.77848 6.17809H10.8963M11.5047 6.17809H14.6986M15.2309 6.17809H18.4249M15.2309 2.67999H18.4249" stroke="currentColor" stroke-width="2.887" />
<path d="M32.4172 9.82825C32.4172 9.82825 31.0484 8.53548 28.2347 8.99175C27.9305 6.78643 25.5731 5.49365 25.5731 5.49365C25.5731 5.49365 23.3678 8.15525 24.9647 11.121C24.5085 11.3492 23.748 11.6533 22.6073 11.6533H1.69477C1.31454 13.0982 1.31454 22.68 11.8088 22.68C19.3374 22.68 24.9647 19.1819 27.6263 12.794C31.5807 13.0982 32.4172 9.82825 32.4172 9.82825Z" fill="currentColor" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,10 @@
<!--
This exists because it has 'fill:currentColor' unlike the other microsoft icon asset
and can directly replace fa-microsoft.
-->
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0H11.406V11.406H0V0Z" fill="currentColor" />
<path d="M12.5984 0H24V11.406H12.5984V0Z" fill="currentColor" />
<path d="M0 12.594H11.406V24H0V12.594Z" fill="currentColor" />
<path d="M12.5984 12.594H24V24H12.5984V12.594Z" fill="currentColor" />
</svg>

After

Width:  |  Height:  |  Size: 500 B

6
app/assets/ico/vendor/nomad-icon.svg vendored Normal file
View File

@ -0,0 +1,6 @@
<!--
This exists because it has 'fill:currentColor' unlike the other nomad icon asset
-->
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.0046 0L1.74048 6V18L11.9954 24L22.2596 18V6L12.0046 0ZM16.5848 13.2046L13.8504 14.8031L10.5435 12.971V16.8L7.44277 18.7924V10.8L9.90689 9.27023L13.3237 11.0977V7.19084L16.5848 5.20763V13.2046Z" fill="currentColor" />
</svg>

After

Width:  |  Height:  |  Size: 425 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-zap"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>

Before

Width:  |  Height:  |  Size: 286 B

View File

@ -1,5 +1,5 @@
<rd-widget>
<rd-widget-header icon="svg-tachometer" title-text="Cluster information"></rd-widget-header>
<rd-widget-header icon="gauge" title-text="Cluster information"></rd-widget-header>
<rd-widget-body classes="!px-5 !py-0">
<table class="table">
<tbody>
@ -10,7 +10,7 @@
<tr>
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" feather="true" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
</div>
</td>
</tr>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -30,7 +30,7 @@
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="config-removeConfigButton"
>
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
<button
type="button"
@ -39,13 +39,13 @@
authorization="DockerConfigCreate"
data-cy="config-addConfigButton"
>
<pr-icon icon="'plus'" feather="true"></pr-icon>Add config
<pr-icon icon="'plus'"></pr-icon>Add config
</button>
</div>
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -66,7 +66,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>

View File

@ -1,6 +1,6 @@
<div class="datatable">
<rd-widget>
<rd-widget-header icon="{{ $ctrl.titleIcon }}" feather-icon="true" title-text="{{ $ctrl.titleText }}"></rd-widget-header>
<rd-widget-header icon="{{ $ctrl.titleIcon }}" title-text="{{ $ctrl.titleText }}"></rd-widget-header>
<rd-widget-body classes="no-padding">
<div class="actionBar">
<form class="form-horizontal">
@ -35,7 +35,8 @@
<th>
IP Address
<a ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()">
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</a>
</th>
<th>Gateway</th>
@ -51,7 +52,8 @@
>
<td>
<button class="btn btn-none" ng-if="$ctrl.itemCanExpand(value)" type="button">
<i ng-class="{ 'fas fa-angle-down': value.Expanded, 'fas fa-angle-right': !value.Expanded }" class="space-right" aria-hidden="true"></i>
<pr-icon ng-if="value.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
<pr-icon ng-if="!value.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
</button>
<a ui-sref="docker.networks.network({ id: key, nodeName: $ctrl.nodeName })">{{ key }}</a>
</td>
@ -66,7 +68,7 @@
button-spinner="$ctrl.leaveNetworkActionInProgress"
ng-click="$ctrl.leaveNetworkAction($ctrl.container, key)"
>
<span ng-if="!$ctrl.leaveNetworkActionInProgress" class="vertical-center !ml-0"> <pr-icon icon="'trash-2'" feather="true"></pr-icon> Leave network</span>
<span ng-if="!$ctrl.leaveNetworkActionInProgress" class="vertical-center !ml-0"> <pr-icon icon="'trash-2'"></pr-icon> Leave network</span>
<span ng-if="$ctrl.leaveNetworkActionInProgress">Leaving network...</span>
</button>
</td>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"

View File

@ -4,12 +4,12 @@
<div class="toolBar show-dropdown">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -31,7 +31,7 @@
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="image-removeImageButton"
>
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
<button
type="button"
@ -58,7 +58,7 @@
ng-disabled="$ctrl.exportInProgress"
data-cy="image-importImageButton"
>
<pr-icon icon="'upload'" feather="true"></pr-icon>Import
<pr-icon icon="'upload'"></pr-icon>Import
</button>
<button
type="button"
@ -69,7 +69,7 @@
authorization="DockerImageGet"
data-cy="image-exportImageButton"
>
<pr-icon icon="'download'" feather="true"></pr-icon>
<pr-icon icon="'download'"></pr-icon>
<span ng-hide="$ctrl.exportInProgress">Export</span>
<span ng-show="$ctrl.exportInProgress">Export in progress...</span>
</button>
@ -82,13 +82,13 @@
authorization="DockerImageBuild"
data-cy="image-buildImageButton"
>
<pr-icon icon="'plus'" feather="true"></pr-icon>Build a new image
<pr-icon icon="'plus'"></pr-icon>Build a new image
</button>
</div>
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -109,7 +109,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>
@ -142,8 +142,14 @@
</div>
<div>
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled">Filter <i class="fa fa-filter" aria-hidden="true"></i></span>
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled">Filter <i class="fa fa-check" aria-hidden="true"></i></span>
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled"
>Filter
<pr-icon icon="'filter'"></pr-icon>
</span>
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled"
>Filter
<pr-icon icon="'check'"></pr-icon>
</span>
</div>
<div class="dropdown-menu" uib-dropdown-menu>
<div class="tableMenu">

View File

@ -2,10 +2,15 @@
<rd-widget>
<rd-widget-body classes="no-padding">
<div class="toolBar">
<div class="toolBarTitle"> <i class="fa" ng-class="$ctrl.titleIcon" aria-hidden="true" style="margin-right: 2px"></i> {{ $ctrl.titleText }} </div>
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'hard-drive'"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"

View File

@ -9,9 +9,10 @@
/>
<label for="select_{{ $index }}"></label>
</span>
<a ng-if="parentCtrl.itemCanExpand(item)"
><i ng-class="{ 'fas fa-angle-down': item.Expanded, 'fas fa-angle-right': !item.Expanded }" class="space-right" aria-hidden="true"></i
></a>
<a ng-if="parentCtrl.itemCanExpand(item)">
<pr-icon ng-if="item.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
<pr-icon ng-if="!item.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
</a>
</td>
<td ng-if="!allowCheckbox"></td>
<td>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -30,7 +30,7 @@
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="network-removeNetworkButton"
>
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
<button
type="button"
@ -39,13 +39,13 @@
authorization="DockerNetworkCreate"
data-cy="network-addNetworkButton"
>
<pr-icon icon="'plus'" feather="true"></pr-icon>Add network
<pr-icon icon="'plus'"></pr-icon>Add network
</button>
</div>
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -66,7 +66,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>
@ -89,7 +89,8 @@
<label for="select_all"></label>
</span>
<a ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()">
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</a>
</th>
<th>

View File

@ -2,10 +2,15 @@
<rd-widget>
<rd-widget-body classes="no-padding">
<div class="toolBar">
<div class="toolBarTitle"> <i class="fa" ng-class="$ctrl.titleIcon" aria-hidden="true" style="margin-right: 2px"></i> {{ $ctrl.titleText }} </div>
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true"></pr-icon>
<pr-icon icon="'search'"></pr-icon>
<input
type="text"
class="searchInput"

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -24,7 +24,7 @@
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -45,7 +45,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -30,7 +30,7 @@
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="secret-removeSecretButton"
>
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
<button
type="button"
@ -39,13 +39,13 @@
authorization="DockerSecretCreate"
data-cy="secret-addSecretButton"
>
<pr-icon icon="'plus'" feather="true"></pr-icon>Add secret
<pr-icon icon="'plus'"></pr-icon>Add secret
</button>
</div>
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -66,7 +66,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>

View File

@ -12,8 +12,14 @@
ng-click="$ctrl.changeOrderBy('Status.State')"
></table-column-header>
<span class="space-left">
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled">Filter <i class="fa fa-filter" aria-hidden="true"></i></span>
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled">Filter <i class="fa fa-check" aria-hidden="true"></i></span>
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled"
>Filter
<pr-icon icon="'filter'"></pr-icon>
</span>
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled"
>Filter
<pr-icon icon="'check'"></pr-icon>
</span>
</span>
<div class="dropdown-menu" uib-dropdown-menu>
<div class="tableMenu">

View File

@ -9,7 +9,7 @@
ng-click="$ctrl.updateAction($ctrl.selectedItems)"
data-cy="service-updateServiceButton"
>
<pr-icon icon="'refresh-cw'" feather="true"></pr-icon>Update
<pr-icon icon="'refresh-cw'"></pr-icon>Update
</button>
<button
type="button"
@ -19,10 +19,11 @@
ng-click="$ctrl.removeAction($ctrl.selectedItems)"
data-cy="service-removeServiceButton"
>
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
</div>
<button type="button" class="btn btn-sm btn-primary" ui-sref="docker.services.new" ng-if="$ctrl.showAddAction" authorization="DockerServiceCreate">
<i class="fa fa-plus space-right" aria-hidden="true"></i>Add service
<pr-icon icon="'plus'" class-name="'mr-1'"></pr-icon>
Add service
</button>
</div>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -32,7 +32,7 @@
<datatable-columns-visibility columns="$ctrl.columnVisibility.columns" on-change="($ctrl.onColumnVisibilityChange)"></datatable-columns-visibility>
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -53,7 +53,7 @@
<option value="300">5min</option>
</select>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>
@ -76,7 +76,8 @@
<label for="select_all"></label>
</span>
<a ng-click="$ctrl.expandAll()">
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</a>
</th>
<th>
@ -156,7 +157,8 @@
<input id="select_{{ $index }}" type="checkbox" ng-model="item.Checked" ng-click="$ctrl.selectItem(item, $event); $event.stopPropagation()" />
<label for="select_{{ $index }}"></label>
</span>
<i ng-class="{ 'fas fa-angle-down': item.Expanded, 'fas fa-angle-right': !item.Expanded }" class="space-right" aria-hidden="true"></i>
<pr-icon ng-if="item.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
<pr-icon ng-if="!item.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
</td>
<td>
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ui-sref="docker.services.service({id: item.Id})" ng-click="$event.stopPropagation()">{{
@ -169,8 +171,9 @@
{{ item.Mode }}
<code>{{ item.Tasks | runningtaskscount }}</code> / <code>{{ item.Mode === 'replicated' ? item.Replicas : ($ctrl.nodes | availablenodecount: item) }}</code>
<span ng-if="item.Mode === 'replicated' && !item.Scale" authorization="DockerServiceUpdate">
<a class="interactive" ng-click="item.Scale = true; item.ReplicaCount = item.Replicas; $event.stopPropagation();">
<i class="fa fa-arrows-alt-v" aria-hidden="true"></i> Scale
<a class="interactive vertical-center" ng-click="item.Scale = true; item.ReplicaCount = item.Replicas; $event.stopPropagation();">
<pr-icon icon="'minimize-2'"></pr-icon>
Scale
</a>
</span>
<span ng-if="item.Mode === 'replicated' && item.Scale">
@ -184,20 +187,25 @@
auto-focus
ng-click="$event.stopPropagation();"
/>
<a class="interactive" ng-click="item.Scale = false; $event.stopPropagation();"><i class="fa fa-times"></i></a>
<a class="interactive" ng-click="actionCtrl.scaleAction(item); $event.stopPropagation();"><i class="fa fa-check-square"></i></a>
<a class="interactive vertical-center" ng-click="item.Scale = false; $event.stopPropagation();">
<pr-icon icon="'x'"></pr-icon>
</a>
<a class="interactive vertical-center" ng-click="actionCtrl.scaleAction(item); $event.stopPropagation();">
<pr-icon icon="'check-square'"></pr-icon>
</a>
</span>
</td>
<td ng-show="$ctrl.columnVisibility.columns.ports.display">
<a
ng-if="item.Ports && item.Ports.length > 0 && p.PublishedPort"
ng-repeat="p in item.Ports"
class="image-tag"
class="image-tag vertical-center"
ng-href="http://{{ $ctrl.endpointPublicUrl }}:{{ p.PublishedPort }}"
target="_blank"
ng-click="$event.stopPropagation();"
>
<i class="fa fa-external-link-alt" aria-hidden="true"></i> {{ p.PublishedPort }}:{{ p.TargetPort }}
<pr-icon icon="'external-link'"></pr-icon>
{{ p.PublishedPort }}:{{ p.TargetPort }}
</a>
<span ng-if="!item.Ports || item.Ports.length === 0">-</span>
</td>

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true"></pr-icon>
<pr-icon icon="'search'"></pr-icon>
<input
type="text"
class="searchInput"

View File

@ -4,12 +4,12 @@
<div class="toolBar">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
</div>
{{ $ctrl.titleText }}
</div>
<div class="searchBar vertical-center">
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
class="searchInput"
@ -30,7 +30,7 @@
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="volume-removeVolumeButton"
>
<pr-icon icon="'trash-2'" feather="true" class="leading-none"></pr-icon>Remove
<pr-icon icon="'trash-2'" class="leading-none"></pr-icon>Remove
</button>
<button
type="button"
@ -39,13 +39,13 @@
authorization="DockerVolumeCreate"
data-cy="volume-addVolumeButton"
>
<pr-icon icon="'plus'" feather="true" class="leading-none"></pr-icon>Add volume
<pr-icon icon="'plus'" class="leading-none"></pr-icon>Add volume
</button>
</div>
<div class="settings">
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
<span uib-dropdown-toggle aria-label="Settings">
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
<pr-icon icon="'more-vertical'"></pr-icon>
</span>
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
<div class="tableMenu">
@ -66,7 +66,7 @@
<option value="300">5min</option>
</select>
<span class="inline-block w-3">
<pr-icon id="refreshRateChange" icon="'check'" style="display: none" mode="'success'" feather="true"></pr-icon>
<pr-icon id="refreshRateChange" icon="'check'" style="display: none" mode="'success'"></pr-icon>
</span>
</div>
</div>
@ -95,11 +95,9 @@
is-sorted-desc="$ctrl.state.orderBy === 'Id' && $ctrl.state.reverseOrder"
ng-click="$ctrl.changeOrderBy('Id')"
></table-column-header>
<span uib-dropdown-toggle class="table-filter flex gap-1 self-end" ng-if="!$ctrl.filters.state.enabled"
>Filter <pr-icon icon="'filter'" feather="true"></pr-icon
></span>
<span uib-dropdown-toggle class="table-filter flex gap-1 self-end" ng-if="!$ctrl.filters.state.enabled">Filter <pr-icon icon="'filter'"></pr-icon></span>
<span uib-dropdown-toggle class="table-filter filter-active flex gap-1 self-end" ng-if="$ctrl.filters.state.enabled"
>Filter <pr-icon icon="'check'" feather="true"></pr-icon
>Filter <pr-icon icon="'check'"></pr-icon
></span>
<div class="dropdown-menu" uib-dropdown-menu>
<div class="tableMenu">
@ -195,7 +193,7 @@
class="btn btn-xs btn-primary space-left"
authorization="DockerAgentBrowseList"
>
<pr-icon icon="'search'" feather="true"></pr-icon> browse
<pr-icon icon="'search'"></pr-icon> browse
</button>
<span style="margin-left: 10px" class="label label-warning image-tag space-left" ng-if="item.dangling">Unused</span>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="PCI Devices"></rd-widget-header>
<rd-widget-header icon="code" title-text="PCI Devices"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<thead>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Physical Disks"></rd-widget-header>
<rd-widget-header icon="code" title-text="Physical Disks"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<thead>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Engine Details"></rd-widget-header>
<rd-widget-header icon="code" title-text="Engine Details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Host Details"></rd-widget-header>
<rd-widget-header icon="code" title-text="Host Details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View File

@ -11,7 +11,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" ng-change="$ctrl.updateLabel(label)" />
</div>
<button class="btn btn-light" type="button" ng-click="$ctrl.removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Node Details"></rd-widget-header>
<rd-widget-header icon="code" title-text="Node Details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -33,7 +33,7 @@
<tr>
<td>
<div class="nopadding">
<a class="btn btn-secondary btn-sm pull-right" ng-click="$ctrl.addLabel(node)"> <pr-icon icon="'plus'" feather="true"></pr-icon> label </a>
<a class="btn btn-secondary btn-sm pull-right" ng-click="$ctrl.addLabel(node)"> <pr-icon icon="'plus'"></pr-icon> label </a>
</div>
Node Labels
</td>

View File

@ -1,7 +1,7 @@
<div class="form-group" ng-if="$ctrl.pullRateLimits">
<div class="col-sm-12 small">
<div ng-if="$ctrl.pullRateLimits.remaining > 0" class="text-muted vertical-center">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
<span ng-if="$ctrl.isAuthenticated">
You are currently using a free account to pull images from DockerHub and will be limited to 200 pulls every 6 hours. Remaining pulls:
<span style="font-weight: bold">{{ $ctrl.pullRateLimits.remaining }}/{{ $ctrl.pullRateLimits.limit }}</span>
@ -20,7 +20,7 @@
</span>
</div>
<div ng-if="$ctrl.pullRateLimits.remaining <= 0" class="text-warning vertical-center">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
<span ng-if="$ctrl.isAuthenticated">
Your authorized pull count quota as a free user is now exceeded.
<span ng-transclude="rateLimitExceeded">You will not be able to pull any image from the DockerHub registry.</span>

View File

@ -62,7 +62,7 @@
<div class="col-sm-3 col-lg-2"></div>
<div class="col-sm-8" ng-messages="$ctrl.form.image_name.$error">
<p class="text-warning vertical-center" ng-message="required">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true" class="vertical-center"></pr-icon> Image name is required.
<pr-icon icon="'alert-triangle'" mode="'warning'" class="vertical-center"></pr-icon> Image name is required.
<span ng-if="$ctrl.canPull">Tag must be specified otherwise Portainer will pull all tags associated to the image.</span>
</p>
</div>
@ -72,10 +72,10 @@
<div class="form-group">
<div class="col-sm-12">
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0 vertical-center" ng-if="!$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = true;">
<pr-icon icon="'database'" feather="true"> </pr-icon> Simple mode
<pr-icon icon="'database'"> </pr-icon> Simple mode
</button>
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0 vertical-center" ng-if="$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = false;">
<pr-icon icon="'globe'" feather="true"> </pr-icon> Advanced mode
<pr-icon icon="'globe'"> </pr-icon> Advanced mode
</button>
</div>
</div>

View File

@ -1,7 +1,7 @@
<div class="row">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="file" feather-icon="true" title-text="Log viewer settings"></rd-widget-header>
<rd-widget-header icon="file" title-text="Log viewer settings"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">
@ -55,25 +55,25 @@
<label class="col-sm-2 control-label text-left"> Actions </label>
<div class="col-sm-10">
<button class="btn btn-primary btn-sm" type="button" ng-click="$ctrl.downloadLogs()" style="margin-left: 0"
><pr-icon icon="'download'" feather="true"></pr-icon> Download logs</button
><pr-icon icon="'download'"></pr-icon> Download logs</button
>
<button
class="btn btn-primary btn-sm"
ng-click="$ctrl.copy()"
ng-disabled="($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length"
><pr-icon icon="'copy'" feather="true" class-name="space-right"></pr-icon>Copy</button
><pr-icon icon="'copy'" class-name="'space-right'"></pr-icon>Copy</button
>
<button
class="btn btn-primary btn-sm"
ng-click="$ctrl.copySelection()"
ng-disabled="($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length || !$ctrl.state.selectedLines.length"
><pr-icon icon="'copy'" feather="true" class-name="space-right"></pr-icon>Copy selected lines</button
><pr-icon icon="'copy'" class-name="'space-right'"></pr-icon>Copy selected lines</button
>
<button class="btn btn-primary btn-sm" ng-click="$ctrl.clearSelection()" ng-disabled="$ctrl.state.selectedLines.length === 0"
><pr-icon icon="'x'" feather="true" class-name="space-right"></pr-icon>Unselect</button
><pr-icon icon="'x'" class-name="'space-right'"></pr-icon>Unselect</button
>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-left: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
</div>

View File

@ -3,7 +3,7 @@
<!-- selector -->
<div class="form-group">
<span class="col-sm-12 text-muted small vertical-center">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
To create a MACVLAN network you need to create a configuration, then create the network from this configuration.
</span>
</div>
@ -14,7 +14,7 @@
<input type="radio" id="network_config" ng-model="$ctrl.data.Scope" value="local" />
<label for="network_config">
<div class="boxselector_header">
<pr-icon icon="'sliders'" feather="true"></pr-icon>
<pr-icon icon="'sliders'"></pr-icon>
Configuration
</div>
<p>I want to configure a network before deploying it</p>
@ -24,7 +24,7 @@
<input type="radio" id="network_deploy" ng-model="$ctrl.data.Scope" value="swarm" ng-disabled="$ctrl.availableNetworks.length === 0" />
<label for="network_deploy" ng-class="$ctrl.availableNetworks.length === 0 ? 'boxselector_disabled' : ''">
<div class="boxselector_header">
<pr-icon icon="'share-2'" feather="true"></pr-icon>
<pr-icon icon="'share-2'"></pr-icon>
Creation
</div>
<p>I want to create a network from a configuration</p>
@ -55,7 +55,7 @@
<div class="form-group" ng-show="macvlanConfigurationForm.network_card.$invalid">
<div class="col-sm-12 small text-warning">
<div ng-messages="macvlanConfigurationForm.network_card.$error">
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Parent network card must be specified.</p>
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Parent network card must be specified.</p>
</div>
</div>
</div>
@ -66,7 +66,7 @@
<div class="col-sm-12">
<macvlan-nodes-datatable
title-text="Select the nodes where you want to deploy the local configuration"
title-icon="fa-hdd"
title-icon="hard-drive"
dataset="$ctrl.nodes"
table-key="nodes"
state="$ctrl.data.DatatableState"
@ -82,7 +82,7 @@
<div class="form-group" ng-show="macvlanConfigurationForm.node_selector.$invalid">
<div class="col-sm-12 small text-warning">
<div ng-messages="macvlanConfigurationForm.node_selector.$error">
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> At least one node must be selected.</p>
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> At least one node must be selected.</p>
</div>
</div>
</div>
@ -112,7 +112,7 @@
<div class="form-group" ng-show="macvlanConfigurationForm.config_network.$invalid">
<div class="col-sm-12 small text-warning">
<div ng-messages="macvlanConfigurationForm.config_network.$error">
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Select a configuration network.</p>
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Select a configuration network.</p>
</div>
</div>
</div>

View File

@ -12,7 +12,7 @@
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_address.$invalid">
<div class="small text-warning">
<div ng-messages="cifsInformationForm.cifs_address.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -27,7 +27,7 @@
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_share.$invalid">
<div class="small text-warning">
<div ng-messages="cifsInformationForm.cifs_share.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -42,7 +42,7 @@
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_version.$invalid">
<div class="small text-warning">
<div ng-messages="cifsInformationForm.cifs_version.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -57,7 +57,7 @@
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_username.$invalid">
<div class="small text-warning">
<div ng-messages="cifsInformationForm.cifs_username.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -72,7 +72,7 @@
<div class="form-group col-md-12" ng-show="cifsInformationForm.password.$invalid">
<div class="small text-warning">
<div ng-messages="cifsInformationForm.cifs_password.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>

View File

@ -12,7 +12,7 @@
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_address.$invalid">
<div class="small text-warning">
<div ng-messages="nfsInformationForm.nfs_address.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -27,7 +27,7 @@
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_version.$invalid">
<div class="small text-warning">
<div ng-messages="nfsInformationForm.nfs_version.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -49,7 +49,7 @@
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_mountpoint.$invalid">
<div class="small text-warning">
<div ng-messages="nfsInformationForm.nfs_mountpoint.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>
@ -67,7 +67,7 @@
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_options.$invalid">
<div class="small text-warning">
<div ng-messages="nfsInformationForm.nfs_options.$error">
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
</div>
</div>
</div>

View File

@ -30,9 +30,7 @@
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<span class="label label-default interactive vertical-center space-left" ng-click="ctrl.addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive vertical-center space-left" ng-click="ctrl.addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline mt-2">
@ -46,7 +44,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="ctrl.removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View File

@ -3,7 +3,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="clipboard" feather-icon="true" title-text="Config details"></rd-widget-header>
<rd-widget-header icon="clipboard" title-text="Config details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -16,10 +16,10 @@
<td>
{{ config.Id }}
<button authorization="DockerConfigDelete" class="btn btn-xs btn-dangerlight" ng-click="removeConfig(config.Id)"
><pr-icon icon="'trash-2'" feather="true"></pr-icon>Delete this config</button
><pr-icon icon="'trash-2'"></pr-icon>Delete this config</button
>
<button authorization="DockerConfigCreate" class="btn btn-xs btn-secondary" ui-sref="docker.configs.new({id: config.Id})"
><pr-icon icon="'copy'" feather="true"></pr-icon>Clone config</button
><pr-icon icon="'copy'"></pr-icon>Clone config</button
>
</td>
</tr>
@ -63,7 +63,7 @@
<div class="row" ng-if="config">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Config content"></rd-widget-header>
<rd-widget-header icon="code" title-text="Config content"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">

View File

@ -2,9 +2,9 @@
title="'Container console'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Console']"
>
@ -13,25 +13,25 @@
<div class="row" ng-init="autoconnectAttachView()" ng-show="loaded">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="terminal" feather-icon="true" title-text="Attach"></rd-widget-header>
<rd-widget-header icon="terminal" title-text="Attach"></rd-widget-header>
<rd-widget-body>
<div class="small text-warning" ng-if="!container.Config.OpenStdin">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The interactive-flag is not set. You might not be able to use the console properly.
</p>
</div>
<div class="small text-warning" ng-if="!container.Config.Tty">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The TTY-flag is not set. You might not be able to use the console properly.
</p>
</div>
<div class="small text-warning" ng-hide="container.State.Running">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The container is not running.
</p>
</div>

View File

@ -2,9 +2,9 @@
title="'Container console'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Console']"
>
@ -13,7 +13,7 @@
<div class="row" ng-init="initView()" ng-show="loaded">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="terminal" feather-icon="true" title-text="Execute"></rd-widget-header>
<rd-widget-header icon="terminal" title-text="Execute"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div ng-if="state === states.disconnected">
@ -23,8 +23,8 @@
<div class="col-lg-11 col-sm-10">
<div class="input-group" ng-if="!formValues.isCustomCommand">
<span class="input-group-addon">
<i class="fab fa-linux" aria-hidden="true" ng-if="imageOS == 'linux'"></i>
<i class="fab fa-windows" aria-hidden="true" ng-if="imageOS == 'windows'"></i>
<pr-icon ng-if="imageOS == 'linux'" icon="'svg-linux'"></pr-icon>
<pr-icon ng-if="imageOS == 'windows'" icon="'layout-grid'"></pr-icon>
</span>
<select class="form-control" ng-model="formValues.command" id="command">
<option value="ash" ng-if="imageOS == 'linux'">/bin/ash</option>
@ -61,8 +61,8 @@
<button type="button" class="btn btn-primary" ng-disabled="!container.State.Running" ng-click="connectExec()">
<span>Connect</span>
</button>
<span class="small text-danger" ng-hide="container.State.Running">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
<span class="small text-danger vertical-center" ng-hide="container.State.Running">
<pr-icon icon="'alert-triangle'" mode="'danger'"></pr-icon>
The container is not running.
</span>
</div>

View File

@ -3,7 +3,7 @@
<information-panel title-text="Caution" ng-if="state.mode == 'duplicate'">
<span class="small">
<p class="text-muted">
<i class="fa fa-exclamation-circle orange-icon" aria-hidden="true" style="margin-right: 2px"></i>
<pr-icon icon="'alert-triangle'" mode="'warning'" class-name="'mr-0.5'"></pr-icon>
The new container may fail to start if the image is changed, and settings from the previous container aren't compatible. Common causes include entrypoint, cmd or
<a href="http://portainer.readthedocs.io/en/stable/agent.html" target="_blank">other settings</a> set by an image.
</p>
@ -25,7 +25,7 @@
<!-- !name-input -->
<div class="col-sm-12 form-section-title"> Image configuration </div>
<div ng-if="!formValues.RegistryModel.Registry && fromContainer">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
<span class="small text-danger" style="margin-left: 5px">
The Docker registry for the <code>{{ config.Image }}</code> image is not registered inside Portainer, you will not be able to create a container. Please register that
registry first.
@ -104,7 +104,7 @@
></portainer-tooltip>
</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addPortBinding()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> publish a new network port
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> publish a new network port
</span>
</div>
<!-- port-mapping-input-list -->
@ -117,7 +117,7 @@
</div>
<!-- !host-port -->
<span style="margin: 0 10px 0 10px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</span>
<!-- container-port -->
<div class="input-group col-sm-4 input-group-sm">
@ -132,7 +132,7 @@
<label class="btn btn-light" ng-model="portBinding.protocol" uib-btn-radio="'udp'">UDP</label>
</div>
<button class="btn btn-light" type="button" ng-click="removePortBinding($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
<!-- !protocol-actions -->
@ -191,7 +191,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="fa-cog" title-text="Advanced container settings"></rd-widget-header>
<rd-widget-header icon="settings" title-text="Advanced container settings"></rd-widget-header>
<rd-widget-body>
<ul class="nav nav-pills nav-justified">
<li class="active interactive"><a data-target="#command" data-toggle="tab">Command & logging</a></li>
@ -335,7 +335,7 @@
style="margin-left: 10px"
ng-click="!formValues.LogDriverName || formValues.LogDriverName === 'none' || addLogDriverOpt(formValues.LogDriverName)"
>
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add logging driver option
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add logging driver option
</span>
</div>
<!-- logging-opts-input-list -->
@ -350,7 +350,7 @@
<input type="text" class="form-control" ng-model="opt.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-light" type="button" ng-click="removeLogDriverOpt($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -368,7 +368,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Volume mapping</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addVolume()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional volume
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional volume
</span>
</div>
<!-- volumes-input-list -->
@ -389,7 +389,7 @@
<label class="btn btn-light" ng-model="volume.type" uib-btn-radio="'bind'" ng-click="volume.name = ''">Bind</label>
</div>
<button class="btn btn-light" type="button" ng-click="removeVolume($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
<!-- !volume-type -->
@ -397,7 +397,7 @@
<!-- !volume-line1 -->
<!-- volume-line2 -->
<div class="col-sm-12 form-inline" style="margin-top: 5px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
<!-- volume -->
<div class="input-group input-group-sm col-sm-6" ng-if="volume.type === 'volume'">
<span class="input-group-addon">volume</span>
@ -526,7 +526,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Hosts file entries</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addExtraHost()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional entry
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional entry
</span>
</div>
<!-- extra-hosts-input-list -->
@ -537,7 +537,7 @@
<input type="text" class="form-control" ng-model="variable.value" placeholder="e.g. host:IP" />
</div>
<button class="btn btn-light" type="button" ng-click="removeExtraHost($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -554,9 +554,7 @@
<div class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -570,7 +568,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -645,9 +643,7 @@
<div ng-if="showDeviceMapping" class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Devices</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addDevice()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add device
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addDevice()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add device </span>
</div>
<!-- devices-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -661,7 +657,7 @@
<input type="text" class="form-control" ng-model="device.pathInContainer" placeholder="e.g. /dev/tty0" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeDevice($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -672,9 +668,7 @@
<div ng-if="showSysctls" class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Sysctls</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSysctl()">
<pr-icon icon="'plus'" feather="true"></pr-icon> add sysctl
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSysctl()"> <pr-icon icon="'plus'"></pr-icon> add sysctl </span>
</div>
<!-- sysctls-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -688,7 +682,7 @@
<input type="text" class="form-control" ng-model="sysctl.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeSysctl($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -753,7 +747,7 @@
<div class="col-sm-8 small text-muted">
<div ng-messages="resourceForm.memory-reservation.$error">
<p class="vertical-center text-warning">
<pr-icon icon="'alert-triangle'" feather="true" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
</p>
</div>
</div>
@ -790,7 +784,7 @@
<div class="col-sm-8 small text-muted">
<div ng-messages="resourceForm.memory-limit.$error">
<p class="vertical-center text-warning">
<pr-icon icon="'alert-triangle'" feather="true" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
</p>
</div>
</div>
@ -829,7 +823,8 @@
</div>
<div class="col-sm-12" ng-if="state.settingUnlimitedResources">
<p class="text-muted mr-4">
<i class="fa fa-exclamation-circle text-warning mt-10" aria-hidden="true"></i> Updating any resource value to unlimited' will redeploy this container.
<pr-icon icon="'alert-triangle'" mode="'warning'" class-name="'mt-10'"></pr-icon>
Updating any resource value to unlimited' will redeploy this container.
</p>
</div>
</div>

View File

@ -6,35 +6,41 @@
>
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="settings" feather-icon="true" title-text="Actions"></rd-widget-header>
<rd-widget-header icon="settings" title-text="Actions"></rd-widget-header>
<rd-widget-body classes="padding">
<div class="btn-group" role="group" aria-label="...">
<button authorization="DockerContainerStart" class="btn btn-light btn-sm" ng-click="start()" ng-disabled="container.State.Running || container.IsPortainer">
<pr-icon icon="'play'" feather="true" class-name="'feather'"></pr-icon>
<pr-icon icon="'play'"></pr-icon>
Start
</button>
<button authorization="DockerContainerStop" class="btn btn-light btn-sm" ng-click="stop()" ng-disabled="!container.State.Running || container.IsPortainer">
<pr-icon icon="'square'" feather="true"></pr-icon>
<pr-icon icon="'square'"></pr-icon>
Stop
</button>
<button authorization="DockerContainerKill" class="btn btn-light btn-sm" ng-click="kill()" ng-disabled="!container.State.Running || container.IsPortainer">
<i class="fa fa-bomb space-right" aria-hidden="true"></i>Kill
<pr-icon icon="'bomb'"></pr-icon>
Kill
</button>
<button authorization="DockerContainerRestart" class="btn btn-light btn-sm" ng-click="restart()" ng-disabled="!container.State.Running || container.IsPortainer"
><i class="fa fa-sync space-right" aria-hidden="true"></i>Restart</button
<button authorization="DockerContainerRestart" class="btn btn-light btn-sm" ng-click="restart()" ng-disabled="!container.State.Running || container.IsPortainer">
<pr-icon icon="'refresh-cw'"></pr-icon>
Restart</button
>
<button
authorization="DockerContainerPause"
class="btn btn-light btn-sm"
ng-click="pause()"
ng-disabled="!container.State.Running || container.State.Paused || container.IsPortainer"
><i class="fa fa-pause space-right" aria-hidden="true"></i>Pause</button
>
<button authorization="DockerContainerUnpause" class="btn btn-light btn-sm" ng-click="unpause()" ng-disabled="!container.State.Paused || container.IsPortainer"
><i class="fa fa-play space-right" aria-hidden="true"></i>Resume</button
<pr-icon icon="'pause'"></pr-icon>
Pause</button
>
<button authorization="DockerContainerDelete" class="btn btn-dangerlight btn-sm" ng-click="confirmRemove()" ng-disabled="container.IsPortainer"
><i class="fa fa-trash-alt space-right" aria-hidden="true"></i>Remove</button
<button authorization="DockerContainerUnpause" class="btn btn-light btn-sm" ng-click="unpause()" ng-disabled="!container.State.Paused || container.IsPortainer">
<pr-icon icon="'play'"></pr-icon>
Resume</button
>
<button authorization="DockerContainerDelete" class="btn btn-dangerlight btn-sm" ng-click="confirmRemove()" ng-disabled="container.IsPortainer">
<pr-icon icon="'trash-2'"></pr-icon>
Remove</button
>
</div>
<div class="btn-group" role="group" aria-label="..." ng-if="displayRecreateButton" authorization="DockerContainerCreate">
@ -45,11 +51,15 @@
ng-click="recreate()"
button-spinner="state.recreateContainerInProgress"
>
<span ng-hide="state.recreateContainerInProgress"><i class="fa fa-sync space-right" aria-hidden="true"></i>Recreate</span>
<span ng-hide="state.recreateContainerInProgress" class="flex items-center">
<pr-icon icon="'refresh-cw'" class-name="'!mr-1'"></pr-icon>
Recreate</span
>
<span ng-show="state.recreateContainerInProgress">Recreation in progress...</span>
</button>
<a class="btn btn-light btn-sm" type="button" ui-sref="docker.containers.new({ from: container.Id, nodeName: nodeName })" ng-disabled="container.IsPortainer"
><i class="fa fa-copy space-right" aria-hidden="true"></i>Duplicate/Edit</a
<a class="btn btn-light btn-sm" type="button" ui-sref="docker.containers.new({ from: container.Id, nodeName: nodeName })" ng-disabled="container.IsPortainer">
<pr-icon icon="'copy'"></pr-icon>
Duplicate/Edit</a
>
</div>
</rd-widget-body>
@ -60,7 +70,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="box" feather-icon="true" title-text="Container status"></rd-widget-header>
<rd-widget-header icon="box" title-text="Container status"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -73,14 +83,18 @@
<td ng-if="!container.edit">
{{ container.Name | trimcontainername }}
<a authorization="DockerContainerRename" href="" data-toggle="tooltip" title="Edit container name" ng-click="container.edit = true;"
><pr-icon icon="'edit'" feather="true" className="'space-right'"></pr-icon
><pr-icon icon="'edit'" class-name="'space-right'"></pr-icon
></a>
</td>
<td ng-if="container.edit">
<form ng-submit="renameContainer()">
<input type="text" class="containerNameInput" ng-model="container.newContainerName" />
<a href="" ng-click="container.edit = false;"><i class="fa fa-times"></i></a>
<a href="" ng-click="renameContainer()"><i class="fa fa-check"></i></a>
<a href="" ng-click="container.edit = false;">
<pr-icon icon="'x'"></pr-icon>
</a>
<a href="" ng-click="renameContainer()">
<pr-icon icon="'check'"></pr-icon>
</a>
</form>
</td>
</tr>
@ -91,8 +105,8 @@
<tr>
<td>Status</td>
<td>
<i class="fa fa-heartbeat space-right green-icon" ng-if="container.State.Running"></i>
<i class="fa fa-heartbeat space-right red-icon" ng-if="!container.State.Running && container.State.Status !== 'created'"></i>
<pr-icon ng-if="container.State.Running" icon="'heart-pulse'" mode="'success'"></pr-icon>
<pr-icon ng-if="!container.State.Running && container.State.Status !== 'created'" icon="'heart-pulse'" mode="'danger'"></pr-icon>
{{ container.State | getstatetext }} for {{ activityTime
}}<span ng-if="!container.State.Running && container.State.Status !== 'created'"> with exit code {{ container.State.ExitCode }}</span>
</td>
@ -127,19 +141,19 @@
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a authorization="DockerContainerLogs" class="btn" type="button" ui-sref="docker.containers.container.logs({ id: container.Id })"
><pr-icon icon="'file-text'" feather="true" className="'space-right'"></pr-icon>Logs</a
><pr-icon icon="'file-text'" class-name="'space-right'"></pr-icon>Logs</a
>
<a authorization="DockerContainerInspect" class="btn" type="button" ui-sref="docker.containers.container.inspect({ id: container.Id })"
><pr-icon icon="'info'" feather="true" className="'space-right'"></pr-icon>Inspect</a
><pr-icon icon="'info'" class-name="'space-right'"></pr-icon>Inspect</a
>
<a authorization="DockerContainerStats" class="btn" type="button" ui-sref="docker.containers.container.stats({ id: container.Id })"
><pr-icon icon="'bar-chart'" feather="true" className="'space-right'"></pr-icon>Stats</a
><pr-icon icon="'bar-chart'" class-name="'space-right'"></pr-icon>Stats</a
>
<a authorization="DockerExecStart" class="btn" type="button" ui-sref="docker.containers.container.exec({ id: container.Id })"
><pr-icon icon="'terminal'" feather="true" className="'space-right'"></pr-icon>Console</a
><pr-icon icon="'terminal'" class-name="'space-right'"></pr-icon>Console</a
>
<a authorization="DockerContainerAttach" class="btn" type="button" ui-sref="docker.containers.container.attach({ id: container.Id })"
><pr-icon icon="'paperclip'" feather="true" className="'space-right'"></pr-icon>Attach</a
><pr-icon icon="'paperclip'" class-name="'space-right'"></pr-icon>Attach</a
>
</div>
</td>
@ -167,7 +181,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Create image"></rd-widget-header>
<rd-widget-header icon="list" title-text="Create image"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- tag-description -->
@ -219,7 +233,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Container details"></rd-widget-header>
<rd-widget-header icon="list" title-text="Container details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table container-details-table">
<tbody>
@ -232,7 +246,11 @@
<tr ng-if="portBindings.length > 0">
<td>Port configuration</td>
<td>
<div ng-repeat="portMapping in portBindings"> {{ portMapping.host }} <i class="fa fa-long-arrow-alt-right"></i> {{ portMapping.container }} </div>
<div ng-repeat="portMapping in portBindings">
{{ portMapping.host }}
<pr-icon icon="'arrow-right'"></pr-icon>
{{ portMapping.container }}
</div>
</td>
</tr>
<tr>
@ -306,7 +324,7 @@
<div class="row" ng-if="container.Mounts.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="database" feather-icon="true" title-text="Volumes"></rd-widget-header>
<rd-widget-header icon="database" title-text="Volumes"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<thead>

View File

@ -2,9 +2,9 @@
title="'Container inspect'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(containerInfo.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:containerInfo.Id
}, 'Inspect']"
>
@ -13,10 +13,10 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="circle" feather-icon="true" title-text="Inspect">
<rd-widget-header icon="circle" title-text="Inspect">
<span class="btn-group btn-group-sm">
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="false"><pr-icon icon="'code'" feather="true"></pr-icon>Tree</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="true"><pr-icon icon="'file'" feather="true"></pr-icon>Text</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="false"><pr-icon icon="'code'"></pr-icon>Tree</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="true"><pr-icon icon="'file'"></pr-icon>Text</label>
</span>
</rd-widget-header>
<rd-widget-body>

View File

@ -2,9 +2,9 @@
title="'Container statistics'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Stats']"
>
@ -13,7 +13,7 @@
<div class="row">
<div class="col-md-12">
<rd-widget>
<rd-widget-header icon="info" feather-icon="true" title-text="About statistics"> </rd-widget-header>
<rd-widget-header icon="info" title-text="About statistics"> </rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">
@ -37,17 +37,23 @@
</select>
</div>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
<div class="form-group" ng-if="state.networkStatsUnavailable">
<div class="col-sm-12">
<span class="small text-muted"> <i class="fa fa-exclamation-triangle orange-icon" aria-hidden="true"></i> Network stats are unavailable for this container. </span>
<span class="small text-muted">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
Network stats are unavailable for this container.
</span>
</div>
</div>
<div class="form-group" ng-if="state.ioStatsUnavailable">
<div class="col-sm-12">
<span class="small text-muted"> <i class="fa fa-exclamation-triangle orange-icon" aria-hidden="true"></i> I/O stats are unavailable for this container. </span>
<span class="small text-muted">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
I/O stats are unavailable for this container.
</span>
</div>
</div>
</form>
@ -59,7 +65,7 @@
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="Memory usage"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="Memory usage"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="memoryChart" width="770" height="300"></canvas>
@ -70,7 +76,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="CPU usage"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="CPU usage"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="cpuChart" width="770" height="300"></canvas>
@ -81,7 +87,7 @@
<div class="col-lg-6 col-md-6 col-sm-12" ng-if="!state.networkStatsUnavailable">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="Network usage (aggregate)"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="Network usage (aggregate)"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="networkChart" width="770" height="300"></canvas>
@ -92,7 +98,7 @@
<div class="col-lg-6 col-md-6 col-sm-12" ng-if="!state.ioStatsUnavailable">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="I/O usage (aggregate)"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="I/O usage (aggregate)"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="ioChart" width="770" height="300"></canvas>

View File

@ -16,12 +16,12 @@
>
<span class="small">
<p class="text-muted" ng-if="applicationState.endpoint.mode.role === 'MANAGER'">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
Portainer is connected to a node that is part of a Swarm cluster. Some resources located on other nodes in the cluster might not be available for management, have a look at
<a href="http://portainer.readthedocs.io/en/stable/agent.html" target="_blank">our agent setup</a> for more details.
</p>
<p class="text-muted" ng-if="applicationState.endpoint.mode.role === 'WORKER'">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
Portainer is connected to a worker node. Swarm management features will not be available.
</p>
</span>
@ -31,7 +31,7 @@
<div class="row" ng-if="(!applicationState.endpoint.mode.agentProxy || applicationState.endpoint.mode.provider !== 'DOCKER_SWARM_MODE') && info && endpoint">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="svg-tachometer" title-text="Environment info"></rd-widget-header>
<rd-widget-header icon="gauge" title-text="Environment info"></rd-widget-header>
<rd-widget-body classes="!px-5 !py-0">
<table class="table">
<tbody>
@ -40,12 +40,15 @@
<td>
{{ endpoint.Name }}
<span class="small text-muted space-left">
<pr-icon icon="'cpu'" feather="true"></pr-icon> {{ endpoint.Snapshots[0].TotalCPU }} <pr-icon icon="'svg-memory'"></pr-icon>
<pr-icon icon="'cpu'"></pr-icon> {{ endpoint.Snapshots[0].TotalCPU }} <pr-icon icon="'svg-memory'"></pr-icon>
{{ endpoint.Snapshots[0].TotalMemory | humansize }}
</span>
<span class="small text-muted">
- {{ info.Swarm && info.Swarm.NodeID !== '' ? 'Swarm' : 'Standalone' }} {{ info.ServerVersion }}
<span ng-if="endpoint.Type === 2">+ <i class="fa fa-bolt" aria-hidden="true"></i> Agent</span></span
<span ng-if="endpoint.Type === 2">
<pr-icon icon="'zap'"></pr-icon>
Agent</span
></span
>
</td>
</tr>
@ -64,7 +67,7 @@
<tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'">
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" feather="true" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
</div>
</td>
</tr>
@ -77,33 +80,33 @@
<div class="dashboard-grid mx-4">
<a class="no-link" ui-sref="docker.stacks" ng-if="showStacks">
<dashboard-item feather-icon="true" icon="'layers'" type="'Stack'" value="stackCount"></dashboard-item>
<dashboard-item icon="'layers'" type="'Stack'" value="stackCount"></dashboard-item>
</a>
<div ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'">
<a class="no-link" ui-sref="docker.services">
<dashboard-item feather-icon="true" icon="'shuffle'" type="'Service'" value="serviceCount"></dashboard-item>
<dashboard-item icon="'shuffle'" type="'Service'" value="serviceCount"></dashboard-item>
</a>
</div>
<a class="no-link" ng-if="containers" ui-sref="docker.containers">
<dashboard-item feather-icon="true" icon="'box'" type="'Container'" value="containers.length" children="containerStatusComponent"></dashboard-item>
<dashboard-item icon="'box'" type="'Container'" value="containers.length" children="containerStatusComponent"></dashboard-item>
</a>
<a class="no-link" ng-if="images" ui-sref="docker.images">
<dashboard-item feather-icon="true" icon="'list'" type="'Image'" value="images.length" children="imagesTotalSizeComponent"></dashboard-item>
<dashboard-item icon="'list'" type="'Image'" value="images.length" children="imagesTotalSizeComponent"></dashboard-item>
</a>
<a class="no-link" ui-sref="docker.volumes">
<dashboard-item feather-icon="true" icon="'database'" type="'Volume'" value="volumeCount"></dashboard-item>
<dashboard-item icon="'database'" type="'Volume'" value="volumeCount"></dashboard-item>
</a>
<a class="no-link" ui-sref="docker.networks">
<dashboard-item feather-icon="true" icon="'share2'" type="'Network'" value="networkCount"></dashboard-item>
<dashboard-item icon="'share2'" type="'Network'" value="networkCount"></dashboard-item>
</a>
<div>
<dashboard-item feather-icon="true" icon="'cpu'" type="'GPU'" value="endpoint.Gpus.length"></dashboard-item>
<dashboard-item icon="'cpu'" type="'GPU'" value="endpoint.Gpus.length"></dashboard-item>
</div>
</div>
</div>

View File

@ -8,7 +8,7 @@
<div class="col-sm-12 form-section-title"> Host and Filesystem </div>
<div ng-if="!$ctrl.isAgent" class="form-group">
<span class="col-sm-12 text-muted small vertical-center">
<pr-icon icon="'info'" feather="true" mode="'primary'" class-name="space-right"></pr-icon>
<pr-icon icon="'info'" mode="'primary'" class-name="'space-right'"></pr-icon>
These features are only available for an Agent enabled environments.
</span>
</div>
@ -141,7 +141,7 @@
<div class="form-group" ng-if="$ctrl.isContainerEditDisabled()">
<span class="col-sm-12 text-muted small">
<i class="fa fa-info-circle blue-icon" aria-hidden="true" style="margin-right: 2px"></i>
<pr-icon icon="'info'" mode="'primary'" class-name="'mr-0.5'"></pr-icon>
Note: The recreate/duplicate/edit feature is currently disabled (for non-admin users) by one or more security settings.
</span>
</div>

View File

@ -6,7 +6,7 @@
<rd-widget-body>
<uib-tabset active="state.activeTab">
<uib-tab index="0">
<uib-tab-heading class="vertical-center"> <pr-icon icon="'tool'" feather="true" class="leading-none"></pr-icon> Builder </uib-tab-heading>
<uib-tab-heading class="vertical-center"> <pr-icon icon="'wrench'" class="leading-none"></pr-icon> Builder </uib-tab-heading>
<form class="form-horizontal">
<div class="col-sm-12 form-section-title"> Naming </div>
<!-- names -->
@ -16,17 +16,13 @@
<div class="form-group">
<div class="col-sm-12">
<label class="control-label text-left">Names</label>
<span class="label label-default interactive" class="ml-2.5" ng-click="addImageName()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional name
</span>
<span class="label label-default interactive" class="ml-2.5" ng-click="addImageName()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional name </span>
</div>
</div>
<!-- !names -->
<div class="form-group" ng-if="formValues.ImageNames.length === 0">
<span class="col-sm-12 text-danger small">
<p class="vertical-center">
<pr-icon icon="'alert-triangle'" mode="'danger'" size="'sm'" feather="true"></pr-icon> You must specify at least one name for the image.
</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'danger'" size="'sm'"></pr-icon> You must specify at least one name for the image. </p>
</span>
</div>
<!-- name-input-list -->
@ -46,22 +42,22 @@
<span class="input-group-addon">name</span>
<input type="text" class="form-control" ng-model="item.Name" ng-change="checkName($index)" placeholder="e.g. my-image:my-tag" auto-focus />
<span class="input-group-addon" ng-if="!item.Valid">
<pr-icon icon="'x'" mode="'danger'" feather="true"></pr-icon>
<pr-icon icon="'x'" mode="'danger'"></pr-icon>
</span>
<span class="input-group-addon" ng-if="item.Valid">
<pr-icon icon="'check'" mode="'success'" feather="true"></pr-icon>
<pr-icon icon="'check'" mode="'success'"></pr-icon>
</span>
</div>
<!-- !name-input -->
<!-- actions -->
<div class="input-group col-sm-2 input-group-sm">
<button class="btn btn-dangerlight btn-only-icon" type="button" ng-click="removeImageName($index)">
<pr-icon icon="'trash-2'" feather="true"></pr-icon>
<pr-icon icon="'trash-2'"></pr-icon>
</button>
</div>
<!-- !actions -->
<div class="small text-warning" ng-if="!item.Valid">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
<span ng-if="!item.Unique">The image name must be unique</span>
<span ng-if="item.Unique"
>The image name must consist of between 2 and 255 lowercase alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span
@ -83,7 +79,7 @@
<input type="radio" id="method_editor" ng-model="state.BuildType" value="editor" ng-click="toggleEditor()" />
<label for="method_editor">
<div class="boxselector_header vertical-center">
<pr-icon icon="'edit'" feather="true"></pr-icon>
<pr-icon icon="'edit'"></pr-icon>
Web editor
</div>
<p>Use our Web editor</p>
@ -93,7 +89,7 @@
<input type="radio" id="method_upload" ng-model="state.BuildType" value="upload" ng-click="saveEditorContent()" />
<label for="method_upload">
<div class="boxselector_header vertical-center">
<pr-icon icon="'upload'" feather="true"></pr-icon>
<pr-icon icon="'upload'"></pr-icon>
Upload
</div>
<p>Upload a tarball or a Dockerfile from your computer</p>
@ -103,7 +99,7 @@
<input type="radio" id="method_url" ng-model="state.BuildType" value="url" ng-click="saveEditorContent()" />
<label for="method_url">
<div class="boxselector_header vertical-center">
<pr-icon icon="'globe'" feather="true"></pr-icon>
<pr-icon icon="'globe'"></pr-icon>
URL
</div>
<p>Specify a URL to a file</p>
@ -162,7 +158,7 @@
<button class="btn btn-sm btn-primary" ngf-select ngf-min-size="10" ng-model="formValues.UploadFile">Select file</button>
<span class="space-left">
{{ formValues.UploadFile.name }}
<span ng-if="!formValues.UploadFile"><pr-icon icon="'x'" mode="'danger'" feather="true" size="'md'"></pr-icon></span>
<span ng-if="!formValues.UploadFile"><pr-icon icon="'x'" mode="'danger'" size="'md'"></pr-icon></span>
</span>
</div>
</div>
@ -184,7 +180,7 @@
<div class="col-sm-12 form-section-title"> URL </div>
<div class="form-group">
<span class="col-sm-12 small vertical-center">
<pr-icon icon="'info'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
<span class="text-muted"
>Specify the URL to a Dockerfile, a tarball or a public Git repository (suffixed by <b>.git</b>). When using a Git repository URL, build contexts can be
specified as in the <a href="https://docs.docker.com/engine/reference/commandline/build/#git-repositories">Docker documentation.</a></span
@ -205,7 +201,7 @@
</div>
<div class="form-group">
<span class="col-sm-12 text-muted small vertical-center">
<pr-icon icon="'info'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
Indicate the path to the Dockerfile within the tarball/repository (ignored when using a Dockerfile).
</span>
</div>
@ -248,7 +244,7 @@
</form>
</uib-tab>
<uib-tab index="1" disable="!buildLogs">
<uib-tab-heading class="vertical-center"> <pr-icon icon="'file-text'" feather="true" class="leading-none"></pr-icon> Output </uib-tab-heading>
<uib-tab-heading class="vertical-center"> <pr-icon icon="'file-text'" class="leading-none"></pr-icon> Output </uib-tab-heading>
<pre class="log_viewer">
<div ng-repeat="line in buildLogs track by $index" class="line"><p class="inner_line" ng-click="active=!active" ng-class="{'line_selected': active}">{{ line }}</p></div>
<div ng-if="!buildLogs.length" class="line"><p class="inner_line">No build output available.</p></div>

View File

@ -3,7 +3,7 @@
<div class="row" ng-if="image.RepoTags.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="true" title-text="Image tags"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Image tags"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">
@ -16,19 +16,19 @@
<span class="input-group-btn" style="padding: 0px 5px">
<span style="margin: 0px 5px" authorization="DockerImagePush">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Push to registry" ng-click="pushTag(tag)">
<pr-icon icon="'upload'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'upload'" class="text-white"></pr-icon>
</a>
</span>
<span class="my-0 mx-1" authorization="DockerImageCreate">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Pull from registry" ng-click="pullTag(tag)">
<pr-icon icon="'download'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'download'" class="text-white"></pr-icon>
</a>
</span>
<span class="my-0 mx-1" authorization="DockerImageDelete">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Remove tag" ng-click="removeTag(tag)">
<pr-icon icon="'trash-2'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'trash-2'" class="text-white"></pr-icon>
</a>
</span>
</span>
@ -39,18 +39,18 @@
<div class="form-group">
<div class="col-sm-12">
<span class="small text-muted" authorization="DockerImageDelete">
Note: you can click on the upload icon <pr-icon icon="'upload'" feather="true"></pr-icon> to push an image or on the download icon
<pr-icon icon="'download'" feather="true"></pr-icon> to pull an image or on the trash icon <pr-icon icon="'trash-2'" feather="true"></pr-icon> to delete a tag.
Note: you can click on the upload icon <pr-icon icon="'upload'"></pr-icon> to push an image or on the download icon <pr-icon icon="'download'"></pr-icon> to pull an
image or on the trash icon <pr-icon icon="'trash-2'"></pr-icon> to delete a tag.
</span>
</div>
<div class="col-sm-12">
<span id="downloadResourceHint" class="createResource ml-0" style="display: none">
Download in progress...
<i class="fa fa-circle-notch fa-spin ml-0.5" aria-hidden="true"></i>
<pr-icon icon="'loader-2'" class-name="'animate-spin-slow ml-0.5'"></pr-icon>
</span>
<span id="uploadResourceHint" class="createResource ml-0.5" style="display: none">
Upload in progress...
<i class="fa fa-circle-notch fa-spin ml-0.5" aria-hidden="true"></i>
<pr-icon icon="'loader-2'" class-name="'animate-spin-slow ml-0.5'"></pr-icon>
</span>
</div>
</div>
@ -63,7 +63,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="true" title-text="Tag the image"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Tag the image"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- image-and-registry -->
@ -98,7 +98,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Image details"></rd-widget-header>
<rd-widget-header icon="list" title-text="Image details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -107,7 +107,7 @@
<td>
{{ image.Id }}
<button authorization="DockerImageDelete" class="btn btn-xs btn-danger" ng-click="removeImage(image.Id)">
<pr-icon icon="'trash-2'" feather="true"></pr-icon> Delete this image
<pr-icon icon="'trash-2'"></pr-icon> Delete this image
</button>
<button
authorization="DockerImageGet"
@ -116,7 +116,7 @@
button-spinner="$ctrl.exportInProgress"
ng-disabled="state.exportInProgress"
>
<pr-icon icon="'download'" feather="true"></pr-icon>
<pr-icon icon="'download'"></pr-icon>
<span ng-hide="state.exportInProgress">Export this image</span>
<span ng-show="state.exportInProgress">Export in progress...</span>
</button>
@ -167,7 +167,7 @@
<div class="row" ng-if="history.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Image layers"></rd-widget-header>
<rd-widget-header icon="list" title-text="Image layers"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table id="image-layers" class="table">
<thead>
@ -216,7 +216,7 @@
{{ layer.CreatedBy | imagelayercommand | truncate: 130 }}
<span ng-if="layer.CreatedBy.length > 130" class="ml-1">
<a id="layer-command-expander{{ $index }}" class="btn" ng-click="toggleLayerCommand($index)">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon>
<pr-icon icon="'plus'" mode="'alt'"></pr-icon>
</a>
</span>
</span>

View File

@ -3,7 +3,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="download" feather-icon="true" title-text="Pull image "> </rd-widget-header>
<rd-widget-header icon="download" title-text="Pull image "> </rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- image-and-registry -->

View File

@ -15,7 +15,7 @@
<button type="button" class="btn btn-sm btn-primary" ngf-select ngf-min-size="10" ng-model="formValues.UploadFile">Select file</button>
<span class="ml-1">
{{ formValues.UploadFile.name }}
<pr-icon icon="'x'" mode="'danger'" feather="true" ng-if="!formValues.UploadFile"></pr-icon>
<pr-icon icon="'x'" mode="'danger'" ng-if="!formValues.UploadFile"></pr-icon>
</span>
</div>
</div>
@ -29,7 +29,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="'true'" title-text="Tag the image"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Tag the image"></rd-widget-header>
<rd-widget-body>
<!-- image-and-registry -->
<por-image-registry

View File

@ -45,14 +45,12 @@
<input type="text" class="form-control" ng-model="option.value" placeholder="e.g. true" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeDriverOption($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>
</div>
<div class="small interactive text-muted vertical-center mt-1" ng-click="addDriverOption()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add driver option
</div>
<div class="small interactive text-muted vertical-center mt-1" ng-click="addDriverOption()"> <pr-icon icon="'plus'" size="'md'"></pr-icon> Add driver option </div>
</div>
<!-- !driver-options-input-list -->
</div>
@ -94,16 +92,16 @@
/>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeIPV4AuxAddress($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
<div class="col-sm-12 small text-warning" ng-if="state.IPV4AuxiliaryAddressesError[$index]">
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Exclude ip cannot be the same as gateway.</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Exclude ip cannot be the same as gateway.</p>
</div>
</div>
<!-- !iprange-auxaddr-inputs -->
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center" ng-click="addIPV4AuxAddress()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add excluded IP
<pr-icon icon="'plus'" size="'md'"></pr-icon> Add excluded IP
</div>
</div>
</div>
@ -141,16 +139,16 @@
/>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeIPV6AuxAddress($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
<div class="col-sm-12 small text-warning" ng-show="state.IPV6AuxiliaryAddressesError[$index]">
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Exclude ip cannot be the same as gateway.</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Exclude ip cannot be the same as gateway.</p>
</div>
</div>
<!-- !iprange-auxaddr-inputs -->
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center" ng-click="addIPV6AuxAddress()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add excluded IP
<pr-icon icon="'plus'" size="'md'"></pr-icon> Add excluded IP
</div>
</div>
</div>
@ -168,14 +166,12 @@
<span class="input-group-addon">value</span>
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)"> <pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon> </button
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)"> <pr-icon icon="'trash-2'" size="'md'"></pr-icon> </button
></span>
</div>
</div>
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center mt-1" ng-click="addLabel()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add label
</div>
<div class="col-sm-12 small interactive text-muted vertical-center mt-1" ng-click="addLabel()"> <pr-icon icon="'plus'" size="'md'"></pr-icon> Add label </div>
</div>
</div>
<!-- !labels-input-list -->

View File

@ -38,9 +38,7 @@
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<span class="label label-default interactive vertical-center space-left" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive vertical-center space-left" ng-click="addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline mt-2">
@ -54,7 +52,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View File

@ -3,7 +3,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="lock" feather-icon="true" title-text="Secret details"></rd-widget-header>
<rd-widget-header icon="lock" title-text="Secret details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -16,7 +16,7 @@
<td>
{{ secret.Id }}
<button authorization="DockerSecretDelete" class="btn btn-xs btn-dangerlight" ng-click="removeSecret(secret.Id)"
><pr-icon icon="'trash-2'" feather="true"></pr-icon>Delete this secret</button
><pr-icon icon="'trash-2'"></pr-icon>Delete this secret</button
>
</td>
</tr>

View File

@ -51,7 +51,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Port mapping</label>
<span class="label label-default interactive vertical-center" style="margin-left: 10px" ng-click="addPortBinding()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional port
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional port
</span>
</div>
<div class="col-sm-12 form-inline mt-2">
@ -63,7 +63,7 @@
</div>
<!-- !host-port -->
<span style="margin: 0 10px 0 10px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</span>
<!-- container-port -->
<div class="input-group col-sm-3 input-group-sm">
@ -82,7 +82,7 @@
<label class="btn btn-light" ng-model="portBinding.PublishMode" uib-btn-radio="'host'">Host</label>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removePortBinding($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
<!-- !protocol-actions -->
@ -218,7 +218,7 @@
style="margin-left: 10px"
ng-click="!formValues.LogDriverName || formValues.LogDriverName === 'none' || addLogDriverOpt(formValues.LogDriverName)"
>
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add logging driver option
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add logging driver option
</span>
</div>
<!-- logging-opts-input-list -->
@ -233,7 +233,7 @@
<input type="text" class="form-control" ng-model="opt.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeLogDriverOpt($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -251,7 +251,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Volume mapping</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addVolume()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional volume
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional volume
</span>
</div>
<!-- volumes-input-list -->
@ -266,9 +266,7 @@
<span class="input-group-addon">container</span>
<input type="text" class="form-control" ng-model="volume.Target" placeholder="e.g. /path/in/container" />
</div>
<div class="small text-warning" ng-show="!volume.Target">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Target is required.
</div>
<div class="small text-warning" ng-show="!volume.Target"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Target is required. </div>
</div>
<!-- !container-path -->
<!-- volume-type -->
@ -278,7 +276,7 @@
<label class="btn btn-light" ng-model="volume.Type" uib-btn-radio="'bind'" ng-click="volume.Source = null">Bind</label>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeVolume($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
<!-- !volume-type -->
@ -287,7 +285,7 @@
<!-- volume-line2 -->
<div class="col-sm-12 form-inline" style="margin-top: 5px">
<div style="height: 30px; display: inline-block; vertical-align: top; display: inline-flex; align-items: center">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</div>
<!-- volume -->
<div class="col-sm-6 input-group" ng-if="volume.Type === 'volume'" style="float: none; padding: 0">
@ -301,9 +299,7 @@
<option selected disabled value="">Select a volume</option>
</select>
</div>
<div class="small text-warning" ng-show="!volume.Source">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
</div>
<div class="small text-warning" ng-show="!volume.Source"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Source is required. </div>
</div>
<!-- !volume -->
<!-- bind -->
@ -312,9 +308,7 @@
<span class="input-group-addon">host</span>
<input type="text" class="form-control" ng-model="volume.Source" placeholder="e.g. /path/on/host" />
</div>
<div class="small text-warning" ng-show="!volume.Source">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
</div>
<div class="small text-warning" ng-show="!volume.Source"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Source is required. </div>
</div>
<!-- !bind -->
<!-- read-only -->
@ -356,7 +350,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Extra networks</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addExtraNetwork()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add extra network
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add extra network
</span>
</div>
<!-- network-input-list -->
@ -367,7 +361,7 @@
<option ng-repeat="net in availableNetworks" ng-value="net.Name">{{ net.Name }}</option>
</select>
<button class="btn btn-dangerlight" type="button" ng-click="removeExtraNetwork($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -379,7 +373,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Hosts file entries</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addHostsEntry()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional entry
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional entry
</span>
</div>
<!-- hosts-input-list -->
@ -390,7 +384,7 @@
<input type="text" class="form-control" ng-model="variable.value" placeholder="e.g. host:IP" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeHostsEntry($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -417,7 +411,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Service labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add service label
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add service label
</span>
</div>
<!-- labels-input-list -->
@ -432,7 +426,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -444,7 +438,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Container labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addContainerLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add container label
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add container label
</span>
</div>
<!-- container-labels-input-list -->
@ -459,7 +453,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeContainerLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

View File

@ -2,14 +2,12 @@
<div class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Configs</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addConfig()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add a config
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addConfig()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add a config </span>
</div>
<!-- info message -->
<div class="form-group" ng-show="formValues.Configs.$invalid" style="margin-bottom: 0px">
<div class="col-sm-12 small text-warning" style="padding-left: 35px; padding-top: 20px">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> {{ formValues.Configs.$error }}
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> {{ formValues.Configs.$error }}
</div>
</div>
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -25,7 +23,7 @@
<input class="form-control" ng-model="config.FileName" placeholder="e.g. /path/in/container" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeConfig($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More