Compare commits
532 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8450d1931d | |||
| 4e74c97c84 | |||
| 71a46c9bd6 | |||
| 9fa38b70c8 | |||
| 470172f53f | |||
| 81261d9e36 | |||
| b773d576ea | |||
| 23feb64b5a | |||
| b1ef3f51cb | |||
| e1b6488f8e | |||
| a472dede2b | |||
| 263cc3f7a1 | |||
| 8947b667ae | |||
| 6b41796d44 | |||
| 6efe8eb55b | |||
| 4cb5bb1855 | |||
| eb007e025a | |||
| 2ec540bd36 | |||
| 1374ec408a | |||
| a1e6f01fe9 | |||
| 7de25a1c37 | |||
| 78da89340c | |||
| 57b49fc31c | |||
| a7ff2595a5 | |||
| 1edea6abef | |||
| 3339d1999f | |||
| df3e8ec0f3 | |||
| 2dbec867d9 | |||
| b91d23023d | |||
| cc234c60b8 | |||
| f1883c8004 | |||
| 79f6ddc8ee | |||
| 89f439a18d | |||
| 79eb5bfad9 | |||
| 3a36b7dafd | |||
| 1fe2fd9891 | |||
| 5fdb999ece | |||
| 5a38d9c2b6 | |||
| b1c7dc6cbb | |||
| b21b2ac41c | |||
| 1396c597ef | |||
| 46af72ee4e | |||
| e3e8f553c8 | |||
| 549928d3d1 | |||
| abefec9628 | |||
| b483eeded4 | |||
| 3ff516180d | |||
| c0a99d6b52 | |||
| cba090f8eb | |||
| 0d6baa1081 | |||
| 85a208526b | |||
| cd266a6bef | |||
| 3c81257325 | |||
| 24bb45ab97 | |||
| d5ef7f3204 | |||
| b0f5fe7e25 | |||
| c675bb7252 | |||
| 143a091f45 | |||
| 8fefc11b4d | |||
| 9188fb03f0 | |||
| 607eb6ca03 | |||
| 44ef39e419 | |||
| 0ea9c0647f | |||
| 884d2a9552 | |||
| 14e43192e6 | |||
| b9f4dc1e9d | |||
| b082fb6692 | |||
| 0c1b2a54e7 | |||
| 85e16ecd51 | |||
| e40c532354 | |||
| 55b324d8d6 | |||
| 3152d9eadd | |||
| e70f1408aa | |||
| a384245368 | |||
| 9334b8df47 | |||
| e0bc2ae86f | |||
| 2f019bb033 | |||
| 75c83236ff | |||
| 4ddee4ac40 | |||
| 6b693e2644 | |||
| 72cf921a4b | |||
| 32882f81e7 | |||
| 36f5099932 | |||
| 4dc3c30354 | |||
| 397cc1754a | |||
| 62a58fa23b | |||
| c67ca500db | |||
| 0081e7b731 | |||
| 4e6483d3ed | |||
| 0ddf0002c4 | |||
| ad0daf33b9 | |||
| 0b60c6a939 | |||
| 925d48640d | |||
| 028b4e7b79 | |||
| 625a46a2c2 | |||
| ebc1e27c22 | |||
| 357e85d358 | |||
| 75cfcb83aa | |||
| 63a4d1ad33 | |||
| f04d6f37e5 | |||
| 469069b471 | |||
| 9bca5912d9 | |||
| 23756ba1c7 | |||
| 07227887f6 | |||
| 13d3b103f1 | |||
| 4bdfd0e115 | |||
| 786b20708e | |||
| 0e957cad84 | |||
| 85c728f313 | |||
| ba3fb8cd66 | |||
| d9fb7dc754 | |||
| 2249dad9d7 | |||
| 5c4fa630ae | |||
| ede74ad24e | |||
| 27542a8f91 | |||
| 5dc07b94aa | |||
| d7acf721ae | |||
| eff5232828 | |||
| 3eb29b1cdb | |||
| c9961f63b4 | |||
| 09e843a800 | |||
| 77b79dbd95 | |||
| dafc6c5136 | |||
| c790147a5c | |||
| 80c39c5ef3 | |||
| 9a3e84d84c | |||
| 643960c829 | |||
| 1737018325 | |||
| 484d5ba76e | |||
| 798685d0b8 | |||
| cb7654ae90 | |||
| 00c394345a | |||
| dffcb62fa1 | |||
| 8c668b72b7 | |||
| b54ecd4da0 | |||
| 87a7e3501b | |||
| daefec3013 | |||
| 183a9742c4 | |||
| 04b83f8176 | |||
| 335ab3f064 | |||
| 7dd493da35 | |||
| 560bd6da92 | |||
| a5824ccc5f | |||
| 830a7964a4 | |||
| b1359c3277 | |||
| 0ba8f5cc5a | |||
| 6fb9e2c38e | |||
| eebc2ab8be | |||
| b65b3151ee | |||
| 1d24b7985b | |||
| 526bb2c650 | |||
| c450c0ddb8 | |||
| 13a0f49f5f | |||
| 199eefafa1 | |||
| c5b58f9ecc | |||
| 6b68fe4de6 | |||
| 3461bbfdb3 | |||
| 51f6927076 | |||
| 1d88cf443f | |||
| 7b6c0c3a40 | |||
| fdb0651bf4 | |||
| c39d484611 | |||
| c42996429f | |||
| a091baf5a6 | |||
| 00a17cd55e | |||
| 643d44af22 | |||
| b934f43db0 | |||
| f39afe5a65 | |||
| 7612ee6b08 | |||
| 2ed2b0101a | |||
| 5ca9d31964 | |||
| 2fcd8cd261 | |||
| 0ffa47a2c6 | |||
| e203d4dee3 | |||
| b47d773e13 | |||
| a8d0a4a95d | |||
| 3fb0804cef | |||
| 6811ebcd52 | |||
| 4fe7bfb851 | |||
| fb60985d03 | |||
| 8f575923cf | |||
| 0ecfd02649 | |||
| 420aaf4f61 | |||
| 0c35f213e1 | |||
| f68813af13 | |||
| 37a90d0ce9 | |||
| 02f1291e8f | |||
| 92e4f6b5d9 | |||
| 7b7738fbcc | |||
| 31197604a3 | |||
| e33b1b6c90 | |||
| 30520297e8 | |||
| 78ca1d1335 | |||
| 6159ee8c2c | |||
| 5cd5392958 | |||
| 0dcdfc5d14 | |||
| d0e068f1c0 | |||
| f42a2d7457 | |||
| d29619b67c | |||
| f5235cb835 | |||
| ee830e0cb4 | |||
| 0cd3be003d | |||
| c93e35ec77 | |||
| 9538a76232 | |||
| 05876bb124 | |||
| 8bcd5a6d2a | |||
| a36afbcb25 | |||
| ebd8d085cf | |||
| 505148b024 | |||
| 3eefeec4ce | |||
| b61419c1ce | |||
| f590fcffbc | |||
| e87e924ac2 | |||
| 90f261bab6 | |||
| f7dfb09a4d | |||
| 3135917127 | |||
| 52afa3d36d | |||
| 242aa60e04 | |||
| 7a3c2c27ff | |||
| 5d124360c2 | |||
| 365d7448d5 | |||
| 9a0102c723 | |||
| 2f77f2cb2b | |||
| 528e3a2106 | |||
| 032a664d4c | |||
| aac1864c9b | |||
| e3477f3306 | |||
| 6620a4f87b | |||
| c0e9dff5bf | |||
| 2d961c435a | |||
| 7c95f03166 | |||
| 31e5c13b50 | |||
| 4a9fe4f981 | |||
| 4fcc5587ee | |||
| 6ca49a20ce | |||
| 28f293fdc1 | |||
| b3e7619adc | |||
| 6e56d56137 | |||
| 2528f6a07b | |||
| 423d07c919 | |||
| cc608de4bf | |||
| f999a68608 | |||
| db78a9f18f | |||
| 816039f48e | |||
| ae240bae6d | |||
| 9e30c69e6d | |||
| 43c7de9049 | |||
| 7e51c5db81 | |||
| 0ee3c45e7b | |||
| 981e69929c | |||
| 1eae5d12fc | |||
| 8863208333 | |||
| 5f38a74a72 | |||
| fe15dacb1f | |||
| c2d44cf2f2 | |||
| 7f1bdb6f34 | |||
| 7cdfaa93ec | |||
| 59ccc70303 | |||
| f1584b722d | |||
| b0305e12d2 | |||
| 4d8c5a86a4 | |||
| 58f76b5c99 | |||
| 7c4ee632cf | |||
| b6b0f716eb | |||
| bd0e04ed15 | |||
| 8599981d44 | |||
| 6fc6e95c67 | |||
| 43b585bde8 | |||
| 710f89291f | |||
| 5f835aa009 | |||
| d5ca543719 | |||
| 4c6249eb9e | |||
| 016900bad8 | |||
| 2e8ae33761 | |||
| 0d325060da | |||
| 1a6e98e18f | |||
| 97e34595f6 | |||
| a179d5234b | |||
| 64c6121fdb | |||
| 08d8954a85 | |||
| 4f20955d0d | |||
| 3a703c8bcf | |||
| ccbffa086b | |||
| 07ee4be840 | |||
| 4cc9b2d312 | |||
| 24dddae1d1 | |||
| ad0165d085 | |||
| 39dc38c5d1 | |||
| 046ce19dbb | |||
| 33263f5a93 | |||
| 8ef8e76300 | |||
| 73cfdae9e7 | |||
| 54a3e41281 | |||
| d59ba6da84 | |||
| 1b28b06934 | |||
| ff3e69a56c | |||
| 6b975a5fb4 | |||
| 3a02b15124 | |||
| 5f73d81935 | |||
| 002b5c0f6f | |||
| 8086842570 | |||
| 51f2d5a664 | |||
| db63ad1cf4 | |||
| b74b76de75 | |||
| a1b1498106 | |||
| 1158851ea7 | |||
| e1ab9e959e | |||
| 2bbac3ae9d | |||
| e889b1d5e5 | |||
| 233bf856f4 | |||
| bca843e06c | |||
| 30a79a1278 | |||
| 0f92dee2c4 | |||
| f04efede15 | |||
| f0dfdf6720 | |||
| e26d731382 | |||
| d684d3e559 | |||
| 47c54cb998 | |||
| 592cb2b3ec | |||
| f5a7871a2e | |||
| ec411fa0db | |||
| 5da79cd5ca | |||
| a850a9bb83 | |||
| 13c971b171 | |||
| 1cee7e43ed | |||
| 5e81c63d6e | |||
| 479b7a3f94 | |||
| f7cfee77c9 | |||
| 65a8126a13 | |||
| a39bc102d5 | |||
| 81d930c4d2 | |||
| 6839623061 | |||
| 7de2809d42 | |||
| 98ec6b6886 | |||
| 04827f00cc | |||
| 660bfc6578 | |||
| 1152cd5537 | |||
| 17456482d6 | |||
| a0431e1912 | |||
| f30e8497b2 | |||
| 06495bc45d | |||
| 26067916b3 | |||
| c36ee4852b | |||
| 2cb992ad44 | |||
| ee5aac8008 | |||
| 083b7be6c0 | |||
| e24854558f | |||
| e4314cf426 | |||
| 4106e4e45c | |||
| 05f143db2b | |||
| 64aeaeeeea | |||
| 61db37ab0d | |||
| f9c4d921e7 | |||
| ca099df573 | |||
| 28b584b8bc | |||
| 70449e694d | |||
| 8395ea552d | |||
| dc66452633 | |||
| 53ce44ac91 | |||
| c7c3243bbc | |||
| 8bdd77d33d | |||
| acd7d0db3a | |||
| 2bfadb8a3c | |||
| 0912e4af7b | |||
| 5aa5c48018 | |||
| 8cdd998f79 | |||
| 050d4d6b25 | |||
| 366cd11238 | |||
| 58d6443331 | |||
| 101b8afb56 | |||
| 5df5c47945 | |||
| a04740ba86 | |||
| 425ad93ac5 | |||
| 8a44144c20 | |||
| ee82c70582 | |||
| c87e8e606b | |||
| 37a50dd953 | |||
| a2669a3084 | |||
| 77da22f4dd | |||
| 7830ffe202 | |||
| 1c9e20d59f | |||
| 320edac286 | |||
| d49878371d | |||
| d2575a5d9b | |||
| ea6cf72580 | |||
| 2118155b37 | |||
| ba4f5bb71f | |||
| d5a74a5a8b | |||
| 23be1df360 | |||
| b5c1a1da4c | |||
| c11e784f51 | |||
| 06f51c8f9c | |||
| 181bcbbda6 | |||
| d008ead6a4 | |||
| 75924be958 | |||
| b1a6e3f8a2 | |||
| 06712a6041 | |||
| 62b16339a9 | |||
| 9a2f1a36ba | |||
| 95cc4d3a73 | |||
| 497eeeb2e0 | |||
| 4be21ca249 | |||
| e8598e214e | |||
| 54b1d65e3c | |||
| f7648496d3 | |||
| 59a57c7197 | |||
| 5659b26827 | |||
| ee4443aaf0 | |||
| 839dcad358 | |||
| d67933ab49 | |||
| 0eb3f6b952 | |||
| 68b0f80fce | |||
| 93489529a3 | |||
| 511be74e74 | |||
| bdee067803 | |||
| 32156cace3 | |||
| 30688114be | |||
| 34088bcc17 | |||
| 07835766cc | |||
| 251851ec6a | |||
| 049a669186 | |||
| d29f13bae9 | |||
| c758355df9 | |||
| 79d97a83af | |||
| 85bd47c240 | |||
| 473ead9616 | |||
| cf2850933c | |||
| ff2564c57a | |||
| 91d3848246 | |||
| c031f0b45e | |||
| fdbb9568ae | |||
| d817883459 | |||
| 12255979ac | |||
| 366b61850b | |||
| 89be6bd183 | |||
| e120331a2c | |||
| cb8a212d96 | |||
| 7aec431ac5 | |||
| d19681dea1 | |||
| bf2299daf8 | |||
| 164930d0dd | |||
| 387dbac809 | |||
| 3b661e5a99 | |||
| 90c1c0e655 | |||
| 21d8e7695b | |||
| 1acc452cfe | |||
| 1375e1feee | |||
| 2187adf59a | |||
| 0dcb315d9d | |||
| 327ccbd0c9 | |||
| f571d400e6 | |||
| 293aa52335 | |||
| ca178ae9a7 | |||
| d0c810e418 | |||
| d496d2caeb | |||
| e70b75c350 | |||
| a50befeda5 | |||
| e2616e8039 | |||
| 904266debe | |||
| 72d5783795 | |||
| d699fb1473 | |||
| fab1a6c33a | |||
| be73c30194 | |||
| 451646fe4f | |||
| decc919991 | |||
| e0b4005921 | |||
| 3ef36e7534 | |||
| 1949e1e1e9 | |||
| 3358382358 | |||
| 3eca3ecd75 | |||
| 140c6b91b0 | |||
| a5315ec240 | |||
| 93f1656e0b | |||
| f1d006c236 | |||
| b0b5a96694 | |||
| 7dbe9a85f4 | |||
| d2c39528d5 | |||
| 0420543c94 | |||
| aae0db902b | |||
| 88dae7cef7 | |||
| e5cb17e934 | |||
| 9d609805f2 | |||
| e2b9ca8254 | |||
| e16a2fe8af | |||
| 22d61a533d | |||
| af408bb45f | |||
| 24bfbc06f0 | |||
| 5eb9f353b5 | |||
| 473ce15f47 | |||
| eb9cfbaed6 | |||
| faeb037ff9 | |||
| 07602f697d | |||
| 11abb0fdb1 | |||
| deeb2fa543 | |||
| ef8d5ff11e | |||
| 91f3e07b83 | |||
| c29bdbdacb | |||
| a20d104d2f | |||
| a61dd8ac17 | |||
| 7ee9a690ea | |||
| 5ba94c6c41 | |||
| 9fa855c837 | |||
| 9251007574 | |||
| cc73b984cb | |||
| 548ef97c32 | |||
| ed8a486726 | |||
| 1ab0911fc8 | |||
| bdbaea7294 | |||
| 5cfd1f6fb2 | |||
| 5eda67381f | |||
| 2c8b8bfaf2 | |||
| 8f3159751a | |||
| 4b05e55b29 | |||
| 3d3c13fcd0 | |||
| 88e1d8a8cf | |||
| e007db34e2 | |||
| f9f06d2c02 | |||
| 234f7d00c8 | |||
| 9924553da5 | |||
| df38d7e3ed | |||
| 44dd061619 | |||
| 7603a932b1 | |||
| 138e7acc13 | |||
| e863d3e7e5 | |||
| c8e401f5ed | |||
| 3ba20a8e28 | |||
| ebae63752f | |||
| 8bc73901cf | |||
| b4f70d9244 | |||
| 21e9f2bba3 | |||
| 881f4e3d6a | |||
| b141945add |
@@ -23,7 +23,23 @@ body:
|
||||
attributes:
|
||||
label: Snipe-IT Version
|
||||
description: What version of Snipe-IT are you seeing this issue on? You can find the version number in the footer of any page in Snipe-IT.
|
||||
placeholder: ex. v8.3.1 - build 19577 (master)
|
||||
placeholder: ex. v8.3.2 - build 19577 (master)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: php-version
|
||||
attributes:
|
||||
label: PHP Version
|
||||
description: What version of PHP are you running? You can find the version of PHP your webserver is running in the `Admin Settings` section in the footer, and the cli version by running `php -v` via command line .
|
||||
placeholder: ex. v8.3.1 (web), PHP 8.4.12 (cli)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: composer-version
|
||||
attributes:
|
||||
label: Composer Version
|
||||
description: What version of composer are you running? You can find the version number by running `composer --version`.
|
||||
placeholder: ex. 2.8.10
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
@@ -48,6 +64,16 @@ body:
|
||||
- Not sure
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: upgrade-or-fresh
|
||||
attributes:
|
||||
label: Is this a fresh install or an upgrade?
|
||||
options:
|
||||
- Fresh install
|
||||
- Upgrade
|
||||
- NA
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
@@ -67,6 +93,38 @@ body:
|
||||
- Safari
|
||||
- Microsoft Edge
|
||||
- Other
|
||||
- type: dropdown
|
||||
id: on-demo
|
||||
attributes:
|
||||
label: Can you reproduce this on the public demo?
|
||||
description: You can check this at https://demo.snipeitapp.com.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
- N/A
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: fmcs
|
||||
attributes:
|
||||
label: Do you have full multiple company support enabled?
|
||||
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: fmcs-location
|
||||
attributes:
|
||||
label: If you have full multiple company support enabled, do you have location scoping to company enabled?
|
||||
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
- I do not have full multiple company support enabled
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: server-logs
|
||||
attributes:
|
||||
|
||||
@@ -30,10 +30,10 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
|
||||
@@ -52,6 +52,6 @@ jobs:
|
||||
|
||||
# Upload the SARIF file generated in the previous step
|
||||
- name: Upload SARIF results file
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
uses: github/codeql-action/upload-sarif@v4
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Categories;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssetModels;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Category;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DestroyCategoryAction
|
||||
{
|
||||
/**
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasAssetModels
|
||||
* @throws ItemStillHasComponents
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasConsumables
|
||||
*/
|
||||
static function run(Category $category): bool
|
||||
{
|
||||
$category->loadCount([
|
||||
'assets as assets_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
'licenses as licenses_count',
|
||||
'models as models_count'
|
||||
]);
|
||||
|
||||
if ($category->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($category);
|
||||
}
|
||||
if ($category->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($category);
|
||||
}
|
||||
if ($category->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($category);
|
||||
}
|
||||
if ($category->components_count > 0) {
|
||||
throw new ItemStillHasComponents($category);
|
||||
}
|
||||
if ($category->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($category);
|
||||
}
|
||||
if ($category->models_count > 0) {
|
||||
throw new ItemStillHasAssetModels($category);
|
||||
}
|
||||
|
||||
Storage::disk('public')->delete('categories'.'/'.$category->image);
|
||||
$category->delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Manufacturers;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Manufacturer;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DeleteManufacturerAction
|
||||
{
|
||||
/**
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasComponents
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasConsumables
|
||||
*/
|
||||
static function run(Manufacturer $manufacturer): bool
|
||||
{
|
||||
$manufacturer->loadCount([
|
||||
'assets as assets_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
'licenses as licenses_count',
|
||||
]);
|
||||
|
||||
if ($manufacturer->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($manufacturer);
|
||||
}
|
||||
if ($manufacturer->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($manufacturer);
|
||||
}
|
||||
if ($manufacturer->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($manufacturer);
|
||||
}
|
||||
if ($manufacturer->components_count > 0) {
|
||||
throw new ItemStillHasComponents($manufacturer);
|
||||
}
|
||||
if ($manufacturer->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($manufacturer);
|
||||
}
|
||||
|
||||
if ($manufacturer->image) {
|
||||
try {
|
||||
Storage::disk('public')->delete('manufacturers/'.$manufacturer->image);
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e);
|
||||
}
|
||||
}
|
||||
|
||||
$manufacturer->delete();
|
||||
//dd($manufacturer);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Suppliers;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Models\Supplier;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasMaintenances;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DestroySupplierAction
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasMaintenances
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasConsumables
|
||||
* @throws ItemStillHasComponents
|
||||
*/
|
||||
static function run(Supplier $supplier): bool
|
||||
{
|
||||
$supplier->loadCount([
|
||||
'maintenances as maintenances_count',
|
||||
'assets as assets_count',
|
||||
'licenses as licenses_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
]);
|
||||
if ($supplier->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->maintenances_count > 0) {
|
||||
throw new ItemStillHasMaintenances($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->components_count > 0) {
|
||||
throw new ItemStillHasComponents($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->image) {
|
||||
try {
|
||||
Storage::disk('public')->delete('suppliers/'.$supplier->image);
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$supplier->delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -317,9 +317,21 @@ class LdapSync extends Command
|
||||
if($ldap_map["jobtitle"] != null){
|
||||
$user->jobtitle = $item['jobtitle'];
|
||||
}
|
||||
if($ldap_map["address"] != null){
|
||||
$user->address = $item['address'];
|
||||
}
|
||||
if($ldap_map["city"] != null){
|
||||
$user->city = $item['city'];
|
||||
}
|
||||
if($ldap_map["state"] != null){
|
||||
$user->state = $item['state'];
|
||||
}
|
||||
if($ldap_map["country"] != null){
|
||||
$user->country = $item['country'];
|
||||
}
|
||||
if($ldap_map["zip"] != null){
|
||||
$user->zip = $item['zip'];
|
||||
}
|
||||
if($ldap_map["dept"] != null){
|
||||
$user->department_id = $department->id;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ class SendExpirationAlerts extends Command
|
||||
trans('general.name') => $item->name,
|
||||
trans('general.purchase_date') => $item->purchase_date_formatted,
|
||||
trans('admin/licenses/form.expiration') => $item->expires_formatted_date,
|
||||
trans('mail.expires') => $item->expires_diff_for_humans,
|
||||
trans('mail.expires') => $item->expires_formatted_date ? $item->expires_diff_for_humans : '',
|
||||
trans('admin/licenses/form.termination_date') => $item->terminates_formatted_date,
|
||||
trans('mail.terminates') => $item->terminates_diff_for_humans
|
||||
])
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAccessories extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAssetModels extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAssets extends ItemStillHasChildren
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasChildren extends Exception
|
||||
{
|
||||
//public function __construct($message, $code = 0, Exception $previous = null, $parent, $children)
|
||||
//{
|
||||
// trans()
|
||||
//
|
||||
//}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasComponents extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasConsumables extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasLicenses extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasMaintenances extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -195,6 +195,10 @@ class IconHelper
|
||||
case 'note':
|
||||
case 'notes':
|
||||
return 'fas fa-sticky-note';
|
||||
case 'tip':
|
||||
return 'fa-solid fa-lightbulb';
|
||||
case 'highlight':
|
||||
return 'fa-solid fa-highlighter';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ class AssetsController extends Controller
|
||||
// Search custom fields by column name
|
||||
foreach ($all_custom_fields as $field) {
|
||||
if ($request->filled($field->db_column_name()) && $field->db_column_name()) {
|
||||
$assets->where($field->db_column_name(), '=', $request->input($field->db_column_name()));
|
||||
$assets->where('assets.'.$field->db_column_name(), '=', $request->input($field->db_column_name()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Actions\Categories\DestroyCategoryAction;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Transformers\CategoriesTransformer;
|
||||
@@ -224,17 +226,21 @@ class CategoriesController extends Controller
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
public function destroy(Category $category): JsonResponse
|
||||
{
|
||||
$this->authorize('delete', Category::class);
|
||||
$category = Category::withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count', 'models as models_count')->findOrFail($id);
|
||||
|
||||
if (! $category->isDeletable()) {
|
||||
try {
|
||||
DestroyCategoryAction::run(category: $category);
|
||||
} catch (ItemStillHasChildren $e) {
|
||||
return response()->json(
|
||||
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.assoc_items', ['asset_type'=>$category->category_type]))
|
||||
Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.general_assoc_warning', ['asset_type' => $category->category_type]))
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return response()->json(
|
||||
Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong'))
|
||||
);
|
||||
}
|
||||
$category->delete();
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/categories/message.delete.success')));
|
||||
}
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Actions\Manufacturers\DeleteManufacturerAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Transformers\ManufacturersTransformer;
|
||||
@@ -184,19 +191,19 @@ class ManufacturersController extends Controller
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
public function destroy(Manufacturer $manufacturer): JsonResponse
|
||||
{
|
||||
$this->authorize('delete', Manufacturer::class);
|
||||
$manufacturer = Manufacturer::findOrFail($id);
|
||||
$this->authorize('delete', $manufacturer);
|
||||
|
||||
if ($manufacturer->isDeletable()) {
|
||||
$manufacturer->delete();
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/manufacturers/message.delete.success')));
|
||||
try {
|
||||
DeleteManufacturerAction::run($manufacturer);
|
||||
} catch (ItemStillHasChildren $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.general_assoc_warning', ['item' => trans('general.manufacturer')])));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong')));
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/manufacturers/message.assoc_users')));
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/manufacturers/message.delete.success')));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Actions\Suppliers\DestroySupplierAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasMaintenances;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Transformers\SelectlistTransformer;
|
||||
@@ -191,27 +198,40 @@ class SuppliersController extends Controller
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
public function destroy(Supplier $supplier): JsonResponse
|
||||
{
|
||||
$this->authorize('delete', Supplier::class);
|
||||
$supplier = Supplier::with('maintenances', 'assets', 'licenses')->withCount('maintenances as maintenances_count', 'assets as assets_count', 'licenses as licenses_count')->findOrFail($id);
|
||||
$this->authorize('delete', $supplier);
|
||||
|
||||
|
||||
if ($supplier->assets_count > 0) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/suppliers/message.delete.assoc_assets', ['asset_count' => (int) $supplier->assets_count])));
|
||||
try {
|
||||
DestroySupplierAction::run(supplier: $supplier);
|
||||
} catch (ItemStillHasAssets $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_assets', [
|
||||
'asset_count' => (int) $supplier->assets_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (ItemStillHasMaintenances $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_maintenances', [
|
||||
'asset_maintenances_count' => $supplier->asset_maintenances_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (ItemStillHasLicenses $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_licenses', [
|
||||
'licenses_count' => (int) $supplier->licenses_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (ItemStillHasAccessories $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_accessories', [
|
||||
'accessories_count' => (int) $supplier->accessories_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (ItemStillHasConsumables $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_consumables', [
|
||||
'consumables_count' => (int) $supplier->consumables_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (ItemStillHasComponents $e) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.assoc_components', [
|
||||
'components_count' => (int) $supplier->components_count, 'item' => trans('general.supplier')
|
||||
])));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong')));
|
||||
}
|
||||
|
||||
if ($supplier->maintenances_count > 0) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/suppliers/message.delete.assoc_maintenances', ['maintenances_count' => $supplier->maintenances_count])));
|
||||
}
|
||||
|
||||
if ($supplier->licenses_count > 0) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/suppliers/message.delete.assoc_licenses', ['licenses_count' => (int) $supplier->licenses_count])));
|
||||
}
|
||||
|
||||
$supplier->delete();
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/suppliers/message.delete.success')));
|
||||
}
|
||||
|
||||
|
||||
@@ -51,14 +51,21 @@ class UploadedFilesController extends Controller
|
||||
];
|
||||
|
||||
|
||||
$uploads = self::$map_object_type[$object_type]::withTrashed()->find($id)->uploads()
|
||||
->with('adminuser');
|
||||
if (($request->filled('action_type') && ($request->input('action_type') == 'audit'))) {
|
||||
$uploads = self::$map_object_type[$object_type]::withTrashed()->find($id)->audits()
|
||||
->with('adminuser');
|
||||
} else {
|
||||
$uploads = self::$map_object_type[$object_type]::withTrashed()->find($id)->uploads()
|
||||
->with('adminuser');
|
||||
}
|
||||
|
||||
|
||||
$offset = ($request->input('offset') > $uploads->count()) ? $uploads->count() : abs($request->input('offset'));
|
||||
$limit = app('api_limit_value');
|
||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
||||
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
|
||||
|
||||
|
||||
// Text search on action_logs fields
|
||||
// We could use the normal Actionlogs text scope, but it's a very heavy query since it's searching across all relations
|
||||
// and we generally won't need that here
|
||||
|
||||
@@ -240,10 +240,6 @@ class BulkAssetsController extends Controller
|
||||
$custom_fields_to_null[str_replace('null', '', $key)] = $value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (! $request->filled('ids') || count($request->input('ids')) == 0) {
|
||||
return redirect($bulk_back_url)->with('error', trans('admin/hardware/message.update.no_assets_selected'));
|
||||
@@ -274,6 +270,7 @@ class BulkAssetsController extends Controller
|
||||
|| ($request->filled('company_id'))
|
||||
|| ($request->filled('status_id'))
|
||||
|| ($request->filled('model_id'))
|
||||
|| ($request->filled('notes'))
|
||||
|| ($request->filled('next_audit_date'))
|
||||
|| ($request->filled('asset_eol_date'))
|
||||
|| ($request->filled('null_name'))
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Categories\DestroyCategoryAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssetModels;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Category;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BulkCategoriesController extends Controller
|
||||
{
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
$this->authorize('delete', Category::class);
|
||||
|
||||
$errors = [];
|
||||
$success_count = 0;
|
||||
|
||||
foreach ($request->ids as $id) {
|
||||
$category = Category::find($id);
|
||||
if (is_null($category)) {
|
||||
$errors[] = trans('admin/categories/message.does_not_exist');
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
DestroyCategoryAction::run(category: $category);
|
||||
$success_count++;
|
||||
} catch (ItemStillHasAccessories $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_assets_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);
|
||||
} catch (ItemStillHasAssetModels) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_asset_models_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);
|
||||
} catch (ItemStillHasAssets) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_assets_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);
|
||||
} catch (ItemStillHasComponents) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_components_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);
|
||||
} catch (ItemStillHasConsumables) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_consumables_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);
|
||||
} catch (ItemStillHasLicenses) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_licenses_no_count', ['item_name' => $category->name, 'item' => trans('general.category')]);;
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
$errors[] = trans('general.something_went_wrong');
|
||||
}
|
||||
}
|
||||
if (count($errors) > 0) {
|
||||
if ($success_count > 0) {
|
||||
return redirect()->route('categories.index')->with('success', trans_choice('admin/categories/message.delete.partial_success', $success_count, ['count' => $success_count]))->with('multi_error_messages', $errors);
|
||||
}
|
||||
return redirect()->route('categories.index')->with('multi_error_messages', $errors);
|
||||
} else {
|
||||
return redirect()->route('categories.index')->with('success', trans('admin/categories/message.delete.bulk_success'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Manufacturers\DeleteManufacturerAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssetModels;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Manufacturer;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BulkManufacturersController extends Controller
|
||||
{
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
$this->authorize('delete', Manufacturer::class);
|
||||
|
||||
$errors = [];
|
||||
$success_count = 0;
|
||||
foreach ($request->ids as $id) {
|
||||
$manufacturer = Manufacturer::find($id);
|
||||
if (is_null($manufacturer)) {
|
||||
$errors[] = trans('admin/manufacturers/message.does_not_exist');
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
DeleteManufacturerAction::run(manufacturer: $manufacturer);
|
||||
$success_count++;
|
||||
} catch (ItemStillHasAssets $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_assets_no_count', ['item_name' => $manufacturer->name, 'item' => trans('general.manufacturer')]);
|
||||
} catch (ItemStillHasAccessories $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_accessories_no_count', ['item_name' => $manufacturer->name, 'item' => trans('general.manufacturer')]);
|
||||
} catch (ItemStillHasConsumables $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_consumables_no_count', ['item_name' => $manufacturer->name, 'item' => trans('general.manufacturer')]);
|
||||
} catch (ItemStillHasComponents $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_components_no_count', ['item_name' => $manufacturer->name, 'item' => trans('general.manufacturer')]);
|
||||
} catch (ItemStillHasLicenses $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_licenses_no_count', ['item_name' => $manufacturer->name, 'item' => trans('general.manufacturer')]);;
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
$errors[] = trans('general.something_went_wrong');
|
||||
}
|
||||
}
|
||||
if (count($errors) > 0) {
|
||||
if ($success_count > 0) {
|
||||
return redirect()->route('manufacturers.index')->with('success', trans_choice('admin/manufacturers/message.delete.partial_success', $success_count, ['count' => $success_count]))->with('multi_error_messages', $errors);
|
||||
}
|
||||
return redirect()->route('manufacturers.index')->with('multi_error_messages', $errors);
|
||||
} else {
|
||||
return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.delete.bulk_success'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Suppliers\DestroySupplierAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasMaintenances;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Supplier;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BulkSuppliersController extends Controller
|
||||
{
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
$this->authorize('delete', Supplier::class);
|
||||
|
||||
$errors = [];
|
||||
$success_count = 0;
|
||||
|
||||
foreach ($request->ids as $id) {
|
||||
$supplier = Supplier::find($id);
|
||||
if (is_null($supplier)) {
|
||||
$errors[] = trans('admin/suppliers/message.delete.not_found');
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
DestroySupplierAction::run(supplier: $supplier);
|
||||
} catch (ItemStillHasAssets $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_assets', ['asset_count' => (int) $supplier->assets_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (ItemStillHasMaintenances $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_maintenances', ['asset_maintenances_count' => $supplier->asset_maintenances_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (ItemStillHasLicenses $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_licenses', ['licenses_count' => (int) $supplier->licenses_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (ItemStillHasAccessories $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_accessories', ['accessories_count' => (int) $supplier->accessories_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (ItemStillHasConsumables $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_consumables', ['consumables_count' => (int) $supplier->consumables_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (ItemStillHasComponents $e) {
|
||||
$errors[] = trans('general.bulk_delete_associations.assoc_components', ['components_count' => (int) $supplier->components_count, 'item' => trans('general.supplier'), 'item_name' => $supplier->name]);
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
$errors[] = trans('general.something_went_wrong');
|
||||
}
|
||||
}
|
||||
if (count($errors) > 0) {
|
||||
if ($success_count > 0) {
|
||||
return redirect()->route('suppliers.index')->with('success', trans_choice('admin/suppliers/message.delete.partial_success', $success_count, ['count' => $success_count]))->with('multi_error_messages', $errors);
|
||||
}
|
||||
return redirect()->route('suppliers.index')->with('multi_error_messages', $errors);
|
||||
} else {
|
||||
return redirect()->route('suppliers.index')->with('success', trans('admin/suppliers/message.delete.bulk_success'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Categories\DestroyCategoryAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssetModels;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\Category;
|
||||
@@ -143,20 +151,18 @@ class CategoriesController extends Controller
|
||||
* @since [v1.0]
|
||||
* @param int $categoryId
|
||||
*/
|
||||
public function destroy($categoryId) : RedirectResponse
|
||||
public function destroy(Category $category): RedirectResponse
|
||||
{
|
||||
$this->authorize('delete', Category::class);
|
||||
// Check if the category exists
|
||||
if (is_null($category = Category::withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count', 'models as models_count')->findOrFail($categoryId))) {
|
||||
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.not_found'));
|
||||
try {
|
||||
DestroyCategoryAction::run($category);
|
||||
} catch (ItemStillHasChildren $e) {
|
||||
return redirect()->route('categories.index')->with('error', trans('general.bulk_delete_associations.general_assoc_warning', ['item' => trans('general.category')]));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.delete.error'));
|
||||
}
|
||||
|
||||
if (! $category->isDeletable()) {
|
||||
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.assoc_items', ['asset_type'=> $category->category_type]));
|
||||
}
|
||||
|
||||
Storage::disk('public')->delete('categories'.'/'.$category->image);
|
||||
$category->delete();
|
||||
return redirect()->route('categories.index')->with('success', trans('admin/categories/message.delete.success'));
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ abstract class Controller extends BaseController
|
||||
'accessories' => Accessory::class,
|
||||
'maintenances' => Maintenance::class,
|
||||
'assets' => Asset::class,
|
||||
'audits' => Asset::class,
|
||||
'components' => Component::class,
|
||||
'consumables' => Consumable::class,
|
||||
'hardware' => Asset::class,
|
||||
@@ -58,6 +59,7 @@ abstract class Controller extends BaseController
|
||||
'accessories' => 'private_uploads/accessories/',
|
||||
'maintenances' => 'private_uploads/maintenances/',
|
||||
'assets' => 'private_uploads/assets/',
|
||||
'audits' => 'private_uploads/audits/',
|
||||
'components' => 'private_uploads/components/',
|
||||
'consumables' => 'private_uploads/consumables/',
|
||||
'hardware' => 'private_uploads/assets/',
|
||||
@@ -71,6 +73,7 @@ abstract class Controller extends BaseController
|
||||
'accessories' => 'accessory',
|
||||
'maintenances' => 'maintenance',
|
||||
'assets' => 'asset',
|
||||
'audits' => 'audit',
|
||||
'components' => 'component',
|
||||
'consumables' => 'consumable',
|
||||
'hardware' => 'asset',
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Manufacturers\DeleteManufacturerAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\Actionlog;
|
||||
use App\Models\Manufacturer;
|
||||
@@ -157,32 +165,18 @@ class ManufacturersController extends Controller
|
||||
* @param int $manufacturerId
|
||||
* @since [v1.0]
|
||||
*/
|
||||
public function destroy($manufacturerId) : RedirectResponse
|
||||
public function destroy(Manufacturer $manufacturer): RedirectResponse
|
||||
{
|
||||
$this->authorize('delete', Manufacturer::class);
|
||||
if (is_null($manufacturer = Manufacturer::withTrashed()->withCount('models as models_count')->find($manufacturerId))) {
|
||||
return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.not_found'));
|
||||
$this->authorize('delete', $manufacturer);
|
||||
try {
|
||||
DeleteManufacturerAction::run($manufacturer);
|
||||
} catch (ItemStillHasChildren $e) {
|
||||
return redirect()->route('manufacturers.index')->with('error', trans('general.bulk_delete_associations.general_assoc_warning', ['item' => trans('general.manufacturer')]));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return redirect()->route('manufacturers.index')->with('error', trans('general.something_went_wrong'));
|
||||
}
|
||||
|
||||
if (! $manufacturer->isDeletable()) {
|
||||
return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.assoc_users'));
|
||||
}
|
||||
|
||||
if ($manufacturer->image) {
|
||||
try {
|
||||
Storage::disk('public')->delete('manufacturers/'.$manufacturer->image);
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e);
|
||||
}
|
||||
}
|
||||
|
||||
// Soft delete the manufacturer if active, permanent delete if is already deleted
|
||||
if ($manufacturer->deleted_at === null) {
|
||||
$manufacturer->delete();
|
||||
} else {
|
||||
$manufacturer->forceDelete();
|
||||
}
|
||||
// Redirect to the manufacturers management page
|
||||
return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.delete.success'));
|
||||
}
|
||||
|
||||
|
||||
@@ -436,10 +436,8 @@ class ReportsController extends Controller
|
||||
// Open output stream
|
||||
$handle = fopen('php://output', 'w');
|
||||
stream_set_timeout($handle, 2000);
|
||||
|
||||
if ($request->filled('use_bom')) {
|
||||
fprintf($handle, chr(0xEF).chr(0xBB).chr(0xBF));
|
||||
}
|
||||
|
||||
fprintf($handle, chr(0xEF).chr(0xBB).chr(0xBF));
|
||||
|
||||
$header = [];
|
||||
|
||||
|
||||
@@ -2,10 +2,18 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Suppliers\DestroySupplierAction;
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasMaintenances;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\Supplier;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use \Illuminate\Contracts\View\View;
|
||||
use Illuminate\Support\MessageBag;
|
||||
|
||||
/**
|
||||
* This controller handles all actions related to Suppliers for
|
||||
@@ -118,30 +126,41 @@ class SuppliersController extends Controller
|
||||
*
|
||||
* @param int $supplierId
|
||||
*/
|
||||
public function destroy($supplierId) : RedirectResponse
|
||||
public function destroy(Supplier $supplier): RedirectResponse
|
||||
{
|
||||
$this->authorize('delete', Supplier::class);
|
||||
if (is_null($supplier = Supplier::with('maintenances', 'assets', 'licenses')->withCount('maintenances as maintenances_count', 'assets as assets_count', 'licenses as licenses_count')->find($supplierId))) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.not_found'));
|
||||
try {
|
||||
DestroySupplierAction::run(supplier: $supplier);
|
||||
} catch (ItemStillHasAssets $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_assets', [
|
||||
'asset_count' => (int) $supplier->assets_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (ItemStillHasMaintenances $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_maintenances', [
|
||||
'asset_maintenances_count' => $supplier->asset_maintenances_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (ItemStillHasLicenses $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_licenses', [
|
||||
'licenses_count' => (int) $supplier->licenses_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (ItemStillHasAccessories $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_accessories', [
|
||||
'accessories_count' => (int) $supplier->accessories_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (ItemStillHasConsumables $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_consumables', [
|
||||
'consumables_count' => (int) $supplier->consumables_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (ItemStillHasComponents $e) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('general.bulk_delete_associations.assoc_components', [
|
||||
'components_count' => (int) $supplier->components_count, 'item' => trans('general.supplier')
|
||||
]));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.delete.error'));
|
||||
}
|
||||
|
||||
if ($supplier->assets_count > 0) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.delete.assoc_assets', ['asset_count' => (int) $supplier->assets_count]));
|
||||
}
|
||||
|
||||
if ($supplier->maintenances_count > 0) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.delete.assoc_maintenances', ['maintenances_count' => $supplier->maintenances_count]));
|
||||
}
|
||||
|
||||
if ($supplier->licenses_count > 0) {
|
||||
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.delete.assoc_licenses', ['licenses_count' => (int) $supplier->licenses_count]));
|
||||
}
|
||||
|
||||
$supplier->delete();
|
||||
|
||||
return redirect()->route('suppliers.index')->with('success',
|
||||
trans('admin/suppliers/message.delete.success')
|
||||
);
|
||||
return redirect()->route('suppliers.index')->with('success', trans('admin/suppliers/message.delete.success'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,6 +173,5 @@ class SuppliersController extends Controller
|
||||
{
|
||||
$this->authorize('view', Supplier::class);
|
||||
return view('suppliers/view', compact('supplier'));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class SettingsSamlRequest extends FormRequest
|
||||
];
|
||||
|
||||
$pkey = openssl_pkey_new([
|
||||
'private_key_bits' => config('app.saml_key_size'),
|
||||
'private_key_bits' => (int) config('app.saml_key_size'),
|
||||
'private_key_type' => OPENSSL_KEYTYPE_RSA,
|
||||
]);
|
||||
|
||||
|
||||
@@ -149,6 +149,7 @@ class ActionlogsTransformer
|
||||
'filename' => $actionlog->filename,
|
||||
'inlineable' => StorageHelper::allowSafeInline($actionlog->uploads_file_path()),
|
||||
'exists_on_disk' => Storage::exists($actionlog->uploads_file_path()) ? true : false,
|
||||
'mediatype' => StorageHelper::getMediaType($actionlog->uploads_file_path()),
|
||||
] : null,
|
||||
|
||||
'item' => ($actionlog->item) ? [
|
||||
|
||||
@@ -466,8 +466,6 @@ class Actionlog extends SnipeModel
|
||||
public function uploads_file_url()
|
||||
{
|
||||
|
||||
|
||||
|
||||
if (($this->action_type == 'accepted') || ($this->action_type == 'declined')) {
|
||||
return route('log.storedeula.download', ['filename' => $this->filename]);
|
||||
}
|
||||
@@ -478,6 +476,11 @@ class Actionlog extends SnipeModel
|
||||
$object = 'models';
|
||||
}
|
||||
|
||||
// @todo - remove audit special case when audits have their own file handling route
|
||||
if ($this->action_type == 'audit') {
|
||||
$object = 'audits';
|
||||
}
|
||||
|
||||
return route('ui.files.show', [
|
||||
'object_type' => $object,
|
||||
'id' => $this->item_id,
|
||||
|
||||
@@ -399,6 +399,12 @@ class Asset extends Depreciable
|
||||
|
||||
}
|
||||
|
||||
protected function expectedCheckinFormattedDate(): Attribute
|
||||
{
|
||||
return Attribute:: make(
|
||||
get: fn(mixed $value, array $attributes) => array_key_exists('expected_checkin', $attributes) ? Helper::getFormattedDateObject($attributes['expected_checkin'], 'date', false) : null,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Establishes the asset -> company relationship
|
||||
|
||||
@@ -32,7 +32,7 @@ class SnipeModel extends Model
|
||||
protected function expiresDiffInDays(): Attribute
|
||||
{
|
||||
return Attribute:: make(
|
||||
get: fn(mixed $value, array $attributes) => in_array('expiration_date', $attributes) ? Carbon::now()->diffInDays($attributes['expiration_date']) : null,
|
||||
get: fn(mixed $value, array $attributes) => array_key_exists('expiration_date', $attributes) ? Carbon::now()->diffInDays($attributes['expiration_date']) : null,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -40,14 +40,14 @@ class SnipeModel extends Model
|
||||
protected function expiresDiffForHumans(): Attribute
|
||||
{
|
||||
return Attribute:: make(
|
||||
get: fn(mixed $value, array $attributes) => in_array('expiration_date', $attributes) ? Carbon::parse($attributes['expiration_date'])->diffForHumans() : null,
|
||||
get: fn(mixed $value, array $attributes) => array_key_exists('expiration_date', $attributes) ? Carbon::parse($attributes['expiration_date'])->diffForHumans() : null,
|
||||
);
|
||||
}
|
||||
|
||||
protected function expiresFormattedDate(): Attribute
|
||||
{
|
||||
return Attribute:: make(
|
||||
get: fn(mixed $value, array $attributes) => in_array('expiration_date', $attributes) ? Helper::getFormattedDateObject($attributes['expiration_date'], 'date', false) : null,
|
||||
get: fn(mixed $value, array $attributes) => array_key_exists('expiration_date', $attributes) ? Helper::getFormattedDateObject($attributes['expiration_date'], 'date', false) : null,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,11 @@ class CategoryPresenter extends Presenter
|
||||
public static function dataTableLayout()
|
||||
{
|
||||
$layout = [
|
||||
[
|
||||
'field' => 'checkbox',
|
||||
'checkbox' => true,
|
||||
'titleTooltip' => trans('general.select_all_none'),
|
||||
],
|
||||
[
|
||||
'field' => 'id',
|
||||
'searchable' => false,
|
||||
|
||||
@@ -14,7 +14,11 @@ class ManufacturerPresenter extends Presenter
|
||||
public static function dataTableLayout()
|
||||
{
|
||||
$layout = [
|
||||
|
||||
[
|
||||
'field' => 'checkbox',
|
||||
'checkbox' => true,
|
||||
'titleTooltip' => trans('general.select_all_none'),
|
||||
],
|
||||
[
|
||||
'field' => 'id',
|
||||
'searchable' => false,
|
||||
|
||||
@@ -13,6 +13,11 @@ class SupplierPresenter extends Presenter
|
||||
public static function dataTableLayout()
|
||||
{
|
||||
$layout = [
|
||||
[
|
||||
'field' => 'checkbox',
|
||||
'checkbox' => true,
|
||||
'titleTooltip' => trans('general.select_all_none'),
|
||||
],
|
||||
[
|
||||
'field' => 'id',
|
||||
'searchable' => false,
|
||||
|
||||
@@ -12,7 +12,7 @@ class UploadedFilesPresenter extends Presenter
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function dataTableLayout()
|
||||
public static function dataTableLayout($allow_deletes = true)
|
||||
{
|
||||
|
||||
$layout = [
|
||||
@@ -84,7 +84,11 @@ class UploadedFilesPresenter extends Presenter
|
||||
'title' => trans('general.created_at'),
|
||||
'visible' => true,
|
||||
'formatter' => 'dateDisplayFormatter',
|
||||
], [
|
||||
],
|
||||
];
|
||||
|
||||
if ($allow_deletes == 'true') {
|
||||
$layout[] = [
|
||||
'field' => 'available_actions',
|
||||
'searchable' => false,
|
||||
'sortable' => false,
|
||||
@@ -92,8 +96,8 @@ class UploadedFilesPresenter extends Presenter
|
||||
'title' => trans('table.actions'),
|
||||
'visible' => true,
|
||||
'formatter' => 'deleteUploadFormatter',
|
||||
],
|
||||
];
|
||||
];
|
||||
}
|
||||
|
||||
return json_encode($layout);
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v8.3.3',
|
||||
'full_app_version' => 'v8.3.3 - build 20061-g884d2a955',
|
||||
'build_version' => '20061',
|
||||
'app_version' => 'v8.3.4',
|
||||
'full_app_version' => 'v8.3.4 - build 20218-g3ab2e2011',
|
||||
'build_version' => '20218',
|
||||
'prerelease_version' => '',
|
||||
'hash_version' => 'g884d2a955',
|
||||
'full_hash' => 'v8.3.3-154-g884d2a955',
|
||||
'hash_version' => 'g3ab2e2011',
|
||||
'full_hash' => 'v8.3.4-149-g3ab2e2011',
|
||||
'branch' => 'develop',
|
||||
);
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
||||
$assetmodelfiles = Storage::allFiles('private_uploads/assetmodels');
|
||||
|
||||
foreach ($assetmodelfiles as $file) {
|
||||
Storage::writeStream('private_uploads/models/' . basename($file),
|
||||
Storage::readStream($file)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
||||
Generated
+66
-38
@@ -26,6 +26,7 @@
|
||||
"jquery-ui": "^1.14.1",
|
||||
"jquery-validation": "^1.21.0",
|
||||
"jquery.iframe-transport": "^1.0.0",
|
||||
"jspdf": "^3.0.3",
|
||||
"jspdf-autotable": "^5.0.2",
|
||||
"less": "^4.2.2",
|
||||
"less-loader": "^6.0",
|
||||
@@ -2193,6 +2194,12 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/pako": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz",
|
||||
"integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/parse-json": {
|
||||
"version": "4.0.2",
|
||||
"dev": true,
|
||||
@@ -2258,6 +2265,13 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/trusted-types": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@types/ws": {
|
||||
"version": "8.5.10",
|
||||
"dev": true,
|
||||
@@ -2742,16 +2756,6 @@
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/atob": {
|
||||
"version": "2.1.2",
|
||||
"license": "(MIT OR Apache-2.0)",
|
||||
"bin": {
|
||||
"atob": "bin/atob.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.4.19",
|
||||
"dev": true,
|
||||
@@ -3343,16 +3347,6 @@
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/btoa": {
|
||||
"version": "1.2.1",
|
||||
"license": "(MIT OR Apache-2.0)",
|
||||
"bin": {
|
||||
"btoa": "bin/btoa.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "4.9.2",
|
||||
"dev": true,
|
||||
@@ -3649,11 +3643,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cipher-base": {
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz",
|
||||
"integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
"inherits": "^2.0.4",
|
||||
"safe-buffer": "^5.2.1",
|
||||
"to-buffer": "^1.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/ckeditor": {
|
||||
@@ -4617,10 +4617,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dompurify": {
|
||||
"version": "2.5.8",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.8.tgz",
|
||||
"integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==",
|
||||
"optional": true
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz",
|
||||
"integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==",
|
||||
"license": "(MPL-2.0 OR Apache-2.0)",
|
||||
"optional": true,
|
||||
"optionalDependencies": {
|
||||
"@types/trusted-types": "^2.0.7"
|
||||
}
|
||||
},
|
||||
"node_modules/domutils": {
|
||||
"version": "2.8.0",
|
||||
@@ -5106,6 +5110,23 @@
|
||||
"version": "2.1.0",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-png": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz",
|
||||
"integrity": "sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/pako": "^2.0.3",
|
||||
"iobuffer": "^5.3.2",
|
||||
"pako": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-png/node_modules/pako": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
|
||||
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
|
||||
"license": "(MIT AND Zlib)"
|
||||
},
|
||||
"node_modules/fast-safe-stringify": {
|
||||
"version": "2.1.1",
|
||||
"license": "MIT"
|
||||
@@ -6233,6 +6254,12 @@
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/iobuffer": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz",
|
||||
"integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ion-rangeslider": {
|
||||
"version": "2.3.1",
|
||||
"license": "MIT",
|
||||
@@ -6769,19 +6796,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jspdf": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.2.tgz",
|
||||
"integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.3.tgz",
|
||||
"integrity": "sha512-eURjAyz5iX1H8BOYAfzvdPfIKK53V7mCpBTe7Kb16PaM8JSXEcUQNBQaiWMI8wY5RvNOPj4GccMjTlfwRBd+oQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.23.2",
|
||||
"atob": "^2.1.2",
|
||||
"btoa": "^1.2.1",
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"fast-png": "^6.2.0",
|
||||
"fflate": "^0.8.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"canvg": "^3.0.6",
|
||||
"canvg": "^3.0.11",
|
||||
"core-js": "^3.6.0",
|
||||
"dompurify": "^2.5.4",
|
||||
"dompurify": "^3.2.4",
|
||||
"html2canvas": "^1.0.0-rc.5"
|
||||
}
|
||||
},
|
||||
@@ -10272,9 +10299,10 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/to-buffer": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz",
|
||||
"integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==",
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
|
||||
"integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"isarray": "^2.0.5",
|
||||
"safe-buffer": "^5.2.1",
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
"jquery-ui": "^1.14.1",
|
||||
"jquery-validation": "^1.21.0",
|
||||
"jquery.iframe-transport": "^1.0.0",
|
||||
"jspdf": "^3.0.3",
|
||||
"jspdf-autotable": "^5.0.2",
|
||||
"less": "^4.2.2",
|
||||
"less-loader": "^6.0",
|
||||
|
||||
@@ -1504,6 +1504,39 @@ caption.tableCaption {
|
||||
input[name="columnsSearch"] {
|
||||
width: 120px;
|
||||
}
|
||||
.callout.callout-legend {
|
||||
background-color: #f4f4f4;
|
||||
border-left: 5px solid #959495;
|
||||
padding: 15px 30px 15px 15px;
|
||||
font-size: 100%;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.callout.callout-legend h4 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.callout.callout-legend a {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
p.callout-subtext {
|
||||
margin-top: 5px;
|
||||
}
|
||||
p.callout-subtext a:hover,
|
||||
p.callout-subtext a:visited,
|
||||
p.callout-subtext a:link {
|
||||
color: #31708f;
|
||||
text-decoration: none;
|
||||
}
|
||||
/**
|
||||
This just hides the padding on the right side of the mark tag for a less weird visual experience
|
||||
*/
|
||||
mark {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
|
||||
/*# sourceMappingURL=app.css.map*/
|
||||
File diff suppressed because one or more lines are too long
@@ -1128,6 +1128,39 @@ caption.tableCaption {
|
||||
input[name="columnsSearch"] {
|
||||
width: 120px;
|
||||
}
|
||||
.callout.callout-legend {
|
||||
background-color: #f4f4f4;
|
||||
border-left: 5px solid #959495;
|
||||
padding: 15px 30px 15px 15px;
|
||||
font-size: 100%;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.callout.callout-legend h4 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.callout.callout-legend a {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
p.callout-subtext {
|
||||
margin-top: 5px;
|
||||
}
|
||||
p.callout-subtext a:hover,
|
||||
p.callout-subtext a:visited,
|
||||
p.callout-subtext a:link {
|
||||
color: #31708f;
|
||||
text-decoration: none;
|
||||
}
|
||||
/**
|
||||
This just hides the padding on the right side of the mark tag for a less weird visual experience
|
||||
*/
|
||||
mark {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
|
||||
/*# sourceMappingURL=overrides.css.map*/
|
||||
File diff suppressed because one or more lines are too long
Vendored
+66
@@ -22840,6 +22840,39 @@ caption.tableCaption {
|
||||
input[name="columnsSearch"] {
|
||||
width: 120px;
|
||||
}
|
||||
.callout.callout-legend {
|
||||
background-color: #f4f4f4;
|
||||
border-left: 5px solid #959495;
|
||||
padding: 15px 30px 15px 15px;
|
||||
font-size: 100%;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.callout.callout-legend h4 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.callout.callout-legend a {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
p.callout-subtext {
|
||||
margin-top: 5px;
|
||||
}
|
||||
p.callout-subtext a:hover,
|
||||
p.callout-subtext a:visited,
|
||||
p.callout-subtext a:link {
|
||||
color: #31708f;
|
||||
text-decoration: none;
|
||||
}
|
||||
/**
|
||||
This just hides the padding on the right side of the mark tag for a less weird visual experience
|
||||
*/
|
||||
mark {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
|
||||
/*# sourceMappingURL=app.css.map*/
|
||||
@@ -24455,6 +24488,39 @@ caption.tableCaption {
|
||||
input[name="columnsSearch"] {
|
||||
width: 120px;
|
||||
}
|
||||
.callout.callout-legend {
|
||||
background-color: #f4f4f4;
|
||||
border-left: 5px solid #959495;
|
||||
padding: 15px 30px 15px 15px;
|
||||
font-size: 100%;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.callout.callout-legend h4 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.callout.callout-legend a {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
p.callout-subtext {
|
||||
margin-top: 5px;
|
||||
}
|
||||
p.callout-subtext a:hover,
|
||||
p.callout-subtext a:visited,
|
||||
p.callout-subtext a:link {
|
||||
color: #31708f;
|
||||
text-decoration: none;
|
||||
}
|
||||
/**
|
||||
This just hides the padding on the right side of the mark tag for a less weird visual experience
|
||||
*/
|
||||
mark {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
|
||||
/*# sourceMappingURL=overrides.css.map*/
|
||||
Vendored
+17
-1
@@ -1689,6 +1689,18 @@ a:visited {
|
||||
.skin-contrast.layout-top-nav .main-header > .logo .logo-variant {
|
||||
background-color: none;
|
||||
}
|
||||
.btn.btn-default:hover,
|
||||
.btn:hover.btn-default:hover,
|
||||
.btn .btn-default:link:hover,
|
||||
.btn:hover .btn-default:link:hover {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-default:visited,
|
||||
.btn:hover.btn-default:visited,
|
||||
.btn .btn-default:link:visited,
|
||||
.btn:hover .btn-default:link:visited {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-primary,
|
||||
.btn:hover.btn-primary,
|
||||
.btn .btn-primary:link,
|
||||
@@ -1734,6 +1746,10 @@ a.btn:hover {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.btn:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.text-primary {
|
||||
color: #000000;
|
||||
}
|
||||
@@ -1759,7 +1775,7 @@ a.btn:hover {
|
||||
background-color: #001F3F;
|
||||
color: #FFF !important;
|
||||
}
|
||||
btn-success {
|
||||
.btn-success {
|
||||
background-color: #000d07;
|
||||
}
|
||||
input::-webkit-input-placeholder {
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+17
-1
@@ -1689,6 +1689,18 @@ a:visited {
|
||||
.skin-contrast.layout-top-nav .main-header > .logo .logo-variant {
|
||||
background-color: none;
|
||||
}
|
||||
.btn.btn-default:hover,
|
||||
.btn:hover.btn-default:hover,
|
||||
.btn .btn-default:link:hover,
|
||||
.btn:hover .btn-default:link:hover {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-default:visited,
|
||||
.btn:hover.btn-default:visited,
|
||||
.btn .btn-default:link:visited,
|
||||
.btn:hover .btn-default:link:visited {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-primary,
|
||||
.btn:hover.btn-primary,
|
||||
.btn .btn-primary:link,
|
||||
@@ -1734,6 +1746,10 @@ a.btn:hover {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.btn:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.text-primary {
|
||||
color: #000000;
|
||||
}
|
||||
@@ -1759,7 +1775,7 @@ a.btn:hover {
|
||||
background-color: #001F3F;
|
||||
color: #FFF !important;
|
||||
}
|
||||
btn-success {
|
||||
.btn-success {
|
||||
background-color: #000d07;
|
||||
}
|
||||
input::-webkit-input-placeholder {
|
||||
|
||||
+17
-1
@@ -125,6 +125,18 @@
|
||||
.skin-contrast.layout-top-nav .main-header > .logo .logo-variant {
|
||||
background-color: none;
|
||||
}
|
||||
.btn.btn-default:hover,
|
||||
.btn:hover.btn-default:hover,
|
||||
.btn .btn-default:link:hover,
|
||||
.btn:hover .btn-default:link:hover {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-default:visited,
|
||||
.btn:hover.btn-default:visited,
|
||||
.btn .btn-default:link:visited,
|
||||
.btn:hover .btn-default:link:visited {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-primary,
|
||||
.btn:hover.btn-primary,
|
||||
.btn .btn-primary:link,
|
||||
@@ -170,6 +182,10 @@ a.btn:hover {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.btn:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.text-primary {
|
||||
color: #000000;
|
||||
}
|
||||
@@ -195,7 +211,7 @@ a.btn:hover {
|
||||
background-color: #001F3F;
|
||||
color: #FFF !important;
|
||||
}
|
||||
btn-success {
|
||||
.btn-success {
|
||||
background-color: #000d07;
|
||||
}
|
||||
input::-webkit-input-placeholder {
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+17
-1
@@ -125,6 +125,18 @@
|
||||
.skin-contrast.layout-top-nav .main-header > .logo .logo-variant {
|
||||
background-color: none;
|
||||
}
|
||||
.btn.btn-default:hover,
|
||||
.btn:hover.btn-default:hover,
|
||||
.btn .btn-default:link:hover,
|
||||
.btn:hover .btn-default:link:hover {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-default:visited,
|
||||
.btn:hover.btn-default:visited,
|
||||
.btn .btn-default:link:visited,
|
||||
.btn:hover .btn-default:link:visited {
|
||||
color: #00060c;
|
||||
}
|
||||
.btn.btn-primary,
|
||||
.btn:hover.btn-primary,
|
||||
.btn .btn-primary:link,
|
||||
@@ -170,6 +182,10 @@ a.btn:hover {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.btn:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.text-primary {
|
||||
color: #000000;
|
||||
}
|
||||
@@ -195,7 +211,7 @@ a.btn:hover {
|
||||
background-color: #001F3F;
|
||||
color: #FFF !important;
|
||||
}
|
||||
btn-success {
|
||||
.btn-success {
|
||||
background-color: #000d07;
|
||||
}
|
||||
input::-webkit-input-placeholder {
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+216
-1
@@ -61,7 +61,217 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Widget 1.14.0
|
||||
* jQuery UI :data 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Autocomplete 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Button 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Checkboxradio 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Controlgroup 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Datepicker 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Dialog 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Draggable 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Droppable 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Effects 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Effects Blind 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Focusable 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Form Reset Mixin 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Keycode 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Labels 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Legacy jQuery Core patches 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Mouse 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Position 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* https://api.jqueryui.com/position/
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Progressbar 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Resizable 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Spinner 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Tabs 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Tooltip 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* https://jquery.org/license
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery UI Widget 1.14.1
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
@@ -107,4 +317,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*! jQuery UI - v1.14.1 - 2024-10-30
|
||||
* https://jqueryui.com
|
||||
* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
|
||||
* Copyright OpenJS Foundation and other contributors; Licensed MIT */
|
||||
|
||||
/*! tether 1.4.7 */
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=76d88f0f91b852f7eecbce357ab5858b",
|
||||
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=42f97cd5b9ee7521b04a448e7fc16ac9",
|
||||
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=d81a7ed323f68a7c5e3e9115f7fb5404",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=d6ec1f1e36c57f8cd96218d2a59a2580",
|
||||
"/css/build/app.css": "/css/build/app.css?id=d591faf82795dc8151a6d3f84c26f5a4",
|
||||
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=3e8b8221c159b829a0edd562eb717563",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=465a8ea1975b39e936cb715033786882",
|
||||
"/css/build/app.css": "/css/build/app.css?id=507ff83b5b8e3a9f8ac636f8e6237111",
|
||||
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=ee0ed88465dd878588ed044eefb67723",
|
||||
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=3d8a3d2035ea28aaad4a703c2646f515",
|
||||
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=3979929a3423ff35b96b1fc84299fdf3",
|
||||
@@ -15,11 +15,11 @@
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=42eb5a13297832949c99c16406daf0ad",
|
||||
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=1989203aff5fafe6d4ae92ccba0e680e",
|
||||
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=2a6e215685d0eb6225adde8fc5d233e9",
|
||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=db8a69f7cafd100e86ec3f20f12088cf",
|
||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=bbb63798008f6f846f9883eb73eaec3f",
|
||||
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=b2cd9f59d7e8587939ce27b2d3363d82",
|
||||
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=7277edd636cf46aa7786a4449ce0ead7",
|
||||
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=cbd06cc1d58197ccc81d4376bbaf0d28",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=ff957e6cef08b72d32cf28fe50da645a",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=bd048a75bb06ef72d1cac7c19f0ef8a6",
|
||||
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",
|
||||
@@ -93,12 +93,12 @@
|
||||
"/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=d300041b9e5038b45b68e036add83be4",
|
||||
"/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=6d0de12d91548ba2cd80b868838ce5fa",
|
||||
"/js/dist/Chart.min.js": "/js/dist/Chart.min.js?id=9b1ae20c4c7048d6e4a1b2e1aee7fb31",
|
||||
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=d81a7ed323f68a7c5e3e9115f7fb5404",
|
||||
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=3e8b8221c159b829a0edd562eb717563",
|
||||
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=42f97cd5b9ee7521b04a448e7fc16ac9",
|
||||
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=cbd06cc1d58197ccc81d4376bbaf0d28",
|
||||
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=7277edd636cf46aa7786a4449ce0ead7",
|
||||
"/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=b2cd9f59d7e8587939ce27b2d3363d82",
|
||||
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=db8a69f7cafd100e86ec3f20f12088cf",
|
||||
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=bbb63798008f6f846f9883eb73eaec3f",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=2a6e215685d0eb6225adde8fc5d233e9",
|
||||
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=1989203aff5fafe6d4ae92ccba0e680e",
|
||||
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=42eb5a13297832949c99c16406daf0ad",
|
||||
|
||||
@@ -1264,4 +1264,41 @@ caption.tableCaption {
|
||||
|
||||
input[name="columnsSearch"] {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.callout.callout-legend {
|
||||
background-color: #f4f4f4;
|
||||
border-left: 5px solid #959495;
|
||||
padding: 15px 30px 15px 15px;
|
||||
font-size: 100%;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.callout.callout-legend h4 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.callout.callout-legend a {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
p.callout-subtext {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
p.callout-subtext a:hover, p.callout-subtext a:visited, p.callout-subtext a:link {
|
||||
color: #31708f;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/**
|
||||
This just hides the padding on the right side of the mark tag for a less weird visual experience
|
||||
*/
|
||||
mark {
|
||||
padding-right: 0px;
|
||||
}
|
||||
@@ -61,13 +61,21 @@
|
||||
.btn, .btn:hover {
|
||||
|
||||
|
||||
&.btn-default, .btn-default:link {
|
||||
&:hover {
|
||||
color: darken(@navy, 10%)
|
||||
}
|
||||
&:visited {
|
||||
color: darken(@navy, 10%)
|
||||
}
|
||||
}
|
||||
|
||||
&.btn-primary, .btn-primary:link {
|
||||
background-color: darken(@navy, 10%);
|
||||
border-color: darken(@navy, 20%);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
&a.btn-primary:hover {
|
||||
background-color: darken(@navy, 20%);
|
||||
border-color: darken(@navy, 20%);
|
||||
@@ -109,6 +117,11 @@ a.btn {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
&:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
@@ -144,7 +157,7 @@ a.btn {
|
||||
color: #FFF!important;
|
||||
}
|
||||
|
||||
btn-success {
|
||||
.btn-success {
|
||||
background-color: darken(@green, 30%);
|
||||
}
|
||||
|
||||
@@ -168,6 +181,7 @@ input::-ms-input-placeholder { /* IE 10+ */
|
||||
background-color: darken(@blue, 20%)!important;
|
||||
}
|
||||
|
||||
|
||||
.fixed-table-container tbody .selected td {
|
||||
background-color: #fff8af;
|
||||
}
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns631:0crwdne631:0',
|
||||
'error' => 'crwdns632:0crwdne632:0',
|
||||
'success' => 'crwdns633:0crwdne633:0'
|
||||
'confirm' => 'crwdns631:0crwdne631:0',
|
||||
'error' => 'crwdns632:0crwdne632:0',
|
||||
'success' => 'crwdns13884:0crwdne13884:0',
|
||||
'bulk_success' => 'crwdns13886:0crwdne13886:0',
|
||||
'partial_success' => 'crwdns13888:0crwdne13888:0',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'crwdns6501:0crwdne6501:0',
|
||||
'field' => 'crwdns1487:0crwdne1487:0',
|
||||
'about_fieldsets_title' => 'crwdns1488:0crwdne1488:0',
|
||||
'about_fieldsets_text' => 'crwdns13746:0crwdne13746:0',
|
||||
'about_fieldsets_text' => 'crwdns13838:0crwdne13838:0',
|
||||
'custom_format' => 'crwdns6505:0crwdne6505:0',
|
||||
'encrypt_field' => 'crwdns1792:0crwdne1792:0',
|
||||
'encrypt_field_help' => 'crwdns1683:0crwdne1683:0',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'crwdns901:0crwdne901:0',
|
||||
'confirm' => 'crwdns901:0crwdne901:0',
|
||||
'error' => 'crwdns1126:0crwdne1126:0',
|
||||
'success' => 'crwdns903:0crwdne903:0'
|
||||
'success' => 'crwdns13890:0crwdne13890:0',
|
||||
'bulk_success' => 'crwdns13892:0crwdne13892:0',
|
||||
'partial_success' => 'crwdns13894:0crwdne13894:0',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "crwdns12714:0crwdne12714:0",
|
||||
'backups_upload' => 'crwdns6327:0crwdne6327:0',
|
||||
'backups_path' => 'crwdns6329:0crwdne6329:0',
|
||||
'backups_restore_warning' => 'crwdns13156:0crwdne13156:0',
|
||||
'backups_restore_warning' => 'crwdns13840:0crwdne13840:0',
|
||||
'backups_logged_out' => 'crwdns6774:0crwdne6774:0',
|
||||
'backups_large' => 'crwdns6335:0crwdne6335:0',
|
||||
'barcode_settings' => 'crwdns1295:0crwdne1295:0',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'crwdns867:0crwdne867:0',
|
||||
'error' => 'crwdns868:0crwdne868:0',
|
||||
'success' => 'crwdns869:0crwdne869:0',
|
||||
'assoc_assets' => 'crwdns1959:0crwdne1959:0',
|
||||
'assoc_licenses' => 'crwdns1960:0crwdne1960:0',
|
||||
'assoc_maintenances' => 'crwdns13582:0crwdne13582:0',
|
||||
'not_found' => 'crwdns13842:0crwdne13842:0',
|
||||
'bulk_success' => 'crwdns13844:0crwdne13844:0',
|
||||
'partial_success' => 'crwdns13882:0crwdne13882:0',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'crwdns13848:0crwdne13848:0',
|
||||
'2FA_reset' => 'crwdns12148:0crwdne12148:0',
|
||||
'accessories' => 'crwdns1200:0crwdne1200:0',
|
||||
'activated' => 'crwdns1540:0crwdne1540:0',
|
||||
@@ -628,6 +629,24 @@ return [
|
||||
'notes' => 'crwdns12878:0crwdne12878:0',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => 'crwdns13850:0crwdne13850:0',
|
||||
'assoc_assets' => 'crwdns13852:0crwdne13852:0',
|
||||
'asset_models' => 'crwdns13854:0crwdne13854:0',
|
||||
'assoc_maintenances' => 'crwdns13856:0crwdne13856:0',
|
||||
'assoc_accessories' => 'crwdns13858:0crwdne13858:0',
|
||||
'assoc_consumables' => 'crwdns13860:0crwdne13860:0',
|
||||
'assoc_components' => 'crwdns13862:0crwdne13862:0',
|
||||
'assoc_licenses' => 'crwdns13864:0crwdne13864:0',
|
||||
'assoc_assets_no_count' => 'crwdns13866:0crwdne13866:0',
|
||||
'asset_models_no_count' => 'crwdns13868:0crwdne13868:0',
|
||||
'assoc_maintenances_no_count' => 'crwdns13870:0crwdne13870:0',
|
||||
'assoc_accessories_no_count' => 'crwdns13872:0crwdne13872:0',
|
||||
'assoc_consumables_no_count' => 'crwdns13874:0crwdne13874:0',
|
||||
'assoc_components_no_count' => 'crwdns13876:0crwdne13876:0',
|
||||
'assoc_licenses_no_count' => 'crwdns13878:0crwdne13878:0',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'crwdns12914:0crwdne12914:0',
|
||||
'checkout_item' => 'crwdns12916:0crwdne12916:0',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Is jy seker jy wil hierdie kategorie uitvee?',
|
||||
'error' => 'Daar was \'n probleem met die verwydering van die kategorie. Probeer asseblief weer.',
|
||||
'success' => 'Die kategorie is suksesvol verwyder.'
|
||||
'confirm' => 'Is jy seker jy wil hierdie kategorie uitvee?',
|
||||
'error' => 'Daar was \'n probleem met die verwydering van die kategorie. Probeer asseblief weer.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'veld',
|
||||
'about_fieldsets_title' => 'Oor Fieldsets',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Veldstelle stel jou in staat om groepe van persoonlike velde te skep wat gereeld hergebruik word vir spesifieke tipe bates.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Enkripteer die waarde van hierdie veld in die databasis',
|
||||
'encrypt_field_help' => 'WAARSKUWING: Om \'n veld te enkripteer, maak dit onondersoekbaar.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Is jy seker jy wil hierdie vervaardiger uitvee?',
|
||||
'confirm' => 'Is jy seker jy wil hierdie vervaardiger uitvee?',
|
||||
'error' => 'Daar was \'n probleem met die verwydering van die vervaardiger. Probeer asseblief weer.',
|
||||
'success' => 'Die vervaardiger is suksesvol verwyder.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "This can be useful if you're changing between database versions",
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode-instellings',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'Is jy seker jy wil hierdie verskaffer uitvee?',
|
||||
'error' => 'Daar was \'n probleem met die verwydering van die verskaffer. Probeer asseblief weer.',
|
||||
'success' => 'Verskaffer is suksesvol verwyder.',
|
||||
'assoc_assets' => 'This supplier is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this supplier and try again. ',
|
||||
'assoc_licenses' => 'This supplier is currently associated with :licenses_count licences(s) and cannot be deleted. Please update your licenses to no longer reference this supplier and try again. ',
|
||||
'assoc_maintenances' => 'This supplier is currently associated with :maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
|
||||
'not_found' => 'Supplier not found.',
|
||||
'bulk_success' => 'Suppliers were deleted successfully.',
|
||||
'partial_success' => 'Supplier deleted successfully. See additional information below. | :count suppliers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'Show All',
|
||||
'2FA_reset' => '2FA reset',
|
||||
'accessories' => 'bykomstighede',
|
||||
'activated' => 'geaktiveer',
|
||||
@@ -629,6 +630,24 @@ return [
|
||||
'notes' => 'Add a note',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => ':item_name still has associated items. Please remove them before deleting this :item.',
|
||||
'assoc_assets' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your asset models to no longer reference this :item and try again.',
|
||||
'assoc_maintenances' => ':item_name is currently associated with :maintenance_count maintenance(s) and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories' => ':item_name is currently associated with :accessory_count accessory(ies) and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables' => ':item_name is currently associated with :consumable_count consumable(s) and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components' => ':item_name is currently associated with :component_count component(s) and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses' => ':item_name is currently associated with :license_count license(s) and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
'assoc_assets_no_count' => ':item_name is currently associated with other assets and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models_no_count' => ':item_name is currently associated with other asset models and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'assoc_maintenances_no_count' => ':item_name is currently associated with other maintenances and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories_no_count' => ':item_name is currently associated with other accessories and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables_no_count' => ':item_name is currently associated with other consumables and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components_no_count' => ':item_name is currently associated with other components and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses_no_count' => ':item_name is currently associated with other licenses and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'Edit :name',
|
||||
'checkout_item' => 'Checkout :name',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'The category was deleted successfully.'
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'Field',
|
||||
'about_fieldsets_title' => 'About Fieldsets',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used used for specific asset model types.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Encrypt the value of this field in the database',
|
||||
'encrypt_field_help' => 'WARNING: Encrypting a field makes it unsearchable.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'error' => 'There was an issue deleting the manufacturer. Please try again.',
|
||||
'success' => 'The Manufacturer was deleted successfully.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "This can be useful if you're changing between database versions",
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode Settings',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'Are you sure you wish to delete this supplier?',
|
||||
'error' => 'There was an issue deleting the supplier. Please try again.',
|
||||
'success' => 'Supplier was deleted successfully.',
|
||||
'assoc_assets' => 'This supplier is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this supplier and try again. ',
|
||||
'assoc_licenses' => 'This supplier is currently associated with :licenses_count licences(s) and cannot be deleted. Please update your licenses to no longer reference this supplier and try again. ',
|
||||
'assoc_maintenances' => 'This supplier is currently associated with :maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
|
||||
'not_found' => 'Supplier not found.',
|
||||
'bulk_success' => 'Suppliers were deleted successfully.',
|
||||
'partial_success' => 'Supplier deleted successfully. See additional information below. | :count suppliers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'Show All',
|
||||
'2FA_reset' => '2FA reset',
|
||||
'accessories' => 'መለዋወጫዎች',
|
||||
'activated' => 'Activated',
|
||||
@@ -629,6 +630,24 @@ return [
|
||||
'notes' => 'Add a note',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => ':item_name still has associated items. Please remove them before deleting this :item.',
|
||||
'assoc_assets' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your asset models to no longer reference this :item and try again.',
|
||||
'assoc_maintenances' => ':item_name is currently associated with :maintenance_count maintenance(s) and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories' => ':item_name is currently associated with :accessory_count accessory(ies) and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables' => ':item_name is currently associated with :consumable_count consumable(s) and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components' => ':item_name is currently associated with :component_count component(s) and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses' => ':item_name is currently associated with :license_count license(s) and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
'assoc_assets_no_count' => ':item_name is currently associated with other assets and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models_no_count' => ':item_name is currently associated with other asset models and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'assoc_maintenances_no_count' => ':item_name is currently associated with other maintenances and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories_no_count' => ':item_name is currently associated with other accessories and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables_no_count' => ':item_name is currently associated with other consumables and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components_no_count' => ':item_name is currently associated with other components and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses_no_count' => ':item_name is currently associated with other licenses and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'Edit :name',
|
||||
'checkout_item' => 'Checkout :name',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'هل أنت متأكد أنك تريد حذف هذا التصنيف؟',
|
||||
'error' => 'حدث خطأ أثناء محاولة حذف التصنيف. الرجاء المحاولة مرة أخرى.',
|
||||
'success' => 'تم حذف التصنيف بنجاح.'
|
||||
'confirm' => 'هل أنت متأكد أنك تريد حذف هذا التصنيف؟',
|
||||
'error' => 'حدث خطأ أثناء محاولة حذف التصنيف. الرجاء المحاولة مرة أخرى.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'إدارة',
|
||||
'field' => 'حقل',
|
||||
'about_fieldsets_title' => 'حول مجموعة الحقول',
|
||||
'about_fieldsets_text' => 'مجموعات الحقول تسمح لك بإنشاء مجموعات من الحقول المخصصة التي يعاد استخدامها في كثير من الأحيان لأنواع معينة من نماذج الأصول.',
|
||||
'about_fieldsets_text' => '(مجموعات الحقول) تسمح لك بإنشاء مجموعات من الحقول اللتي يمكن إعادة إستخدامها مع موديل محدد.',
|
||||
'custom_format' => 'تنسيق Regex المخصص...',
|
||||
'encrypt_field' => 'تشفير قيمة هذا الحقل في قاعدة البيانات',
|
||||
'encrypt_field_help' => 'تحذير: تشفير الحقل يجعله غير قابل للبحث.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذه الشركة المصنعة؟',
|
||||
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذه الشركة المصنعة؟',
|
||||
'error' => 'لقد حدثت مشكلة اثناء عملية حذف الشركة المصنعة، الرجاء المحاولة مرة اخرى.',
|
||||
'success' => 'تم حذف الشركة المصنعة بنجاح.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "This can be useful if you're changing between database versions",
|
||||
'backups_upload' => 'تحميل نسخة احتياطية',
|
||||
'backups_path' => 'يتم تخزين النسخ الاحتياطي على الخادم في <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_logged_out' => 'سيتم تسجيل الخروج من جميع المستخدمين الحاليين، بما في ذلك انت، بمجرد اكتمال الاستعادة.',
|
||||
'backups_large' => 'قد تنتهي النسخ الاحتياطية الكبيرة جدا عند محاولة الاستعادة وقد تكون هناك حاجة إلى تشغيلها عبر سطر الأوامر. ',
|
||||
'barcode_settings' => 'إعدادات الباركود',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذا المورد؟',
|
||||
'error' => 'حدثت مشكلة أثناء حذف المورد. حاول مرة اخرى.',
|
||||
'success' => 'تم حذف المورد بنجاح.',
|
||||
'assoc_assets' => 'هذا المورد مرتبط حاليا مع :asset_count من الأصول على الاقل ولا يمكن حذفه. الرجاء تحديث الأصول لكي لا تشير الى هذا المورد ثم حاول مرة أخرى. ',
|
||||
'assoc_licenses' => 'هذا المورد مرتبط حاليا مع :licenses_count من التراخيص ولا يمكن حذفه. الرجاء تحديث التراخيص الخاصة بك لكي لا تشير الى هذا المورد وحاول مرة أخرى. ',
|
||||
'assoc_maintenances' => 'This supplier is currently associated with :maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
|
||||
'not_found' => 'Supplier not found.',
|
||||
'bulk_success' => 'Suppliers were deleted successfully.',
|
||||
'partial_success' => 'Supplier deleted successfully. See additional information below. | :count suppliers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'Show All',
|
||||
'2FA_reset' => '2FA reset',
|
||||
'accessories' => 'ملحقات',
|
||||
'activated' => 'مفعل',
|
||||
@@ -629,6 +630,24 @@ return [
|
||||
'notes' => 'Add a note',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => ':item_name still has associated items. Please remove them before deleting this :item.',
|
||||
'assoc_assets' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your asset models to no longer reference this :item and try again.',
|
||||
'assoc_maintenances' => ':item_name is currently associated with :maintenance_count maintenance(s) and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories' => ':item_name is currently associated with :accessory_count accessory(ies) and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables' => ':item_name is currently associated with :consumable_count consumable(s) and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components' => ':item_name is currently associated with :component_count component(s) and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses' => ':item_name is currently associated with :license_count license(s) and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
'assoc_assets_no_count' => ':item_name is currently associated with other assets and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models_no_count' => ':item_name is currently associated with other asset models and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'assoc_maintenances_no_count' => ':item_name is currently associated with other maintenances and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories_no_count' => ':item_name is currently associated with other accessories and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables_no_count' => ':item_name is currently associated with other consumables and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components_no_count' => ':item_name is currently associated with other components and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses_no_count' => ':item_name is currently associated with other licenses and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'Edit :name',
|
||||
'checkout_item' => 'Checkout :name',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Желаете ли да изтриете тази категория?',
|
||||
'error' => 'Проблем при изтриване на категорията. Моля опитайте отново.',
|
||||
'success' => 'Категорията бе изтрита успешно.'
|
||||
'confirm' => 'Желаете ли да изтриете тази категория?',
|
||||
'error' => 'Проблем при изтриване на категорията. Моля опитайте отново.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Управление',
|
||||
'field' => 'Поле',
|
||||
'about_fieldsets_title' => 'Относно Fieldsets',
|
||||
'about_fieldsets_text' => '"Група от полета" позволяват създаването на групи от персонализирани полета, които се използват и преизползват често за специфични типове модели на активи.',
|
||||
'about_fieldsets_text' => 'Fieldsets позволяват създаването на групи от персонализирани полета, които се използват и преизползват често за специфични типове модели на активи.',
|
||||
'custom_format' => 'Персонализиран формат...',
|
||||
'encrypt_field' => 'Шифроване на стойността на това поле в базата данни',
|
||||
'encrypt_field_help' => 'ВНИМАНИЕ: Шифроване на поле го прави невалидно за търсене.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Сигурни ли сте, че искате да изтриете този производител?',
|
||||
'confirm' => 'Сигурни ли сте, че искате да изтриете този производител?',
|
||||
'error' => 'Възникна проблем при изтриването на проиводителя. Моля, опитайте отново.',
|
||||
'success' => 'Производителят е изтрит.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "Това може да е полесно при смяна на версията на базата",
|
||||
'backups_upload' => 'Качване на архив',
|
||||
'backups_path' => 'Архивите на сървъра са записани в <code>:path</code>',
|
||||
'backups_restore_warning' => 'Използвайте бутона за възстановяване <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> ,за да възстановите архивно копие. (Това не работи с S3 файлова система или Docker.)<br><br>Вашата <strong>цяла :app_name датабаза и всички качени файлове ще бъдат заменени</strong> от съдържанието на архива. ',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_logged_out' => 'Всички потребители, включително и вие, ще бъдат отписани след възстановяването.',
|
||||
'backups_large' => 'Много големите архиви може да не могат да се възстановят поради изтичане на времето на сесията и ще трябва да се възстановят ръчно през команден ред. ',
|
||||
'barcode_settings' => 'Настройки на баркод',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'Сигурни ли сте, че искате да изтриете този доставчик?',
|
||||
'error' => 'Възникна проблем при изтриване на доставчика. Моля, опитайте отново.',
|
||||
'success' => 'Доставчикът е изтрит.',
|
||||
'assoc_assets' => 'Този доставчик е текущо асоцииран с :asset_count актива и не може да бъде изтрит. Моля, променете връзките на моделите по отношение на този доставчик и опитайте отново. ',
|
||||
'assoc_licenses' => 'Този доставчик е текущо асоцииран с :licenses_count лиценза и не може да бъде изтрит. Моля, променете връзките на лицензите по отношение на този доставчик и опитайте отново. ',
|
||||
'assoc_maintenances' => 'This supplier is currently associated with :maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
|
||||
'not_found' => 'Supplier not found.',
|
||||
'bulk_success' => 'Suppliers were deleted successfully.',
|
||||
'partial_success' => 'Supplier deleted successfully. See additional information below. | :count suppliers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'Show All',
|
||||
'2FA_reset' => '2FA нулиране',
|
||||
'accessories' => 'Аксесоари',
|
||||
'activated' => 'Активирано',
|
||||
@@ -629,6 +630,24 @@ return [
|
||||
'notes' => 'Добавете бележка',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => ':item_name still has associated items. Please remove them before deleting this :item.',
|
||||
'assoc_assets' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your asset models to no longer reference this :item and try again.',
|
||||
'assoc_maintenances' => ':item_name is currently associated with :maintenance_count maintenance(s) and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories' => ':item_name is currently associated with :accessory_count accessory(ies) and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables' => ':item_name is currently associated with :consumable_count consumable(s) and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components' => ':item_name is currently associated with :component_count component(s) and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses' => ':item_name is currently associated with :license_count license(s) and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
'assoc_assets_no_count' => ':item_name is currently associated with other assets and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models_no_count' => ':item_name is currently associated with other asset models and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'assoc_maintenances_no_count' => ':item_name is currently associated with other maintenances and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories_no_count' => ':item_name is currently associated with other accessories and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables_no_count' => ':item_name is currently associated with other consumables and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components_no_count' => ':item_name is currently associated with other components and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses_no_count' => ':item_name is currently associated with other licenses and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'Редактирай :name',
|
||||
'checkout_item' => 'Изпиши :name',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'The category was deleted successfully.'
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'Field',
|
||||
'about_fieldsets_title' => 'About Fieldsets',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used used for specific asset model types.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Encrypt the value of this field in the database',
|
||||
'encrypt_field_help' => 'WARNING: Encrypting a field makes it unsearchable.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'error' => 'There was an issue deleting the manufacturer. Please try again.',
|
||||
'success' => 'The Manufacturer was deleted successfully.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -37,7 +37,7 @@ return [
|
||||
'backups_clean_helptext' => "This can be useful if you're changing between database versions",
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage.)<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file ',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode Settings',
|
||||
|
||||
@@ -20,9 +20,9 @@ return array(
|
||||
'confirm' => 'Are you sure you wish to delete this supplier?',
|
||||
'error' => 'There was an issue deleting the supplier. Please try again.',
|
||||
'success' => 'Supplier was deleted successfully.',
|
||||
'assoc_assets' => 'This supplier is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this supplier and try again. ',
|
||||
'assoc_licenses' => 'This supplier is currently associated with :licenses_count licences(s) and cannot be deleted. Please update your licenses to no longer reference this supplier and try again. ',
|
||||
'assoc_maintenances' => 'This supplier is currently associated with :maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
|
||||
'not_found' => 'Supplier not found.',
|
||||
'bulk_success' => 'Suppliers were deleted successfully.',
|
||||
'partial_success' => 'Supplier deleted successfully. See additional information below. | :count suppliers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'show_all' => 'Show All',
|
||||
'2FA_reset' => '2FA reset',
|
||||
'accessories' => 'Accessoris',
|
||||
'activated' => 'Activat',
|
||||
@@ -629,6 +630,24 @@ return [
|
||||
'notes' => 'Add a note',
|
||||
],
|
||||
|
||||
'bulk_delete_associations' => [
|
||||
'general_assoc_warning' => ':item_name still has associated items. Please remove them before deleting this :item.',
|
||||
'assoc_assets' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models' => ':item_name is currently associated with :asset_count asset(s) and cannot be deleted. Please update your asset models to no longer reference this :item and try again.',
|
||||
'assoc_maintenances' => ':item_name is currently associated with :maintenance_count maintenance(s) and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories' => ':item_name is currently associated with :accessory_count accessory(ies) and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables' => ':item_name is currently associated with :consumable_count consumable(s) and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components' => ':item_name is currently associated with :component_count component(s) and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses' => ':item_name is currently associated with :license_count license(s) and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
'assoc_assets_no_count' => ':item_name is currently associated with other assets and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'asset_models_no_count' => ':item_name is currently associated with other asset models and cannot be deleted. Please update your assets to no longer reference this :item and try again.',
|
||||
'assoc_maintenances_no_count' => ':item_name is currently associated with other maintenances and cannot be deleted. Please update your maintenances to no longer reference this :item and try again.',
|
||||
'assoc_accessories_no_count' => ':item_name is currently associated with other accessories and cannot be deleted. Please update your accessories to no longer reference this :item and try again.',
|
||||
'assoc_consumables_no_count' => ':item_name is currently associated with other consumables and cannot be deleted. Please update your consumables to no longer reference this :item and try again.',
|
||||
'assoc_components_no_count' => ':item_name is currently associated with other components and cannot be deleted. Please update your components to no longer reference this :item and try again.',
|
||||
'assoc_licenses_no_count' => ':item_name is currently associated with other licenses and cannot be deleted. Please update your licenses to no longer reference this :item and try again.',
|
||||
],
|
||||
|
||||
'breadcrumb_button_actions' => [
|
||||
'edit_item' => 'Edit :name',
|
||||
'checkout_item' => 'Checkout :name',
|
||||
|
||||
@@ -18,9 +18,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'The category was deleted successfully.'
|
||||
'confirm' => 'Are you sure you wish to delete this category?',
|
||||
'error' => 'There was an issue deleting the category. Please try again.',
|
||||
'success' => 'Category was deleted successfully.',
|
||||
'bulk_success' => 'Categories were deleted successfully.',
|
||||
'partial_success' => 'Category deleted successfully. See additional information below. | :count categories were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'Field',
|
||||
'about_fieldsets_title' => 'About Fieldsets',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used used for specific asset model types.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Encrypt the value of this field in the database',
|
||||
'encrypt_field_help' => 'WARNING: Encrypting a field makes it unsearchable.',
|
||||
|
||||
@@ -22,9 +22,11 @@ return array(
|
||||
),
|
||||
|
||||
'delete' => array(
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'confirm' => 'Are you sure you wish to delete this manufacturer?',
|
||||
'error' => 'There was an issue deleting the manufacturer. Please try again.',
|
||||
'success' => 'The Manufacturer was deleted successfully.'
|
||||
'success' => 'Manufacturer deleted successfully.',
|
||||
'bulk_success' => 'Manufacturers deleted successfully.',
|
||||
'partial_success' => 'Manufacturer deleted successfully. See additional information below. | :count manufacturers were deleted successfully. See additional information below.',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user