Compare commits

...

7914 Commits

Author SHA1 Message Date
snipe
750c376725 Set item to null so it doesn’t get merged automatically 2025-09-29 13:29:00 +01:00
snipe
08630d948f Remove radio buttons - they don’t work correctly yet 2025-09-29 12:43:19 +01:00
snipe
dc6ee342c5 Revert custom field name text box for now 2025-09-29 10:42:40 +01:00
snipe
eea1922841 Added checkbox and radios 2025-09-25 13:22:52 +01:00
snipe
57824848e9 Update resources/views/blade/form-row.blade.php
Co-authored-by: Marcus Moore <mmoore@grokability.com>
2025-09-24 17:08:00 +01:00
snipe
235dcbc7d9 Updated more views 2025-09-24 16:58:35 +01:00
snipe
f0561475cc Update resources/views/blade/input/text.blade.php
Co-authored-by: Marcus Moore <mmoore@grokability.com>
2025-09-24 16:41:56 +01:00
snipe
3b4c51bab6 Use slot instead of label 2025-09-24 14:52:29 +01:00
snipe
150c205615 Added checkboxes to status labels page 2025-09-23 21:37:17 +01:00
snipe
cde22977b0 More checkbox changes 2025-09-23 21:23:03 +01:00
snipe
1c09657631 Handle checkboxes 2025-09-23 20:57:33 +01:00
snipe
02a4268180 Switched more fields to blade compaonents 2025-09-23 19:52:58 +01:00
snipe
f8362f4a45 handled text fields in status labels 2025-09-23 18:44:06 +01:00
snipe
682c1a8fa7 Make required false 2025-09-23 18:43:50 +01:00
snipe
3863e82dcc Handle text and date fields on license edit 2025-09-23 18:43:39 +01:00
snipe
b766f6e2b5 Made edit screen narrower on wide screens 2025-09-23 18:43:14 +01:00
snipe
a3bad98096 Added date and tooltip components 2025-09-23 18:43:02 +01:00
snipe
33e7425dee Account for tooltips 2025-09-23 18:42:46 +01:00
snipe
2554b50b38 Updated suppliers 2025-09-23 17:04:49 +01:00
snipe
433a3e11fd Fixed field type 2025-09-23 17:00:03 +01:00
snipe
c3efdd0c8d Updated company 2025-09-23 16:59:09 +01:00
snipe
d2e3a13043 Added ability to mark fields as disabled 2025-09-23 16:58:53 +01:00
snipe
c4923fa971 Updated address 2025-09-23 16:53:52 +01:00
snipe
253026de5d Updated locations edit 2025-09-23 16:51:55 +01:00
snipe
a59914e9f9 Added placeholder back in 2025-09-23 16:38:12 +01:00
snipe
671e79f01b Sorry, this shouldn’t have been in there :( 2025-09-23 16:35:04 +01:00
snipe
5c716c3f24 Updated notes maxlength 2025-09-23 16:31:20 +01:00
snipe
e138c9307e Added maxlength default for text 2025-09-23 16:30:18 +01:00
snipe
7c0c3b2bb8 Use shorthand for errors 2025-09-23 16:26:28 +01:00
snipe
514711ddbb Label blade component 2025-09-23 16:18:00 +01:00
snipe
9023eda66f Changed class 2025-09-23 14:25:52 +01:00
snipe
8ce3001ef9 First stab 2025-09-23 14:25:40 +01:00
snipe
25ce63f00b Merge pull request #17904 from grokability/#17804-searchable-columns
Fixed #17804 - make columns searchable in column picker
2025-09-19 12:43:46 +01:00
snipe
2462bc05b3 Added column search to additional views 2025-09-19 12:41:30 +01:00
snipe
c3748da0b1 Fixed #17804 - make columns searchable in column picker 2025-09-19 12:16:56 +01:00
snipe
90c242a441 Merge pull request #17897 from marcusmoore/fixes/17896-prevent-bulk-checkout-of-checked-out-assets
Fixed #17896 - Prevent assigned assets from being bulk checked out
2025-09-19 07:03:43 +01:00
Marcus Moore
52239a88b5 Improve test name 2025-09-18 17:27:17 -07:00
Marcus Moore
7a3596c86d Test against other types 2025-09-18 17:21:27 -07:00
Marcus Moore
ac8a9e38f0 Implement fix 2025-09-18 17:18:27 -07:00
Marcus Moore
5c08f3a27e Add failing test 2025-09-18 17:14:33 -07:00
snipe
5216dd75bf Bumped version 2025-09-18 14:49:15 +01:00
snipe
b8b45d2d81 Merge pull request #17892 from grokability/#17891-fixes-maintenance-file-route
Fixed #17891 - missing maintenance file deletion route
2025-09-18 13:59:10 +01:00
snipe
4b2b2cb68e Fixed #17891 - missing maintenance file deletion route 2025-09-18 13:58:30 +01:00
snipe
be4ace293e Use trans_choice for user acceptance 2025-09-18 13:51:57 +01:00
snipe
764b363bbc A few small tweaks to acceptance screen design 2025-09-18 13:38:37 +01:00
snipe
9da9166442 Merge pull request #17886 from grokability/small-tweaks-to-acceptance-pdf
Small adjustments for acceptance PDF layout
2025-09-17 22:01:41 +01:00
snipe
8ea339f0ef More small tweaks 2025-09-17 22:00:49 +01:00
snipe
89b36ba63f Derp. Uncomment the acceptance. 2025-09-17 21:43:40 +01:00
snipe
1d3dfa1fa4 Pull the acceptance stuff into the model 2025-09-17 21:43:17 +01:00
snipe
ca567eec8a Small adjustments for layout 2025-09-17 21:08:13 +01:00
snipe
41da31c379 Merge pull request #17885 from grokability/#8859-show-cost-footer-on-models
Fixed #8859 - adds purchase sums on model view
2025-09-17 14:04:38 +01:00
snipe
e81f63f46b Fixed #8859 - adds purchase sums on model view 2025-09-17 14:03:48 +01:00
snipe
ade03e4827 Merge pull request #17882 from Godmartinz/add-total-cost-columns
Adds total cost to Accessories, Consumables, Components
2025-09-17 13:56:08 +01:00
snipe
33a4c88c3a Added table to deleted_at clauses to resolve ambiguity 2025-09-17 11:44:28 +01:00
snipe
1f79776b8f Pull HTML tags out before converting markdown 2025-09-16 19:21:39 +01:00
Godfrey M
11e5f851f0 typo 2025-09-16 10:49:33 -07:00
Godfrey M
4ca1db8a1b remove footer formatter from consumable purchase cost 2025-09-16 10:43:02 -07:00
Godfrey M
14b829aa30 add total cost to components and consumables 2025-09-16 10:37:32 -07:00
Godfrey M
384652b3df add total cost to accessories 2025-09-16 10:10:49 -07:00
snipe
9db65c6ae9 Merge pull request #17881 from grokability/#17873-eula-tab-on-users
Fixed #17873 - Added EULA tab to user view
2025-09-16 14:28:50 +01:00
snipe
1346e33e99 Check that the person trying to download can see both the user and the target 2025-09-16 14:21:03 +01:00
snipe
ab9cc447aa Use more specific filename 2025-09-16 14:20:20 +01:00
snipe
fe9e0444b4 Added EULA tab to user view 2025-09-16 13:20:50 +01:00
snipe
a18957dbe9 Include output even if there is nothing to send 2025-09-16 12:33:06 +01:00
snipe
13d5b724ee Fixed tests 2025-09-16 12:16:18 +01:00
snipe
c7d8203da9 Merge pull request #17866 from grokability/_reworked_tcpdf
Fixed #14744 and #17808 - Added CJK and Arabic font support for asset acceptance
2025-09-16 12:04:15 +01:00
snipe
96b5c1d8e1 Merge pull request #17876 from uberbrady/add_users_location_index
Add new index to users over deleted_at and location_id
2025-09-16 12:03:45 +01:00
Brady Wetherington
882ee80424 Add new index to users over deleted_at and location_id 2025-09-16 11:54:24 +01:00
snipe
e977771fe4 One more query tweak 2025-09-16 11:50:50 +01:00
snipe
4339e4552e Fixed nesting in orWhere 2025-09-16 11:50:50 +01:00
snipe
b54d222943 One more query tweak 2025-09-16 11:39:02 +01:00
snipe
e4e613550a Merge pull request #17875 from grokability/fixed-eol-query
Fixed nesting in orWhere
2025-09-16 11:27:07 +01:00
snipe
d1207444db Fixed nesting in orWhere 2025-09-16 11:20:49 +01:00
snipe
0bad75b263 Fixed declined asset name 2025-09-15 20:56:57 +01:00
snipe
74b98083e2 Override the getEula() method at the SnipeModel level 2025-09-15 20:05:35 +01:00
snipe
9034b5ec11 Slightly nicer display 2025-09-15 20:04:17 +01:00
snipe
927f557672 Fixed sorting on updated/created at 2025-09-15 18:13:46 +01:00
snipe
86fb089901 Remove unused blades 2025-09-15 18:13:32 +01:00
snipe
630ea05e17 A little more cleanup 2025-09-15 17:16:05 +01:00
snipe
7df5196083 A little cleanup 2025-09-15 16:09:49 +01:00
snipe
01f7b5d709 Added CJK and Arabic font support 2025-09-15 14:46:11 +01:00
snipe
ec47ee3573 Merge pull request #17850 from Godmartinz/change-purchase-cost-to-unit
Rewords Purchase cost to Unit Cost for Accessories, Components, Consumables
2025-09-15 14:20:04 +01:00
snipe
7062962cc8 Show warnings on the dates if expired or terminated 2025-09-15 13:43:08 +01:00
snipe
fde447846a Merge pull request #17865 from grokability/show-inactive-licenses
Show inactive licenses
2025-09-15 13:42:22 +01:00
snipe
319cb1bd1e Removed logging 2025-09-15 13:23:44 +01:00
snipe
58cda5ae6d Added scopes 2025-09-15 13:22:25 +01:00
snipe
251a3db880 Fixed factory 2025-09-15 13:20:34 +01:00
snipe
30b6dcd767 Added status to breadcrumbs 2025-09-15 13:13:50 +01:00
snipe
05f6622912 Added status to URL 2025-09-15 13:13:32 +01:00
snipe
36183ac19d Fixed url and tooltip text 2025-09-15 13:13:18 +01:00
snipe
f6a823e0a8 Escape text 2025-09-15 13:13:04 +01:00
snipe
312353551d Changed button color 2025-09-15 13:11:58 +01:00
snipe
fd5c9cee38 Merge pull request #17863 from grokability/added-status-label-to-asset-view
Added status label to asset view
2025-09-15 10:31:54 +01:00
snipe
84bf71802c Added status label to asset view 2025-09-15 10:31:06 +01:00
snipe
35739c2eef Merge pull request #17835 from marcusmoore/feature/10052-assigned-assets-via-api
Fixed #10052 - Added api endpoint for retrieving assets checked out to asset
2025-09-15 08:38:35 +01:00
snipe
1914a71623 Merge pull request #17851 from marcusmoore/fixes/qty-in-component-email
Fixed potentially incorrect qty in component checkout email
2025-09-15 08:37:48 +01:00
snipe
dcc53886d9 Merge pull request #17857 from uberbrady/fix_client_tls_ldap
Fixed #17414 - client-side TLS certificate didn't work in Google LDAP
2025-09-15 08:37:14 +01:00
Brady Wetherington
21ef87ef09 Merge branch 'develop' into fix_client_tls_ldap 2025-09-12 18:52:43 +01:00
snipe
b67f808da9 Fixed fieldname 2025-09-12 18:07:40 +01:00
snipe
ad69447b53 Merge pull request #17858 from grokability/ignore-expiring-licenses-with-past-termination-date
Ignore expiring licenses with past termination date
2025-09-12 17:55:14 +01:00
snipe
b4614df88c Removed awkward period 2025-09-12 17:39:52 +01:00
snipe
7171247cdc Updated tests 2025-09-12 17:37:36 +01:00
snipe
6d0084f108 Nicer alert layout for expiring asset report 2025-09-12 17:37:27 +01:00
snipe
29359f42ae Added table printout 2025-09-12 17:37:12 +01:00
snipe
cf875bf872 Changed verbiage 2025-09-12 17:37:03 +01:00
snipe
13c0d335d3 Refactor alert query 2025-09-12 17:36:51 +01:00
snipe
ceb33409b5 Removed duplicate array key 2025-09-12 17:36:33 +01:00
Brady Wetherington
83597d4a8b Possible fix to client-side TLS certificate issue for google LDAP 2025-09-12 17:12:35 +01:00
Marcus Moore
81eefc5448 Merge branch 'develop' into fixes/qty-in-component-email 2025-09-11 14:14:42 -07:00
Marcus Moore
082bc3ece4 Use correct qty in component checkout email 2025-09-11 14:10:31 -07:00
snipe
b2406b61fb Merge pull request #17826 from marcusmoore/fixes/17585-accessory-checkout-amount-in-subject
Fixed #17585 - Display accessory checkout qty in subject line and intro text
2025-09-11 21:55:20 +01:00
Marcus Moore
15698d7694 Update introduction lines with qty 2025-09-11 13:50:48 -07:00
Godfrey M
990cd82f97 change purchase cost to unit cost in several places 2025-09-11 10:46:20 -07:00
snipe
c87829b3e8 Merge pull request #17849 from Godmartinz/rollbar-unreassignablecount-fix
Fixed typo in UnreassignableCount
2025-09-11 18:43:07 +01:00
Godfrey M
6799c41d65 fixed typo 2025-09-11 10:23:53 -07:00
snipe
80c059be58 Skip terminated licenses in alert 2025-09-11 13:14:53 +01:00
snipe
aa3f896538 Merge pull request #17842 from Godmartinz/expiration-and-termination-license-enhancement
Adds #8799 Prevention of checkout of expired or terminated licenses
2025-09-11 11:46:15 +01:00
snipe
d8c17a8a5e One more small tweak to language 2025-09-11 11:40:15 +01:00
Godfrey M
850939367c adds translation warning message 2025-09-10 12:59:35 -07:00
Marcus Moore
bf4fef9bf7 Merge branch 'develop' into fixes/17585-accessory-checkout-amount-in-subject 2025-09-10 12:49:41 -07:00
Godfrey M
d5175961a4 adds a seperate formatter for checking out on license index, fix interactions 2025-09-10 12:42:10 -07:00
snipe
e7e1d6a232 Small tweaks to language 2025-09-10 20:17:33 +01:00
snipe
712345f3a0 Added link to discussions and discord 2025-09-10 20:14:19 +01:00
snipe
54c9bc3dcb Merge pull request #17840 from marcusmoore/issue-template
Made install method required in issue template
2025-09-10 20:14:10 +01:00
Godfrey M
e796c0da4a disallows checkout of expired or terminated licenses 2025-09-10 12:08:14 -07:00
Marcus Moore
cf8ff0f43e Add note on English 2025-09-10 10:41:20 -07:00
Marcus Moore
e67ce23a7c Require installation method 2025-09-10 10:23:22 -07:00
snipe
a66bb95a81 A few more tweaks 2025-09-10 15:48:21 +01:00
snipe
c66fa33b2e Have I mentioned how much I hate YAML? 2025-09-10 15:43:09 +01:00
snipe
56eebb9db4 Small tweaks to templates 2025-09-10 15:40:12 +01:00
snipe
d9773f107e Added feature request form
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:38:19 +01:00
snipe
e09112f46a Require installation type
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:33:06 +01:00
snipe
50a17a82b6 Sigh
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:30:42 +01:00
snipe
7eb032d646 Rename issue template (I guess?)
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:25:51 +01:00
snipe
e065f22f8e Merge pull request #17838 from grokability/issue-form
New GH issue form
2025-09-10 15:20:51 +01:00
snipe
c1b4ba1f85 Last one for now
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:20:27 +01:00
snipe
eeaec471f0 Dunno if this will work
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:19:29 +01:00
snipe
0d3c8678d8 Moved text
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:17:16 +01:00
snipe
bbddf5f95b Still a few more tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:15:09 +01:00
snipe
3b8c8b3af9 Nicer markdown
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:12:38 +01:00
snipe
84753aa13f Added browser console
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:08:37 +01:00
snipe
90b84451d8 Fixed indenting
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:07:04 +01:00
snipe
54c8ae41cc Still hate YAML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:06:03 +01:00
snipe
7d32b1a724 God I hate YAML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:05:27 +01:00
snipe
69ffd63ca6 Removed backticks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:02:50 +01:00
snipe
4857c19eb6 More tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:02:07 +01:00
snipe
d535e23da0 More template tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:51:33 +01:00
snipe
30e02544ab Try renaming so I can preview
via https://github.com/orgs/community/discussions/7039#discussioncomment-5327083

Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:43:16 +01:00
snipe
ee53925bd2 Starter for preview
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:40:38 +01:00
snipe
40495b8a17 Small demo tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 12:33:33 +01:00
Marcus Moore
6bc9a82a7a Formatting 2025-09-09 14:51:22 -07:00
Marcus Moore
6504ee37bd Remove dump 2025-09-09 13:09:52 -07:00
Marcus Moore
082bff2fa8 Add and use query scope helper 2025-09-09 13:04:14 -07:00
Marcus Moore
ab7bd86336 Improve assertions 2025-09-09 13:01:59 -07:00
Marcus Moore
eada0b0bb5 Implement test 2025-09-09 11:58:43 -07:00
Marcus Moore
f221f9f22a Implement test 2025-09-09 11:50:41 -07:00
snipe
6731e44a0d Merge pull request #17828 from marcusmoore/fixes/17586-acceptance-banner-qty
Fixed #17586 - Display accurate quantity in banner
2025-09-09 19:38:34 +01:00
Marcus Moore
acc37045e4 Implement test 2025-09-09 11:34:50 -07:00
Marcus Moore
a7c5899c16 Implement test 2025-09-09 11:33:54 -07:00
Marcus Moore
80b02635a9 Add test stub 2025-09-09 10:10:53 -07:00
snipe
f90de5ec67 Merge pull request #17833 from grokability/tighter-controls-on-licenses
Tighter controls on license deletion, also fixes #16227 adding more tables to location print
2025-09-09 15:35:12 +01:00
snipe
9a3e046530 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:30:34 +01:00
snipe
7f56e461fe Added child location icon
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:19:00 +01:00
snipe
1da37e0d38 Added child location count
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:47 +01:00
snipe
0004d4936c Cleaned up print view
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:28 +01:00
snipe
7a6fdc4e0a Added parent ID to location API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:09 +01:00
snipe
2eb727bd0c Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 13:51:56 +01:00
snipe
57af507170 Added deleted button to locations, check for additional relations
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 12:20:34 +01:00
snipe
e37f87465c Merge pull request #17827 from Godmartinz/duplicate-emails-fix
Fixed #17756 - Duplicate checkout emails
2025-09-09 09:33:03 +01:00
Marcus Moore
324070f345 Begin to build out test 2025-09-08 17:20:22 -07:00
Marcus Moore
e1aa843b6d Scaffold test 2025-09-08 17:05:14 -07:00
Godfrey M
e652a7fd61 fix tests 2025-09-08 14:56:15 -07:00
Marcus Moore
2397bfbad0 Improve variable name 2025-09-08 14:51:19 -07:00
Marcus Moore
7e2bc8e452 Display accurate quantity in banner 2025-09-08 14:48:11 -07:00
Godfrey M
00e8fd0483 cloned mailable 2025-09-08 14:44:58 -07:00
Marcus Moore
6d8bf2c665 Display accessory checkout qty in subject line 2025-09-08 14:25:56 -07:00
snipe
72466f1aab Revert "Merge pull request #17823 from grokability/#17822-fix-n+1-in-topmenu"
This reverts commit 6901deccbf, reversing
changes made to 6b87c90e02.

Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 15:04:28 +01:00
snipe
6901deccbf Merge pull request #17823 from grokability/#17822-fix-n+1-in-topmenu
Fixed #17822 - n+1 in top menu check
2025-09-08 14:33:47 +01:00
snipe
5a9c906eb9 Added filter to assets loading
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 14:32:58 +01:00
snipe
b95b60b49e Use eager-loaded model assets
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 14:07:49 +01:00
snipe
14408ef18f Fixed n+1 in top menu check
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 13:55:22 +01:00
snipe
6b87c90e02 Use scope for assets for show in sidebar
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 13:33:19 +01:00
snipe
2b4d5222eb Made “add new” buttons clearer on table headers
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 12:17:29 +01:00
snipe
9604ecebad Fixed jobtitle in advanced search
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 12:01:59 +01:00
snipe
0d67970a45 Update @swift2512 as a contributor 2025-09-08 09:27:34 +01:00
snipe
913b9f0c40 Reworks PR #15490 - adds location to inventory email
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 09:26:36 +01:00
snipe
610a5745f0 Merge pull request #17818 from grokability/dependabot/github_actions/develop/actions/stale-10
Bump actions/stale from 9 to 10
2025-09-08 09:17:19 +01:00
dependabot[bot]
dff12324c6 Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 08:16:24 +00:00
snipe
f340390fc8 Merge pull request #17703 from marcusmoore/17369-accessory-checkout-qty-scaffold
Fixed issues around accessory acceptance
2025-09-08 09:09:26 +01:00
snipe
be81e74921 Shifted log meta position
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 08:24:50 +01:00
snipe
2bee8729e4 Better escaping for display_name in API controller
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 08:14:33 +01:00
snipe
5d03038734 Use auto-direction for <p> in preview
Signed-off-by: snipe <snipe@snipe.net>
2025-09-05 15:12:38 +01:00
snipe
75b11de0f4 Bumped composer packages
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 19:55:30 +01:00
snipe
c5bede8594 More small display_name fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 17:15:06 +01:00
snipe
cd9ea6ae3b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:56:43 +01:00
snipe
113b762ec7 Fix for null location in locations print
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:55:44 +01:00
snipe
78704d8b85 Fixed #17803 - checked out to name in custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:51:10 +01:00
snipe
1109db76fe Merge pull request #17797 from grokability/#17796-search-on-model-name-and-number
Fixed #17796 - search on model name and number on importer
2025-09-04 16:35:43 +01:00
snipe
b1b390febf Removed flaky test
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:30:02 +01:00
snipe
be451fa0c0 Removed asset model from original factory
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:14:27 +01:00
snipe
1fa553c785 Use nths
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:04:16 +01:00
snipe
905f61371d Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:02:40 +01:00
snipe
7da5210a01 Switched to nth from fetchOne in CSV reader
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 12:50:12 +01:00
snipe
18172d3896 Merge pull request #17752 from marcusmoore/fixes/existing-assets-report
Improve expiring alerts notification layout
2025-09-04 12:33:32 +01:00
snipe
c28e78b9e2 Merge pull request #16063 from Godmartinz/checkin_non_reassignable_license
Allows check-ins of unreassignable licenses
2025-09-04 11:22:17 +01:00
snipe
e7827a3847 Merge pull request #17800 from marcusmoore/chore/test-action-logs
Upload log file in GitHub Action tests
2025-09-04 10:20:12 +01:00
Marcus Moore
039564e74c Wrap migration in check 2025-09-03 12:52:46 -07:00
Marcus Moore
e164595a0f Fall back to displaying 1 2025-09-03 12:35:18 -07:00
Marcus Moore
d29e09a3ff Merge branch 'develop' into 17369-accessory-checkout-qty-scaffold
# Conflicts:
#	resources/views/account/accept/create.blade.php
#	resources/views/account/accept/index.blade.php
2025-09-03 12:26:43 -07:00
Godfrey M
db9f85e9da Merge branch 'develop' into checkin_non_reassignable_license
# Conflicts:
#	app/Models/License.php
#	resources/views/licenses/view.blade.php
#	tests/Feature/Checkins/Api/LicenseCheckInTest.php
2025-09-03 11:09:51 -07:00
Marcus Moore
27022954b1 Inline icon 2025-09-03 10:44:19 -07:00
Marcus Moore
30362c924f Upload log as artifact 2025-09-03 10:13:01 -07:00
snipe
bf63b15b46 Merge pull request #17799 from grokability/#17798-adds-require-serial-to-importer
Fixed #17798 - added `require_serial` to model importer
2025-09-03 15:32:42 +01:00
snipe
19aea4bd6c Fixed #17798 - added require_serial to model importer
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:25:56 +01:00
snipe
090890e9c6 Fixed #17796 - search on model name and number on importer
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:15:29 +01:00
snipe
605022a9e3 Merge pull request #17795 from grokability/#17791-larger-currency-field
Fixed #17791 - increase size of purchase cost field
2025-09-03 15:09:28 +01:00
snipe
b06c58fe7b Switch to older style rules for consistency
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:06:27 +01:00
snipe
f5c8b3eb04 Fixed #17791 - increase size of purchase cost field
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:03:49 +01:00
snipe
739980aa09 Merge pull request #16947 from Godmartinz/add-require-serial-to-models
Adds require serial as Asset Model option
2025-09-03 14:53:15 +01:00
snipe
afde5943e3 Fixed typo - #17784
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 14:39:59 +01:00
snipe
32300cb42c Merge pull request #17788 from grokability/add-delete-log-instead-of-soft-deleting-the-log-itself
Fixed #17777 - Log upload deletion
2025-09-03 14:37:32 +01:00
snipe
de3b1697c8 Merge pull request #17760 from Godmartinz/fix-translation-string-in-notifications
Fixes #17759 translation used in asset check in/out notifications
2025-09-03 14:33:57 +01:00
snipe
a18fb10b5a Merge pull request #17783 from marcusmoore/fixes/company-in-location-print
Fixed company name reference in location print
2025-09-03 08:44:40 +01:00
snipe
52140dbe06 Log upload deletion
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 08:37:42 +01:00
Marcus Moore
db5bb1928e Merge branch 'develop' into fixes/existing-assets-report
# Conflicts:
#	resources/views/notifications/markdown/report-expiring-assets.blade.php
2025-09-02 15:07:23 -07:00
Marcus Moore
65b66beb07 Make icon more prominent 2025-09-02 14:55:46 -07:00
Marcus Moore
c83504b4e7 Use display_name in place of presenter 2025-09-02 12:57:40 -07:00
Godfrey M
cd2e7ee31d fix google and slack notifications 2025-09-02 10:53:42 -07:00
Godfrey M
c3a0a0415a fix MS Teams Notifications 2025-09-02 10:48:02 -07:00
snipe
709f4672b7 Merge pull request #17771 from grokability/#10107-remember-checkout-to-type
Fixed #10107 - remember checkout to type
2025-09-02 13:46:13 +01:00
snipe
e6c030b050 Merge pull request #17781 from grokability/#17780-add-withtrashed-to-files
Fixed #17780 - Added `withTrashed()` to allow viewing files on deleted objects
2025-09-02 13:45:18 +01:00
snipe
7bd3a791a1 Added withTrashed() to allow viewing files on deleted objects
Signed-off-by: snipe <snipe@snipe.net>
2025-09-02 13:39:35 +01:00
snipe
b9cfc03b4f display name fix
Signed-off-by: snipe <snipe@snipe.net>
2025-09-02 11:30:34 +01:00
snipe
131327a64d Fixed “undefined” error on status labels in BS tables
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 20:32:42 +01:00
snipe
77d002a158 Use null for role as well
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:43:05 +01:00
snipe
94699893ac Updated fieldname in user API request
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:17:39 +01:00
snipe
9f81989bdd Return null instead of blank for display_name in API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:06:28 +01:00
snipe
15abe36c53 More tweaks to display
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:58:02 +01:00
snipe
3094e007ee Set session to remember checkout type
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:28:07 +01:00
snipe
eb259aee22 Set asset selector to true for components since it will always be required
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:18:58 +01:00
snipe
c05c8defb9 Merge pull request #17769 from grokability/#9978-add-pivot-to-accessories-api
Fixes #9978 - Added payload to accessories API
2025-09-01 12:28:08 +01:00
snipe
bf5668a42e Added payload to accessories API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 12:23:39 +01:00
snipe
ec310bc8fb Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 11:56:01 +01:00
snipe
db477421b2 Bumped to 8.3.1
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 11:54:53 +01:00
snipe
30a9496cf5 Merge pull request #17748 from Godmartinz/parent-location-in-asset-view
Adds #10969 Parent location to Asset Checked out to info
2025-09-01 11:49:42 +01:00
snipe
6cefa0d0b3 Merge pull request #17745 from Godmartinz/dropdown-link-color-fix
Fixes #17488 (Part 2) Nav dropdown link color and skin names
2025-09-01 11:48:29 +01:00
snipe
9284984265 Merge pull request #17768 from Speedyduck300000/develop
Fixed #17742: don't delete random actionlog when trying to delete a file
2025-09-01 11:40:06 +01:00
Speedyduck300000
53b96168a9 fixed uploadfilescontroller to use the file_id to delete the correct
entry.
2025-09-01 07:34:18 +02:00
Godfrey M
eadce51f10 fixes check in check out translations for assets in notiications 2025-08-29 11:12:05 -07:00
snipe
b3c583b6dc Few more ->display_name
Signed-off-by: snipe <snipe@snipe.net>
2025-08-29 10:17:16 +01:00
snipe
28abeab31d Fixed a few more display_name instances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-29 10:06:58 +01:00
snipe
12a649ec4b Merge pull request #17751 from marcusmoore/fixes/name-in-expiring-assets
Fixed user display name in expiring asset notification
2025-08-29 01:11:05 +01:00
Marcus Moore
35b79e4d14 Remove old comments 2025-08-28 16:56:40 -07:00
Marcus Moore
751dad7f2e Inline days 2025-08-28 16:56:12 -07:00
Marcus Moore
b08d86220a First pass at moving to table structure 2025-08-28 16:53:13 -07:00
Marcus Moore
3a27ecc475 Use display_name in place of name() 2025-08-28 16:22:24 -07:00
Godfrey M
da6fab5d43 adds parent location to checked out to location 2025-08-28 13:37:40 -07:00
snipe
ca95b29cd6 Add telescope tables to the excepted tables
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 19:52:56 +01:00
Godfrey M
c5c68e9dd5 fix dropdown link color and skin names 2025-08-28 11:49:37 -07:00
snipe
44fbde26fa Merge pull request #17743 from grokability/normalize-trait-locations
Moved model traits into proper directory
2025-08-28 18:52:43 +01:00
snipe
6e2bcd6aa9 Merge pull request #17680 from grokability/added-telescope
Added laravel telescope for dev environment
2025-08-28 18:52:18 +01:00
snipe
9c0202e5ce Bumped to 8.3.0
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:33:46 +01:00
snipe
39ef353073 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:32:07 +01:00
snipe
7b5d90dd81 Moved model traits into proper directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:23:26 +01:00
snipe
d1129081df Asset nothing is sent if send_welcome is not checked/passed
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:05:40 +01:00
snipe
315a812df5 Fixed typos
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 16:41:56 +01:00
snipe
cfc979acf0 Merge pull request #17432 from oolivero45/patch-1
Fixed #17431: EULA not displaying on asset acceptance page
2025-08-28 16:09:36 +01:00
snipe
d7407d70a3 Merge pull request #17741 from grokability/improved-user-create-tests
Improved user create tests
2025-08-28 13:32:46 +01:00
snipe
8ccd2e97a8 Improved user create tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 13:27:08 +01:00
snipe
988204619f Merge pull request #17740 from grokability/renamed-user-test
Renamed the test for consistency
2025-08-28 13:05:05 +01:00
snipe
cad6cc3007 Renamed the test for consistency
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 13:02:01 +01:00
snipe
b303875f1d Merge pull request #17734 from grokability/#17726-add-welcome-email-to-new-user-form
Fixed #17726: add welcome email to new user form
2025-08-28 07:29:56 +01:00
snipe
d5cc61f378 Added send to API call for creating users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 07:28:51 +01:00
snipe
0d7ec43262 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:19:41 +01:00
snipe
d3747f4daa Added welcome email to controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:12:01 +01:00
snipe
af695e7dc8 Added help to user importer
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:52 +01:00
snipe
1edbfd87df Added welcome email checkbox to user create form
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:40 +01:00
snipe
454be01a6c Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:23 +01:00
snipe
745fc515f1 Merge pull request #17713 from Godmartinz/fix-localization-for-email-notifications
Adds #5554 locale for acceptance notifications and checkin/out emails
2025-08-28 05:29:28 +01:00
snipe
715b9c1182 Merge pull request #17730 from Godmartinz/update-asset-accepance-with-category
Adds #9000 Item type to Account Asset Acceptance index
2025-08-28 05:22:54 +01:00
Godfrey M
95be847d87 renamed attribute 2025-08-27 14:10:51 -07:00
Godfrey M
c1a6546eba change column header 2025-08-27 14:09:13 -07:00
Godfrey M
648c25a0a7 adds item type to Accept asset index 2025-08-27 14:06:10 -07:00
Godfrey M
f2ec7f2975 fix tests 2025-08-27 13:22:35 -07:00
Godfrey M
f518af6d61 fix class name 2025-08-27 13:09:05 -07:00
snipe
b11c6a5c06 Updated depreciation translation with more information.
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 16:35:49 +01:00
snipe
5822e4e692 Merge pull request #17729 from grokability/exit-early-if-ldap-troubleshooter-cannot-decrypt-ldap-pw
Put LDAP troubleshooter's decrypt in a try/catch to avoid crashing if it cannot decrypt the password
2025-08-27 15:47:22 +01:00
snipe
e4f06b0ca8 One last time
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:43:48 +01:00
snipe
2f093c0e82 Added early exist on step 4 as well
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:41:39 +01:00
snipe
5d9dc0e74d Put decrypt in a try/catch
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:33:26 +01:00
snipe
adc3a34929 Fixed copy for encrypted custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 14:38:36 +01:00
snipe
cb2ffe6b3f Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 14:02:39 +01:00
snipe
b3e3d01672 Fixed LDAP icon spacing
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 13:32:02 +01:00
snipe
4a6520fc78 Fixed address field
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 13:30:07 +01:00
snipe
75ab6c9b13 Merge pull request #17723 from uberbrady/improve_ldap_certificate_ignoring
Improve ldap certificate ignoring
2025-08-27 13:29:33 +01:00
snipe
2f77fcb526 Merge pull request #17724 from Godmartinz/checkout2location_email_fix
Fixes #17642 Checkouts to location email for Assets and Accessories
2025-08-27 13:02:57 +01:00
Brady Wetherington
60604c3481 With the new SSL stuff, we are calling ldap_set_option() one more time now 2025-08-27 12:25:39 +01:00
Godfrey M
671c113cd2 add coma to translation" 2025-08-26 16:07:04 -07:00
Godfrey M
8a74d21ede fixes checkout emails to location for assets and accessories" 2025-08-26 16:00:26 -07:00
Godfrey M
75995b2109 fix checkout to location email 2025-08-26 15:34:38 -07:00
Marcus Moore
4298aad008 Merge branch 'develop' into 17369-accessory-checkout-qty-scaffold
# Conflicts:
#	app/Http/Controllers/Account/AcceptanceController.php
#	resources/views/notifications/markdown/asset-acceptance.blade.php
2025-08-26 11:39:52 -07:00
Marcus Moore
823c67400d Fix indent 2025-08-26 11:34:10 -07:00
Marcus Moore
3160d1064d Remove unused import 2025-08-26 11:32:38 -07:00
snipe
d1eefc3fea Merge pull request #17692 from grokability/#17387-make-saml-key-size-an-env
Fixed #17386 - Added SAML key size to env - possible alternative to #17387
2025-08-26 16:28:27 +01:00
Brady Wetherington
16795382fc Many cleanups to default-mode of LDAP troubleshooter 2025-08-26 15:53:18 +01:00
snipe
eb17974adc Merge pull request #17722 from grokability/#17704-retain-linebreaks
Fixed #17704 -  retain linebreaks on custom field clipboard copy
2025-08-26 15:44:38 +01:00
snipe
22852c27f8 Use generic length for asterisks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:38:56 +01:00
snipe
f4a94d975d Fixes #17704 - retain linebreaks in clipboard for multi-line custom field copying
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:33:19 +01:00
snipe
7a36bbbd1e Merge pull request #17721 from grokability/small-ldap-preview-display-tweaks
Improved LDAP field sync preview
2025-08-26 15:26:09 +01:00
snipe
2b401b965b Fixed casing
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:22:00 +01:00
snipe
314bc5b44f Added manager
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:14:29 +01:00
snipe
76374f0d5a Updated text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:14:22 +01:00
snipe
264efb015e Fixed jobtitle field mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:05:05 +01:00
Brady Wetherington
e74460aefc Merge branch 'develop' into improve_ldap_certifcate_ignoring 2025-08-26 15:01:11 +01:00
Brady Wetherington
55a5a12b30 Formalize the 'double-barrel' method of setting TLS cert ignores 2025-08-26 15:00:33 +01:00
snipe
58944a38eb Make screen and table wider
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:59:11 +01:00
snipe
469e3bd475 Nicer ldap preview layout, show all mapped fields
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:51:34 +01:00
snipe
17650c5735 Changed field title
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:03:11 +01:00
Brady Wetherington
15e64155b5 Add version checking to LDAP troubleshooter, clean up ldap model 2025-08-26 13:57:25 +01:00
snipe
39955ac760 Add @akaspeh1 as a contributor 2025-08-26 12:42:20 +01:00
snipe
855a176ca9 Add @nickwest as a contributor 2025-08-26 12:42:15 +01:00
snipe
47b2b30455 Merge pull request #17710 from akaspeh1/develop
Adds support for label sheets Avery L4736 & L6009
2025-08-26 12:42:02 +01:00
snipe
b702e3e2de Merge pull request #17492 from ischooluw/17448-feature-notes-api-endpoints
Fixes #17448: feat(api) - API endpoint for Adding Ad-Hoc Notes to Assets
2025-08-26 12:40:52 +01:00
snipe
a6b74d56c6 Merge pull request #17709 from grokability/add-display-name-to-users-fixed
Added display name to users for LDAP/SCIM, added new sync fields (replaced #17650)
2025-08-26 12:39:25 +01:00
snipe
a4222bcaef Merge pull request #17711 from grokability/dependabot/github_actions/develop/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-26 12:10:24 +01:00
snipe
ecf24511cd Fixed tests for real this time tho
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 12:09:55 +01:00
snipe
abb097a391 Merge pull request #17714 from Godmartinz/Audit_null_fix
Added null checks to MS Teams Audit notification
2025-08-26 10:44:51 +01:00
Godfrey M
dd742a2e4a add a check for audit notification variables in MS Teams and a translation 2025-08-25 15:10:41 -07:00
Godfrey M
128bdf500a sends an email for to locale and cc locale 2025-08-25 12:02:23 -07:00
dependabot[bot]
73ac00bc51 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 16:25:39 +00:00
snipe
3524e23e38 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 17:17:45 +01:00
Jakub Aqaba Štarman
be0f3910bb Fixed: Old computation 2025-08-25 16:57:32 +02:00
snipe
07dbc6842c Are you KIDDING ME, Github??
This reverts commit c8e79aa5ca, reversing
changes made to e60f2b2332.

Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:56:28 +01:00
Jakub Aqaba Štarman
5a16b59462 Adds support for label sheets Avery L4736 & L6009 2025-08-25 16:47:52 +02:00
Brady Wetherington
13cd7071b8 WIP improving some LDAP stuff 2025-08-25 15:41:01 +01:00
snipe
40108b196c Trying to fix import tests :(
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:28:43 +01:00
snipe
c8e79aa5ca Merge branch 'develop' into add-display-name-to-users-fixed 2025-08-25 15:28:20 +01:00
snipe
e60f2b2332 Tightened up accessor code for better inheritence
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:00:10 +01:00
snipe
b6d397bcca Updated ->present()->fullName() to ->display_name
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 14:57:34 +01:00
Marcus Moore
918426a2fa Add qty to accept assets table 2025-08-21 15:49:36 -07:00
Marcus Moore
c076b37c9b Add qty to accessory eula pdf 2025-08-21 15:05:24 -07:00
Marcus Moore
7c58bfa282 Add qty to AcceptanceAssetDeclinedNotification 2025-08-21 14:56:24 -07:00
Marcus Moore
0caaba156d Add qty to AcceptanceAssetAcceptedNotification 2025-08-21 14:54:43 -07:00
Marcus Moore
c22575812d Add qty to AcceptanceAssetAcceptedToUserNotification 2025-08-21 14:53:00 -07:00
Marcus Moore
0ede4da816 Remove CleanDeclinedAccessoryCheckouts command 2025-08-21 14:34:31 -07:00
Marcus Moore
98e23ff92e Remove legacy testing from test 2025-08-21 14:34:16 -07:00
snipe
6503f9c667 Revert "Merge pull request #17650 from grokability/add-displayName-to-users"
This reverts commit 4770e469b4, reversing
changes made to 29a18c7c8b.

Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 20:23:47 +01:00
snipe
4770e469b4 Merge pull request #17650 from grokability/add-displayName-to-users
Add display name to users for LDAP/SCIM, added new sync fields
2025-08-21 18:22:34 +01:00
snipe
29a18c7c8b Merge pull request #17696 from uberbrady/add_created_at_index_to_models
Fixed [FD-49550] - added a 'created_at' index to the models table
2025-08-21 14:54:20 +01:00
Brady Wetherington
6db0003e3f Adds a 'created_at' index to the models table 2025-08-21 13:44:14 +01:00
snipe
c538c460fa Merge pull request #17695 from grokability/#17482-better-localization-indates-on-asset-view
Use nicer local for purchase date
2025-08-21 13:13:26 +01:00
snipe
822339fe42 Moved warning
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 13:13:11 +01:00
snipe
b84d9282ca Use normal locale for warranty
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 13:05:01 +01:00
snipe
952b6f33bb Add @strobelm as a contributor 2025-08-21 11:51:37 +01:00
snipe
c57c4b8ff2 Merge pull request #17691 from qay21/fix-components-url
Fix components presenting wrong URLs
2025-08-21 11:37:27 +01:00
snipe
39e6223ff2 POssible alternative to #17386 - adding SAML key size to env
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 11:27:50 +01:00
qay
d8dd274c08 Fix components presenting wrong URLs 2025-08-21 12:26:13 +02:00
snipe
15f97b6cb9 Merge pull request #17591 from Godmartinz/add-serial-to-expiring-asset-report
Adds #17440 serial number column to Expiring Assets Report
2025-08-21 11:14:45 +01:00
snipe
fc091c1174 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 09:29:12 +01:00
snipe
c07ef4d87f A few small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 09:25:42 +01:00
Marcus Moore
c7bdad649a Build out command 2025-08-20 16:06:11 -07:00
Marcus Moore
18c2508d2f Scaffold command for cleaning accessory_checkout 2025-08-20 13:49:19 -07:00
Marcus Moore
4dcfd8b353 Improve method name 2025-08-20 13:19:00 -07:00
Marcus Moore
726116574d Improve readability? 2025-08-20 12:40:03 -07:00
Marcus Moore
27f02014ca Add failing test 2025-08-20 12:26:55 -07:00
Marcus Moore
f80f1acaa7 Improve variable name 2025-08-20 12:15:58 -07:00
Marcus Moore
39d5ffeceb Implement fix 2025-08-20 12:05:58 -07:00
Marcus Moore
48ba7eed3e Remove legacy checks from test 2025-08-20 11:45:36 -07:00
snipe
11eee833bb Fixed #17667 - Switch to hyphens for windows
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 15:56:10 +01:00
snipe
35b358d336 Check for $user to handle tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:47:58 +01:00
snipe
ae109be631 Small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:43:52 +01:00
snipe
3f7ed73395 Added laravel telescope for dev environment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:26:28 +01:00
snipe
fec9d716ee Merge pull request #17679 from grokability/#17674-add-ods-and-odt
Fixed #17674: added .ods, .odp, and .odt as acceptable upload types
2025-08-20 14:17:08 +01:00
snipe
da5b1afd19 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:11:42 +01:00
snipe
618106c103 Fixed #17674 - added odp, ods, odt to accepted files
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:11:20 +01:00
snipe
312be98132 Add @FlorestanII as a contributor 2025-08-20 12:43:43 +01:00
snipe
e0bb77a6d6 Merge pull request #17664 from FlorestanII/feature/support-for-dymo-11354-labels
Support for Dymo 11354 Labels.
2025-08-20 12:43:29 +01:00
snipe
855922c21a Account for null in tetss (vs 0)
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:32:16 +01:00
snipe
bc645d2621 Use email formatter in licensed_to_email display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:24:16 +01:00
snipe
9c06ff3899 Check for numeric
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:00:18 +01:00
snipe
2a37aa3b49 Fixed tooltip
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 10:34:05 +01:00
snipe
bf591320af Fixed #17665 - delete custom report modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 09:58:30 +01:00
snipe
56e687bed2 Retuen the display name in the API call
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 09:33:00 +01:00
Marcus Moore
9caa240fdb Revert "Remove total qty of accessory checkouts"
This reverts commit 3ffb73a516.
2025-08-19 17:17:46 -07:00
Marcus Moore
3ffb73a516 Remove total qty of accessory checkouts 2025-08-19 17:04:13 -07:00
Marcus Moore
cc1132be87 Remove flakiness 2025-08-19 16:50:36 -07:00
Marcus Moore
1c31f126ef Clear some flakiness 2025-08-19 16:46:41 -07:00
Marcus Moore
d8eaf2676f Add a couple of notes 2025-08-19 15:54:46 -07:00
snipe
07b25fe376 Add display name to summary
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 20:52:18 +01:00
snipe
c2ecd20b7d Updated field text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 20:47:48 +01:00
snipe
1b42abcc98 Fixed mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 19:54:32 +01:00
snipe
9efb49d510 Merge pull request #17663 from Godmartinz/sub-out-translation
Fixes #17653 changes translation to administrator
2025-08-19 19:43:47 +01:00
snipe
2d6270c697 Updated validation, switch to string() as db field type
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 19:19:29 +01:00
snipe
0823c23a6e Fixed placeholder text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:51:56 +01:00
snipe
b3f0ce4b2a Use fieldsets for LDAP settings
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:38:47 +01:00
snipe
8b83584b67 Added mapping fields to LDAP
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:31:58 +01:00
Godfrey M
9eb686fe08 changes translation to administrator 2025-08-19 10:23:15 -07:00
Johannes Pollitt
765051ce88 Added LabelWriter for 11354 format labels.
Printable for example with the Dymo LabelWriter 450.
2025-08-19 19:21:48 +02:00
Godfrey M
ed402e0122 adds serial underneath name 2025-08-19 10:10:20 -07:00
snipe
1488271a83 Added #8522 - depreciation info on Asset API
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 14:48:48 +01:00
snipe
48bbf8d005 Merge pull request #17655 from uberbrady/add_category_indexes
Add new indexes to category_id and deleted_at
2025-08-19 14:26:38 +01:00
Brady Wetherington
e97b969d66 Add new indexes to category_id and deleted_at 2025-08-19 14:20:36 +01:00
snipe
cdd12df81a Fixed #17627 - jquery UI fix for draggable/sortable
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 14:12:06 +01:00
snipe
050a3afc74 Fixed #17649 - nicer layout on new location modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 13:56:21 +01:00
snipe
270401c693 Added display name to user create modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 13:12:57 +01:00
snipe
551822ce7d Merge pull request #17648 from grokability/possible-fix-for-#17641-map-mobile-via-scim
Fixed #17641: map mobile number via SCIM
2025-08-19 13:09:07 +01:00
snipe
4b8c371097 Updated true to false
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:59:28 +01:00
snipe
90fbf6da46 Modify the presenter to see if they have a display_name set
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:44 +01:00
snipe
0c3103e3d2 Modify the getter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:30 +01:00
snipe
6a8e1566fe Added display_name to a few more places
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:11 +01:00
snipe
ced30082a6 Added display_name as user field
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:10:28 +01:00
snipe
f6c64abc1a Fixed #17641 - map mobile number via SCIM
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 11:41:02 +01:00
snipe
7f9939a896 Merge pull request #17638 from Godmartinz/asset-tag-added-to-subject-line
Adds asset tag to subject line of check in check out
2025-08-19 09:36:25 +01:00
Godfrey M
1c99f2dfdd readd doesntorequireacceptance() to test 2025-08-18 10:52:35 -07:00
Godfrey M
1974fccac3 add tag to other notification test 2025-08-18 10:48:39 -07:00
Godfrey M
911552035e fix other test 2025-08-18 10:39:10 -07:00
Godfrey M
ff25d275ee fix tests 2025-08-18 10:31:03 -07:00
Godfrey M
1fcf5e03e7 adds asset tag to subject line of checkin/out 2025-08-18 10:16:47 -07:00
snipe
9b4101855f Undo double-float
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 15:24:15 +01:00
snipe
9253d894d3 Removed XSS-Protection header
@see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-XSS-Protection#security_considerations

Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 13:30:53 +01:00
snipe
ebd79f22c7 Merge pull request #17636 from grokability/#17627-custom-fields-sorting
Fixed #17627: custom fields not sorting correctly
2025-08-18 12:47:03 +01:00
snipe
c1b139fb9a Fixed #17627: custom fields not sorting correctly
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 12:31:03 +01:00
snipe
a88bcea8ca Merge pull request #17635 from grokability/#17367-fixed-padlock-icon
Fixed #17367: Small adjustment to css-padlock
2025-08-18 11:25:55 +01:00
snipe
21566560a7 Fixed #17367: Small adjustment to css-padlock
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 11:24:05 +01:00
snipe
e3ca43bf40 Remove use of formatCurrencyOutput for input display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 11:00:19 +01:00
snipe
61abb8d5cb Fixed hardware.bulkedit redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 09:45:02 +01:00
snipe
ecad656551 Merge pull request #17626 from grokability/#17606-s3-url-for-models-on-requestable-view
Fixed #17606 - use `getImageUrl()` to determine if local or S3
2025-08-17 14:54:13 +01:00
snipe
615e6d6e4f Fixes #17606 - use getImageUrl() to determine if local or S3
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:51:52 +01:00
snipe
6dceefb96e Merge pull request #17625 from grokability/#17620-delete-method-custom-fields
Fixed #17620 - delete method custom fields causing method not allowed error
2025-08-17 14:11:17 +01:00
snipe
69eff394fd Removed use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:06:56 +01:00
snipe
a9da3aca81 Combine fields and fieldset exception
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:06:49 +01:00
snipe
91f3556375 Added delete test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:33:53 +01:00
snipe
aab7c3a840 Updated custom fields and fieldset pages to use standard delete modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:33:47 +01:00
snipe
9c823119e3 Added new factories for user custom field permissions
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:31:14 +01:00
snipe
f5128833f6 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:52 +01:00
snipe
2bc144354a Use translations and more standard error bag
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:43 +01:00
snipe
e6fec6ec34 Trim model name for display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:28 +01:00
snipe
53389875bf Merge pull request #17611 from grokability/#9965-fallback-to-category-image-for-consumables
Fixed #9965 - fallback to category images (f there are any) when no c…
2025-08-15 15:07:13 +02:00
snipe
3b243b38c8 Fixed #9965 - fallback to category images (f there are any) when no consumable image is present
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 15:03:09 +02:00
snipe
3d9580808b Merge pull request #17524 from Godmartinz/add-category-and-model-to-checkout-emial
Adds #17507 Category and Model No. to accessory checkout markdown
2025-08-15 14:39:58 +02:00
snipe
2141ee71d4 Merge pull request #17544 from marcusmoore/fixes/custom-field-filter
Fixed invalid custom fields being used for filtering
2025-08-15 14:39:09 +02:00
snipe
01dd07083e Merge pull request #17584 from spencerrlongg/bug/17312-custom-field-checkbox-will-not-clear-if-no-checkboxes-should-be-selected
Fixed #17312 - Fix Nulling Checkboxes
2025-08-15 14:35:37 +02:00
snipe
42a28ea06b Merge pull request #17593 from Godmartinz/add-admin-to-acceptance-emails
FIXED #17380 Adds Admin name to acceptance emails
2025-08-15 14:33:02 +02:00
snipe
180cb6ba8e Merge pull request #17610 from grokability/#17600-add-checkout-date-to-accessory-list
Fixed #17600 - adds checkout date to accessories tab in user view
2025-08-15 14:31:38 +02:00
snipe
a78762e40b Fixed #17600 - adds checkout date to accessories tab in user view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 14:29:55 +02:00
snipe
9797bb19e2 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 14:23:22 +02:00
Marcus Moore
3101212c49 Continue to scaffold test 2025-08-14 17:24:36 -07:00
Marcus Moore
3f0ac103a1 Scaffold test 2025-08-14 13:29:18 -07:00
Marcus Moore
59bd6ca360 Update button text 2025-08-14 13:21:11 -07:00
Marcus Moore
22fe9a786e Display number of items being accepted 2025-08-14 12:36:46 -07:00
snipe
08a9554b3c Merge pull request #17607 from Godmartinz/color-corrections-pt9000
Fixes #17488 more info text colors
2025-08-14 20:39:26 +02:00
Godfrey M
d79bd825ee fix popover text color 2025-08-14 10:51:31 -07:00
Godfrey M
fe3d225cfa fix tests 2025-08-14 09:15:19 -07:00
Marcus Moore
d2ee8de9ac Attach qty to CheckoutAcceptance 2025-08-13 12:14:10 -07:00
Marcus Moore
03d3fb6a5f Add qty to checkout_acceptances table 2025-08-13 12:09:56 -07:00
snipe
376e0db66e Merge pull request #17601 from ubc-cpsc/bugfix/CVE-2025-55166
Fixes CVE-2025-55166
2025-08-13 20:49:41 +02:00
Joël Pittet
5fdabc1a62 Fixes CVE-2025-55166 2025-08-13 11:42:14 -07:00
Godfrey M
dfe2a75d72 adds user that checked out item to acceptance emails 2025-08-12 15:34:46 -07:00
Godfrey M
ba85af11aa adds serial to expiring assets report email 2025-08-12 14:59:20 -07:00
Godfrey M
db58b80d27 Merge branch 'develop' into add-category-and-model-to-checkout-emial
# Conflicts:
#	app/Mail/CheckoutLicenseMail.php
2025-08-12 14:20:08 -07:00
Godfrey M
5cb8aae383 add ternaries 2025-08-12 14:16:46 -07:00
spencerrlongg
817530429b added condition to make sure the request has checkbox 2025-08-12 14:52:52 -05:00
Marcus Moore
4a7b7183d2 Add custom_fields. prefix so custom fields can be filtered against 2025-08-11 14:58:41 -07:00
snipe
94bd39cf23 Merge pull request #17570 from grokability/#10038-add-active-flag-filter
Added sidenav to filter on activated vs inactive users
2025-08-11 20:45:22 +01:00
snipe
4038a22093 Added sidenav to filter on activated vs inactive users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 20:41:55 +01:00
snipe
682baec0c9 Merge pull request #17569 from grokability/#10284-add-mobile-number
Fixed #10284: Added mobile phone to users
2025-08-11 18:49:49 +01:00
snipe
ff91be491d Added mobile to tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:43:37 +01:00
snipe
ef35a0f2f1 Fixed #10284: Added mobile phone to users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:38:22 +01:00
snipe
f12a3bb08b Fixed #10306 - cast purchase cost to a float
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:12:37 +01:00
snipe
c8a5065ffa Merge pull request #17567 from grokability/#11754-nicer-menu-alignment
Fixed #11754: nicer menu alignment for dropdowns
2025-08-11 14:57:59 +01:00
snipe
23da5573f3 Fixed #11754 - nicer top menu dropdown alignment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 14:56:43 +01:00
snipe
b08f985776 Merge pull request #17566 from grokability/partial-fix-for-#17565-standard-layout
Show all icons on location table, even if no results
2025-08-11 14:17:59 +01:00
snipe
9b968baaa7 Show all icons, even if no results
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 14:14:15 +01:00
snipe
07edbe6f1c Add @mckaygerhard as a contributor 2025-08-11 13:08:54 +01:00
snipe
1f55a8b6e3 Added icon and tooltip
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 13:06:37 +01:00
snipe
f6b9e11810 Merge pull request #17538 from mckaygerhard/mail-log-improvements
Mail log for #17491 and some improvements on log errors
2025-08-11 13:05:56 +01:00
snipe
c18a3e4266 Fixed #17562 - bootstrap table formater undefined
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 11:18:20 +01:00
snipe
5840ef1c6f Fixed #17560
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 06:26:15 +01:00
snipe
7974baddf5 Merge pull request #17551 from grokability/move-file-uploads-paths-to-base-controller
Move the object type mapping and such to the base controller to de-dupe
2025-08-11 05:44:39 +01:00
snipe
4bf569758f Cleans up a few rmore outes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 05:05:00 +01:00
snipe
f56fd9bb0b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:04:33 +01:00
snipe
357ee5fc45 Copy over the old dirs just in case
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:02:37 +01:00
snipe
c6dea085b2 Missed a few
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:01:23 +01:00
snipe
8782c3ecec Merge pull request #17554 from grokability/#13997-add-ldap-sync-via-api
Adds #13997 - API endpoint to sync users via LDAP
2025-08-10 20:30:44 +01:00
snipe
b636cf2ef0 Merge pull request #17555 from grokability/#17490-use-numeric-for-purchase-cost
Fixed #17490: use numeric for purchase cost
2025-08-10 20:30:15 +01:00
snipe
6dee2b8601 Fixed 17490 - currency symbol breaks purchase_cost
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 19:04:52 +01:00
snipe
bcf301ac17 Adds #13997 - API endpoint to sync users via LDAP
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:48:01 +01:00
snipe
bf2120fb31 Use newer file path 2025-08-10 18:26:41 +01:00
snipe
de56b74f3e Merge branch 'develop' into move-file-uploads-paths-to-base-controller 2025-08-10 18:25:47 +01:00
snipe
2f146abe91 Let people upload images on the demo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:20:35 +01:00
snipe
543d41b6ff Merge pull request #17553 from grokability/#17547-asset-model-images-not-loading
Fixed #17547: asset model images not loading
2025-08-10 18:15:57 +01:00
snipe
8da0dd7563 Use strtolower
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:11:39 +01:00
snipe
a2217d7dbc Specify the public disk for creating directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:08:15 +01:00
snipe
ea84728a3f Rename models uploads dir
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:58:11 +01:00
snipe
b2d10f7ccf Rename directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:56:59 +01:00
snipe
b6af25ce99 Fixed #17548 - treeview menu class on people menu
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:20:49 +01:00
snipe
7a9d2454d4 Move the object type mapping and such to the base controller to de-dupe
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 16:30:32 +01:00
snipe
a9254cff02 Merge pull request #17550 from grokability/addded-observer-for-maintenances
Added basic logging for maintenances
2025-08-10 16:00:49 +01:00
snipe
d14b34141c Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 15:53:53 +01:00
snipe
14bc2cc1ba Added basic logging for maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 15:51:48 +01:00
snipe
a91b54b97a Added buttons to maintenances table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:55:34 +01:00
snipe
ead655e1db Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:52:40 +01:00
snipe
c5f28748f7 Merge pull request #17549 from grokability/rename_title_to_name_for_maintenances
Renamed table from `asset_maintenances` to `maintenances` and `title` to `name` for maintenances
2025-08-10 14:28:51 +01:00
snipe
ee4831cb30 Removed followsRedirects so we can check the status
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:23:41 +01:00
snipe
deb1afd28b Few more replcamenents
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:14:21 +01:00
snipe
9e8eead71e Renamed routes and method names
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:29:48 +01:00
snipe
3f96f7cbd7 Updated file paths for uploads
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:45 +01:00
snipe
dde2e88332 Renamed variables in purge
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:32 +01:00
snipe
ff25015595 Renamed more files
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:14 +01:00
snipe
7d0c695808 Renamed language directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:23:52 +01:00
snipe
906385def9 Renamed directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:23:16 +01:00
snipe
a6c6c7eae9 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:11:50 +01:00
snipe
205725c767 Renamed model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:50 +01:00
snipe
c207efbb35 Rename model in breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:42 +01:00
snipe
c0211e59b3 Renames maintenances presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:23 +01:00
snipe
dd2678cbb9 Rename maintenances path
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:09 +01:00
snipe
e2c87b664e Rename factory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:58 +01:00
snipe
29d4b4dd53 Updated API routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:28 +01:00
snipe
3fba307e55 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:18 +01:00
snipe
7171fa36d8 Added migrations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:27:59 +01:00
snipe
c570f656bf Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:27:48 +01:00
snipe
a5e37519f5 Merge pull request #17539 from grokability/add-file-uploads-to-maintenances
WIP: Add file uploads to maintenances
2025-08-10 11:13:19 +01:00
snipe
0f88d6eec3 Removed error logging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 11:09:29 +01:00
snipe
651c51bb01 Remove unused statements
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 10:41:46 +01:00
mckaygerhard
0fdbdfd5c2 Improve log error handling regarding notification sending for issue #17491
* when an error is generated when denying checkouts, there are not enough logs
to determine the problem from the email provider
* missing handling of log test mail config, there is none of logs cos there
is no log handling on test email, becouse all the results are just sent to
the http response and no log were writen.
2025-08-08 12:18:04 -04:00
snipe
31056ff858 Added new dirs to restore tool
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:56:07 +01:00
snipe
8d2643696b Deleted unused user file controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:59 +01:00
snipe
e7488d19e9 Fixed name for uploaded files controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:48 +01:00
snipe
2bb3b6d64c Fixed prefixes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:24 +01:00
snipe
5744e48ae8 Added getDisplayNameAttribute() to maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:54:36 +01:00
snipe
82d0a21440 Added to actionlog model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:54:09 +01:00
snipe
58133cffac Updated maintenance model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:37:03 +01:00
snipe
bfd8c2f310 Added fles UI on maintenance page
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:51 +01:00
snipe
30d447c023 Updated urls/routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:35 +01:00
snipe
9a0846b8a6 Added directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:16 +01:00
snipe
3667fcddd7 Mark flappy API rate limiting tests as skipped :(
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 11:37:36 +01:00
snipe
906741d662 Bumped debug to warning
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 11:32:04 +01:00
snipe
12be088c4f Merge pull request #17523 from Godmartinz/fix-create-new-rediret
Fixes #17457 Previous Page redirect option
2025-08-08 09:50:40 +01:00
snipe
6737ba80cd Merge pull request #17489 from grokability/fixes/#17485-handle-alert-menu-better-if-no-alerts
Fixed #17485: nicer alert menu if no items are below qty
2025-08-08 09:50:14 +01:00
snipe
862a3d938e Merge pull request #17543 from Godmartinz/salutation-target-fix
Salutation target fix
2025-08-08 09:49:24 +01:00
snipe
09e82377a5 Merge pull request #17520 from marcusmoore/missing-user-redirect-fix
Fixed potential failure in license checkin due to redirect option
2025-08-08 09:48:43 +01:00
snipe
59470864e7 Merge pull request #17542 from akemidx/assetpolicyclassimport
AssetPolicy class import
2025-08-08 09:40:23 +01:00
Marcus Moore
c95aeb3730 Filter out unallowed columns (custom fields) 2025-08-07 17:25:20 -07:00
Godfrey M
5c55c90d68 add null checks to target 2025-08-07 15:27:50 -07:00
Godfrey M
e47972731b fixed target name for checkouts with licenses and assets 2025-08-07 15:12:23 -07:00
Godfrey M
5851cc9e41 fixed target name for checkouts with licenses and assets 2025-08-07 15:09:38 -07:00
akemidx
6f615230e9 class import 2025-08-07 17:00:28 -04:00
snipe
d91598a25e Merge pull request #17540 from marcusmoore/fixes/asset-serial-validation
Fixed 500 when sending non-string for serial property
2025-08-07 20:53:07 +01:00
snipe
9e416778d9 Merge pull request #17541 from marcusmoore/remove-dump-in-test
Removed debugging dump() in test
2025-08-07 20:52:07 +01:00
Marcus Moore
860a117567 Remove dump in test 2025-08-07 12:50:02 -07:00
Marcus Moore
b8fe3b18d4 Add "string" to serial rules for asset 2025-08-07 12:27:48 -07:00
snipe
40269a724b Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:42:59 +01:00
snipe
ec828318d8 Merge pull request #17417 from marcusmoore/snipe-it-17073-asset-requests-are-not-deleted-when-asset-is-deleted
Fixed #17073 - delete old checkout requests
2025-08-07 18:32:13 +01:00
snipe
d31e7ed534 Use new route
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:24:02 +01:00
snipe
5c2dbe438b Added maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:57 +01:00
snipe
10857635ac Removed unused use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:44 +01:00
snipe
df2545ef80 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:17 +01:00
snipe
f6ff729316 Added new generic files upload controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:22:57 +01:00
snipe
38678803eb Removed unused controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:22:45 +01:00
snipe
67c931f196 Merge pull request #17080 from marcusmoore/allow-id-on-location-select
Allowed setting `id` on location-select component
2025-08-07 18:16:58 +01:00
snipe
1c23092d0e Merge pull request #17537 from grokability/add-maintenance-images-and-files
Fixed #10357: Add maintenance image upload
2025-08-07 17:02:34 +01:00
snipe
a90ff21cbf Cleaned up a few more tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 16:58:44 +01:00
snipe
0ce0cee81f Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 16:53:18 +01:00
Герхард PICCORO Lenz McKAY
f4be5ffb5d Fix workaround for #17491 log error on failed response for mail sending
* Part of bunch of fixes, this fix #17491 where admins at test install cannot see the log of errors for UI test mail button, we can just see that this is the correct form cos other parts of the code manage the exception inside the catch using log interface class
2025-08-07 11:42:17 -04:00
snipe
19958748bf Use image upload request
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:39:12 +01:00
snipe
d6ca8468e3 Use snake case for naming paths
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:39:01 +01:00
snipe
7bccb7718b Added partial and enctype="multipart/form-data for upload
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:38:22 +01:00
snipe
f6b63b5e44 Added image to view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:38:04 +01:00
snipe
9a2c5ff195 Updated/added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:57 +01:00
snipe
3597f759da Updated transformers and presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:45 +01:00
snipe
3ed3b21286 Added maintenance file singleton
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:32 +01:00
snipe
b89b636474 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:16 +01:00
snipe
2afc595452 Don’t show license key formatter if no value
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:47:47 +01:00
snipe
c7262f2885 Merge pull request #17532 from grokability/add-available-licenses-back-for-now
[FD-50162] Put remaining seats back on license view for now
2025-08-06 16:35:34 +01:00
snipe
8662aa2277 Put remaining seats back on license view for now
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:33:02 +01:00
snipe
8095e0ab72 Normalize consumables user response
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:25:51 +01:00
snipe
be3c8ddd5c Hotfix for FD-50160
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 23:19:27 +01:00
Godfrey M
ec5b9ce903 adds category and model no to accessory checkout markdown 2025-08-05 12:44:07 -07:00
Godfrey M
bd2acefecc rethought, keeping previous page as an option 2025-08-05 12:29:59 -07:00
Godfrey M
18e49e9067 only redirect to previous page if not creating 2025-08-05 12:05:22 -07:00
snipe
a0d65520a3 Use count() instead of ->count() for user count in print view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:34:59 +01:00
snipe
a35731d9d5 Fixed #17513 - updated language string
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:06:08 +01:00
snipe
9d3623cca6 Merge pull request #17521 from grokability/#17518-add-break-after-sigs
Fixed #17518: Adds printer line break after signatures
2025-08-05 19:02:24 +01:00
snipe
2fe08a721f Do not break the page if it’s the last entry
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:00:57 +01:00
Marcus Moore
7abc3a7d7d Only push to session if user exists 2025-08-05 10:57:07 -07:00
snipe
d4a34f1a3c Adds printer line break after signatures
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 18:50:47 +01:00
snipe
ddda4848d3 Added avif to inline
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 18:13:17 +01:00
snipe
8516856d37 Merge pull request #17456 from spencerrlongg/9511-validation-always-fails-on-encrypted-custom-fields
Fixed #9511 - Validation For Encrypted Custom Fields
2025-08-05 17:45:38 +01:00
snipe
132327594b Merge pull request #17515 from grokability/add-submenu-to-users
Added dropdown menu for users
2025-08-04 22:26:59 +01:00
snipe
d2a2c63070 Added dropdown menu for users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 22:25:23 +01:00
snipe
170a5158fa Merge pull request #17514 from grokability/images-on-cloning
Added ability to copy images on cloning
2025-08-04 21:04:56 +01:00
snipe
1d8493d388 Improved messaging for cloning/editing assets that inherit images
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 20:51:24 +01:00
Marcus Moore
ff39e8bd2c Merge branch 'develop' into snipe-it-17073-asset-requests-are-not-deleted-when-asset-is-deleted 2025-08-04 12:43:03 -07:00
snipe
c3442033da Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 18:49:07 +01:00
snipe
f1dd84edba Added option to clone original images
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 18:47:26 +01:00
snipe
06b040a337 Nicer padding
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 18:41:26 +01:00
snipe
fa546ddc5b Merge pull request #17510 from grokability/fixes-#17498-add-serial-to-acceptance
Fixed #17498 - added serial to user acceptance
2025-08-02 14:46:46 +01:00
snipe
f811352c79 Cleaned up HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 14:46:34 +01:00
snipe
7ed8963b9f Fixed #17498 - added serial to user acceptance
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 14:38:57 +01:00
snipe
a9fc8b79fd Merge pull request #17508 from grokability/add-table-buttons
Add table buttons and admin filter
2025-08-01 23:12:04 +01:00
snipe
afd794b4c7 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:20:17 +01:00
snipe
c4a28f0ec4 Use consistent icon for adding people
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:18:02 +01:00
snipe
db343bf795 Tweaked bootstrap admin indicators
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:15:13 +01:00
snipe
0157043dc5 Added table buttons to user view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:58:48 +01:00
snipe
a947f9bd32 Fixed delete modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:30:18 +01:00
snipe
2a4181c7c3 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:19:18 +01:00
snipe
30192f5b14 Removed extra modal code
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:11:54 +01:00
snipe
c41b5e8844 Fixed license delete check
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:11:40 +01:00
snipe
b27928807b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 20:44:44 +01:00
snipe
16f1b5e23e Added a few more buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 19:31:25 +01:00
snipe
ed651b6869 Use translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:55:15 +01:00
snipe
b9d925c7aa Carry admin/superadmin into the API request
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:49:58 +01:00
snipe
3650a29381 Added superadmin/admin formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:49:37 +01:00
snipe
de84ee3693 Cleaned up asset view table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:47:51 +01:00
snipe
42ba31591d New formatter for icon
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:46:20 +01:00
snipe
a78a243e20 Added admin/superadmin filter to API
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:46:10 +01:00
snipe
38924ced4a Provide the role so we can use it in the javascript
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:45:23 +01:00
snipe
5e8cc66f5c Added scope for admins and superadmins
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:45:07 +01:00
snipe
1353837584 More buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:58:15 +01:00
snipe
7cb5a89523 Added access keys
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:58:07 +01:00
snipe
1db09a7953 Allow category_id in license export by category
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:21:12 +01:00
snipe
bc6aa12dd0 Added buttons to table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:20:55 +01:00
snipe
c3bea88979 Added table button JS
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:20:39 +01:00
snipe
6e85e466b0 Merge pull request #17493 from grokability/gallery-view-for-file-uploads
Use the file uploads API for file listing tables, adds gallery view for file uploads
2025-08-01 13:27:27 +01:00
snipe
3327cc70c9 Revert pageSize
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 12:01:57 +01:00
snipe
c9eac66a93 Tweaked button layout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:58 +01:00
snipe
53e9bd6e48 Use updated formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:49 +01:00
snipe
eaa18e1efb Use existing actionlog methods instead of inline
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:40 +01:00
snipe
afa3dacc31 Check if it’s an accepted/declined file
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:22 +01:00
snipe
c803c4a57a Use new formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:20:35 +01:00
snipe
2d3a53e449 Made existing formatters more flexible, removed unused
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:20:24 +01:00
snipe
5e076754ce Merge pull request #17501 from uberbrady/fix_manufacturer_seeder_button
Fixed #17500 [FD-50045] - Make Manufacturer Seeder button work
2025-07-31 04:09:38 +01:00
Brady Wetherington
927e217961 Fix Manufacturer Seeder button 2025-07-30 09:04:04 -06:00
snipe
80b48101aa Added formatter back
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:19:10 +01:00
snipe
08530e6133 Added icon data-dash to formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:11:35 +01:00
snipe
97130ef6c1 Updated IDs to be less generic
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:11:12 +01:00
snipe
da37feae6d Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:42 +01:00
snipe
f96172e61f Updated manifest
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:33 +01:00
snipe
e35477b8db Made modal control more flexible
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:26 +01:00
snipe
cea5560a67 Removed duplicated code for modal handling
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:07:35 +01:00
snipe
311bd5e67e Use placeholder for delete button
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:39 +01:00
snipe
1cfddf2a4c Restore old limit code
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:29 +01:00
snipe
abe58117fe Moved code closer to actions
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:01 +01:00
snipe
ee5f89f70d Fixed pagination
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 22:58:00 +01:00
snipe
4f545ed101 Layout tweaks to template
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 22:57:49 +01:00
snipe
136de4208e Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:45 +01:00
snipe
7650a2c2a7 Sort by created_by desc by default
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:23 +01:00
snipe
c3d1987fac Switch to panel
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:06 +01:00
snipe
12ef78bb1c Added PDF embed
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:43:58 +01:00
snipe
16c4241a6e WHY does this work? It’s not in the docs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:42:35 +01:00
snipe
4992c77818 Updated template
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:43 +01:00
snipe
3a0b1de136 Changed table name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:36 +01:00
snipe
1c3ef02c7b FIX THIS!!!
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:15 +01:00
snipe
f268fe9e80 Added gallery card
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 02:03:12 +01:00
snipe
2ed98c17d4 Added print icon
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 02:03:02 +01:00
snipe
571ae4fbfd Use CSS for nowrap
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 01:20:20 +01:00
Nicky West
c94a8c42f4 Changed NotesController::getList() to NotesController::index() & reordered methods for consistency 2025-07-28 16:57:46 -07:00
Nicky West
16fdb16a56 Changed over to route model binding and simplified logic & gates 2025-07-28 16:55:11 -07:00
Nicky West
822f9a6f28 Fixed deviations from code standards 2025-07-28 16:37:08 -07:00
Nicky West
b264bbf69f feat(api): Add API endpoints for managing asset history notes
- Add POST endpoint to create a history note attached to an asset
- Add GET endpoint to retrieve history notes for an asset
- Add ActionLog factory state for manual notes
- Implement controller methods with authorization checks
- Add feature tests for note creation, retrieval, and access control
- Register new API routes for these endpoints

Supports automation by enabling programmatic asset history note management.
2025-07-28 15:55:37 -07:00
snipe
6e61e94e02 New manifest
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:31 +01:00
snipe
6a7972c5a1 Added new formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:18 +01:00
snipe
db4fbe315a Added helper to get media type so we know what kind of lightbox to give it
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:11 +01:00
snipe
f3613d7103 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:35:45 +01:00
snipe
cbbed36428 Added multi-file upload for users (bug)
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:35:35 +01:00
snipe
e86e9697b3 Use plural for item type
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:33:25 +01:00
snipe
fd6b2d5715 Simpler blade component calls
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:33:08 +01:00
snipe
fbb36d1665 Fixed file routes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:45 +01:00
snipe
07be1b8192 Added sorting, updated formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:25 +01:00
snipe
33880393ac Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:00 +01:00
snipe
5123fe7838 Use server side endpoint for filetable blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:31:51 +01:00
snipe
cbe26a365d Made route signature more consistent
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:31:14 +01:00
snipe
f1bb72b2a6 Added custom view extension
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:30:51 +01:00
snipe
2c33654395 Fixed #17485 - nicer alert menu if no items are below qty
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:50:26 +01:00
snipe
dd86de017e Dev assets one more time just for good luck
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:38:27 +01:00
snipe
3eabde9630 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:36:22 +01:00
snipe
640c51af31 Merge pull request #17487 from uberbrady/improve_javascript_3
Optimize javascript for smaller files and faster builds (Rebase of #15175)
2025-07-28 17:34:59 +01:00
Brady Wetherington
7167b17d25 Rebased and brought up to current from the original 2025-07-28 09:57:20 -06:00
snipe
8a35948678 Import DB facade
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 16:17:11 +01:00
snipe
0fe63d3fb9 Re-added jquery-ui
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 14:03:12 +01:00
snipe
e4302c3e88 Fixed comment
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 09:13:32 +01:00
snipe
a7df6fb465 Added DB_SOCKET to example env
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 09:11:00 +01:00
snipe
133e7598e0 Merge pull request #17478 from grokability/library-upgrades
Library upgrades
2025-07-28 09:00:02 +01:00
snipe
c1a52ffa75 Bumped jspdf-autotable from ^3.8.4 to ^5.0.2
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:52:52 +01:00
snipe
4f46313388 Bumped tableexport to ^1.33.0
https://www.npmjs.com/package/tableexport.jquery.plugin
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:50:47 +01:00
snipe
03b2cc9cd2 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:43:22 +01:00
snipe
1a2bf8dc95 Bumped boostrap table from 1.24.1 to 1.24.2
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:43:17 +01:00
snipe
dd63fbeb84 Moved webpack to dev dependencies
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:38:26 +01:00
snipe
59e435c418 Bumped additional libraries
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:36:13 +01:00
snipe
f89f0a19b5 Updated axios
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:33:07 +01:00
snipe
cbc6ef95cb Removed babel-preset
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:26:52 +01:00
snipe
0ceecc9e1d Removed jquery UI
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:24:16 +01:00
snipe
c816902025 Updated postcss
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:19:56 +01:00
snipe
cfb03cdca0 Updated imagemin JS
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:07:34 +01:00
snipe
266f77b08c Update svg-sanitize
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:02:54 +01:00
snipe
257d58c236 Moved privacy policy link in settings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 03:30:10 +01:00
snipe
015f3d936c Merge pull request #17459 from grokability/#17441-add-status-to-id
Fixed #17441 - hardware listings "remembered" page numbers between statuses
2025-07-24 15:54:33 +01:00
snipe
18d2a0ffd7 Fixed #17441 - added status to table IDs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:47:26 +01:00
snipe
24afde0e46 Updated hash and minor version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:35:33 +01:00
snipe
8499faa55a Fixed #17458 - use item_id instead of target_id for user history
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:29:36 +01:00
snipe
c60dd809b8 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 13:06:57 +01:00
snipe
297b8e33f2 Merge pull request #17436 from Godmartinz/fix-acceptance-markdown
Fixed #17394 - Changes the acceptance letter salutation to target
2025-07-23 22:55:05 +01:00
spencerrlongg
d0593c6b8d remove some commented things 2025-07-23 16:19:32 -05:00
spencerrlongg
8a40d7e35c tests added, regex validation working 2025-07-23 16:12:19 -05:00
Godfrey M
b670b2014c accidentally removed a line 2025-07-23 09:56:19 -07:00
Godfrey M
440e969f52 remove unnecessary spacing 2025-07-23 09:47:03 -07:00
snipe
14b79f2f1c Fixed typo in id name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 17:00:09 +01:00
snipe
00cf49a61f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 16:10:47 +01:00
snipe
4f534e0e84 Bumped version/hash
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 16:02:51 +01:00
snipe
83a19fbbbf Merge pull request #17454 from uberbrady/de_flake_action_log_tests
Enforce order by ID for actionlog tests
2025-07-23 15:06:09 +01:00
snipe
610cb884fc Merge pull request #17452 from uberbrady/de_flake_tls_cert_file_test
This test was flaky, probably due to the PHP statcache.
2025-07-23 15:00:59 +01:00
snipe
ba92cec62b Merge pull request #17453 from grokability/#17316-checkbox-format-on-checkin-checkout
Fixed #17316 - handle checkboxes correctly in checkin/checkout
2025-07-23 14:56:24 +01:00
Brady Wetherington
d92e961a52 enforce order by ID for actionlog tests 2025-07-23 14:55:42 +01:00
snipe
b13e74756a Fixed #17316 - handle checkboxes correctly in checkin/checkout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 14:51:34 +01:00
Brady Wetherington
4ef3072766 This test was flaky, probably due to the PHP statcache. 2025-07-23 14:15:52 +01:00
snipe
e96e2461d3 Merge pull request #17450 from grokability/copy-decrypted-custom-fields-to-clipboard
Fixed #17447 - decrypt before copying to clipboard
2025-07-23 12:41:02 +01:00
snipe
7a2e2be169 Fixed #17447 - decrypt before copying to clipboard
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 12:39:54 +01:00
snipe
8d2a5a7e4a Added location and defaultLoc to searchable relations in audit log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 12:28:23 +01:00
snipe
b7b0e4fab5 Merge pull request #17447 from Godmartinz/make-custom-fields-copyable
Adds #17133 Copy ability to all Custom fields
2025-07-23 12:11:47 +01:00
Godfrey M
a624a79b30 add terenary 2025-07-22 16:36:19 -07:00
Godfrey M
313135da6f Merge branch 'develop' into make-custom-fields-copyable 2025-07-22 16:26:57 -07:00
Godfrey M
58d27d1247 move copy button to front 2025-07-22 16:17:52 -07:00
snipe
edfb28168f Merge pull request #17446 from marcusmoore/snipe-it-17445-move-jobtitle-under-assigned_to-in-assettransformer
Fixed #17445 - move jobtitle under assigned_to in AssetTransformer
2025-07-22 20:27:01 +01:00
Godfrey M
8d0e03bb06 fix copy target 2025-07-22 11:57:46 -07:00
Marcus Moore
855f6f77cf Re-add sorting 2025-07-22 11:49:32 -07:00
Godfrey M
6236cffe14 adds copy links for filled custom fields 2025-07-22 11:49:11 -07:00
Marcus Moore
322a71fbb8 Add jobtitleFormatter 2025-07-22 11:37:34 -07:00
Marcus Moore
4d9f8476f3 Update field key in AssetPresenter 2025-07-22 11:07:58 -07:00
Marcus Moore
d7d93b14b2 Move jobtitle under assigned_to 2025-07-22 11:02:26 -07:00
snipe
d1af3ece6e One more tweak to login checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:25:09 +01:00
snipe
8153b20984 Check for demo mode on UI for able to login
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:18:34 +01:00
snipe
a50f605c29 Merge pull request #17443 from grokability/added-not-allowed-cursor
Adds disabled cursor on uneditable fields in user create/edit
2025-07-22 15:13:14 +01:00
snipe
daf23edd10 Adds disabled cursor on uneditable fields in user create/edit
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:10:27 +01:00
snipe
2eaaeb8259 Merge pull request #17423 from grokability/tighter-permissions-on-non-admins
Tighter permissions on non-admins and demo modes
2025-07-22 14:32:50 +01:00
snipe
a02c62d62c Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 14:12:51 +01:00
snipe
e0232a8e84 Renamed gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 14:02:18 +01:00
snipe
6ea5693b2f Updated comment, removed log error statement
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:59:58 +01:00
snipe
030c2114d1 Merge pull request #17442 from grokability/user-api-eula-fix
Fixed FD-49886 - Optimize user queries
2025-07-22 13:39:36 +01:00
snipe
2cb18e3668 Remove fields from query - eulas was querying actionlogs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:25:41 +01:00
snipe
cd9f8be563 Optimize for when we already have the counts
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:25:16 +01:00
snipe
a02792e9bf Merge pull request #17300 from uberbrady/add_actionlog_tests
Fixed #17071 - Adding various tests of the contents of ActionLogs for lots of events
2025-07-22 10:51:30 +01:00
snipe
41bb422244 Merge pull request #17439 from marcusmoore/component-file-test-fix
Attempt to fix flaky file upload tests pt2
2025-07-21 23:16:03 +01:00
Marcus Moore
54663d3342 Pass order to api in test 2025-07-21 15:10:35 -07:00
snipe
2529f7369f Merge pull request #17438 from grokability/file-upload-tests-fix
Attempt to fix flaky file upload tests
2025-07-21 22:48:38 +01:00
snipe
909c33dccf Fixed order location
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 22:45:17 +01:00
snipe
1adc9f1aa9 Attempt to fix flaky tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 22:18:15 +01:00
spencerrlongg
e9948f0718 fixes booleans, adds note, changes name 2025-07-21 15:34:08 -05:00
Godfrey M
49da9e58fd changed markdown to point to assignedto name 2025-07-21 12:00:00 -07:00
spencerrlongg
2f74a8afe1 mac address rule working 2025-07-21 12:02:45 -05:00
snipe
f3e288d078 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 17:46:49 +01:00
snipe
988000952e Fixed RB-3997
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 13:48:01 +01:00
snipe
6537f3794b Merge pull request #17292 from Godmartinz/fail_with_inputs
FIXED: #17194 Return to bulk edit with errors and inputs
2025-07-21 12:03:52 +01:00
snipe
d31718ba8a Merge pull request #17389 from grokability/use-transformer-for-api-asset-model-response
Use standard model transformer for asset model API response
2025-07-21 11:52:25 +01:00
snipe
9dd4bc5fa8 Merge pull request #17391 from Godmartinz/add-components-notifications
FIXED: #13844 Adds Webhook and Mail Notifications for Components
2025-07-21 11:51:30 +01:00
snipe
df5f1bd522 Merge pull request #17434 from grokability/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.7
Bump codacy/codacy-analysis-cli-action from 4.4.5 to 4.4.7
2025-07-21 11:45:04 +01:00
dependabot[bot]
ddffab9169 Bump codacy/codacy-analysis-cli-action from 4.4.5 to 4.4.7
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.4.5 to 4.4.7.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.4.5...v4.4.7)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-version: 4.4.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 09:26:25 +00:00
Oliver Cox
553ab8851a Fix #17431: EULA not displaying on asset acceptance page
Changed two instances of === to ==, as this was causing a comparison to fail and preventing EULAs from being displayed on asset acceptance pages as expected.
2025-07-20 23:00:18 +01:00
snipe
0c34073582 Namespace fix for presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 17:17:04 +01:00
snipe
14674947cb Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 17:15:51 +01:00
snipe
51bccdbd66 Merge pull request #17424 from marcusmoore/chore/livewire-ugprade
Bumped livewire to v3.6.4
2025-07-18 17:12:14 +01:00
snipe
f0fbb3cf36 Uncomment permissions test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:31:31 +01:00
Brady Wetherington
0cc47aacbe Got tests to pass by making them match our current reality, rather than wishes 2025-07-18 16:14:32 +01:00
snipe
fafd592290 Wrap groups and activated into the other canEditAuthFields gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:03:43 +01:00
snipe
40e754b8c3 Additional criteria for the canEditAuthFields gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:03:22 +01:00
snipe
483301db7a Changed some of the gating logic for demo mode. Sigh.
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:59 +01:00
snipe
218606fbd6 Updated view permissions
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:41 +01:00
snipe
c601b8e62c Updated test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:11 +01:00
snipe
2bd68ec991 Uncommented importer gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:17:25 +01:00
snipe
66842648ed Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:17:10 +01:00
snipe
ce54b9a7b5 Removed duplicate alert
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:16:59 +01:00
Brady Wetherington
8a5f6d2a5d Refactor base test into Trait, clean test output for easier comparison 2025-07-18 13:16:35 +01:00
snipe
1d86a5476f Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 12:45:43 +01:00
snipe
ca4d3f6bce Changed gate name, removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 12:45:32 +01:00
Godfrey M
2812f2ce92 remove log 2025-07-17 15:04:42 -07:00
Godfrey M
5c623db798 fix redirect 2025-07-17 14:57:00 -07:00
Marcus Moore
edaf005fe1 Bump livewire to v3.6.4 2025-07-17 14:15:10 -07:00
snipe
4f6e407247 More consistent language degarding the demo
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:13:13 +01:00
snipe
e30881239c A few more clean ups for demo mode
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:08:50 +01:00
snipe
bbde2cc4b2 Use history blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:04:11 +01:00
snipe
16d18c79d7 Fixed email editable field
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:03:20 +01:00
snipe
a0d2cb8a03 Clearer (if longer) gate name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:47:20 +01:00
snipe
1bb5dc7e69 Added one more test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:40:01 +01:00
Brady Wetherington
58759acfe4 Think I hit _all_ of the tests we need to mess with here 2025-07-17 20:15:01 +01:00
snipe
0cd5136052 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:52 +01:00
snipe
b3c6fe5369 Use both new gates in user edit
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:46 +01:00
snipe
599718f84e Use new gates in controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:32 +01:00
snipe
d9a5452388 Defined new gates
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:10 +01:00
snipe
0fe49e04bf Attempt to use a gate here?
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:09:27 +01:00
snipe
a98d3fb4dc Check for the format of the permissions (string, object, array)
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:09:17 +01:00
Godfrey M
8c670d1832 clean up 2025-07-17 12:08:49 -07:00
snipe
c232f490bc Show user log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:08:40 +01:00
snipe
c7280953dd Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:08:32 +01:00
Godfrey M
8f4c606c64 remove var dumps 2025-07-17 12:04:33 -07:00
Godfrey M
6740afab42 radio buttons values return correctly 2025-07-17 11:59:09 -07:00
Godfrey M
5df22b3e6a checkboxes properly check 2025-07-17 11:56:52 -07:00
snipe
3d9d18a0d5 Fixed weird CSS quirk
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 19:22:23 +01:00
Marcus Moore
0102599708 Implement tests 2025-07-16 17:20:28 -07:00
Marcus Moore
960edd4adf Improve clarity 2025-07-16 17:11:00 -07:00
Marcus Moore
3547fa723c Delete requests when asset model is deleted 2025-07-16 17:04:14 -07:00
Marcus Moore
7a456185c6 Add explicit state for assets 2025-07-16 16:57:03 -07:00
Marcus Moore
dd79c3f2d6 Scaffold tests 2025-07-16 16:47:28 -07:00
Marcus Moore
35682d11f0 Add command to clean checkout requests 2025-07-16 14:49:45 -07:00
Marcus Moore
d04b3f0907 Enable test 2025-07-16 13:15:06 -07:00
Marcus Moore
c926358e04 Delete requests when user is deleted 2025-07-16 13:11:59 -07:00
Marcus Moore
856ba52f36 Delete requests when asset is deleted 2025-07-16 12:43:56 -07:00
Marcus Moore
a5bea31154 Scaffold tests 2025-07-16 12:38:08 -07:00
Marcus Moore
2afcc1e384 Add basic tests around asset request index 2025-07-16 12:25:37 -07:00
Godfrey M
fc469707a3 clean up 2025-07-16 10:51:33 -07:00
snipe
77fdc370c7 Merge pull request #17415 from uberbrady/clean_unaccepted_assets_report
[FD-47386, FD-49095] New Artisan command to clean checkout acceptances
2025-07-16 17:34:49 +01:00
snipe
301290fb6d Send emails on acceptance even if signature is not required
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 17:02:04 +01:00
snipe
07fffe2f79 Merge pull request #17410 from grokability/remove-password-from-welcome
Remove password from welcome email, prompt for reset instead
2025-07-16 16:54:07 +01:00
snipe
0227a63fa5 Slightly clearer language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:31:45 +01:00
snipe
27764b863c Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:25:36 +01:00
snipe
032fd75f9e Added default invite password token timeout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:51 +01:00
snipe
0bf4f861f3 Nicer debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:25 +01:00
snipe
fd8f90cb52 Added new password broker for longer toekn lifetime
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:11 +01:00
snipe
b6c6b025c8 Added expiry language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:20:26 +01:00
snipe
3d89e98d1f Small tweaks to welcome email blade
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:20:15 +01:00
Brady Wetherington
7c5110ed5d Add more action logs tests everywhere I can think of it. 2025-07-16 16:20:06 +01:00
Brady Wetherington
0a474f48ad WIP: Adding various tests of the contents of ActionLogs for lots of events 2025-07-16 16:20:06 +01:00
Brady Wetherington
c409bfd5be New Artisan command to clean checkout acceptances and a migration that runs it 2025-07-16 16:06:23 +01:00
snipe
39d5d5b2e0 Merge branch 'develop' into remove-password-from-welcome 2025-07-16 15:05:13 +01:00
snipe
8a80d9009d Refomatted hidden array
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 12:24:48 +01:00
Godfrey M
f62b5df566 use ternaries instead of optionals 2025-07-15 15:40:21 -07:00
spencerrlongg
826521f053 added rules, still needs a little more... 2025-07-15 15:21:10 -05:00
spencerrlongg
f9b05bc8de more encryption rules extenting laravel's own 2025-07-15 15:03:51 -05:00
spencerrlongg
b8239e8ed9 use laravel validation methods, email works 2025-07-15 14:17:49 -05:00
Godfrey M
214757ab0b fix mailable 2025-07-15 12:04:36 -07:00
Godfrey M
f130186b37 add Component Checkin Mail 2025-07-15 11:56:34 -07:00
Godfrey M
2244eebc3b add Component Checkout Mail 2025-07-15 11:00:39 -07:00
snipe
4176792f2d Translate field
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 16:32:17 +01:00
snipe
1e6cef52c9 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 15:17:08 +01:00
snipe
a0f4f30a50 Added try/catch
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 15:13:33 +01:00
snipe
4cbf6ac393 Re-add /setup crential email
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:20:13 +01:00
snipe
af7425d8e6 Remove unused variable
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:19:12 +01:00
snipe
3fea909d3f Removed send credentials option from user controller
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:14:10 +01:00
snipe
7c37d40677 Use plaintext in the database so that the password will never be valid
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:13:50 +01:00
snipe
3a97c27350 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:13:29 +01:00
snipe
e0516a52a8 Formatting change
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:55 +01:00
snipe
a85ec6efb3 Set token in welcome email constructor
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:42 +01:00
snipe
3795c74814 Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:26 +01:00
snipe
27954dc6d3 Use password reset token
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:18 +01:00
snipe
68c4187a09 Removed email creds option from user create
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:11:15 +01:00
snipe
b9834231f3 Remove email credentials chexkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:08:36 +01:00
snipe
2be343ea1c More specific no password
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:11:45 +01:00
snipe
109fe1b62c Use no password as temp password
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:11:18 +01:00
snipe
63d691a63c Removed noisy log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:10:48 +01:00
snipe
6f57d6b876 Merge pull request #17407 from grokability/fixes-signature-pad-chrome
Fixed display of acceptance button if signature is not required
2025-07-15 10:58:34 +01:00
snipe
e0bad99ea1 Fixes display of acceptannce button if signature is not required
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 10:55:30 +01:00
snipe
e39eb09cfb Merge pull request #17390 from Godmartinz/unhandled-redirect-error
FIXED redirect option being NULL
2025-07-10 19:41:40 +01:00
Godfrey M
64d397c3f3 add component notification tests 2025-07-10 11:26:10 -07:00
Godfrey M
465ac1d1e1 remove ternary 2025-07-10 08:39:13 -07:00
Godfrey M
18d6becebc populate other_redirect in store method 2025-07-10 08:36:15 -07:00
snipe
943a4093ad Use standard model transformer for asset model API response
Signed-off-by: snipe <snipe@snipe.net>
2025-07-10 15:42:39 +01:00
snipe
b0917a5131 Merge pull request #17385 from grokability/17383-fix-api-route-path
Fixed #17383 - re-add `/hardware/` as an object type in the file upload API
2025-07-10 13:10:43 +01:00
snipe
0972c4e340 Re-added /hardware/ as viable route for API file uploads
Signed-off-by: snipe <snipe@snipe.net>
2025-07-10 13:06:22 +01:00
Godfrey M
3bbd0fdbcd google notifications fires properly 2025-07-09 17:02:51 -07:00
snipe
43a237bf95 Merge pull request #17378 from grokability/phpcs/models
Code formatting fixes
2025-07-09 21:55:30 +01:00
snipe
95f867b267 Code formatting fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 21:48:53 +01:00
snipe
e96daf469a Better phrasing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 21:00:54 +01:00
snipe
f2cdfe9e47 Normalize textarea for notes in acceptance form
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:58:07 +01:00
snipe
929b67e768 Merge pull request #17376 from grokability/small-tweak-to-acceptance-ui
Better indicate via submit button colors and messaging that something is about to be accepted or declined
2025-07-09 20:21:50 +01:00
snipe
0573dc136a Put the sig check back
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:16:30 +01:00
snipe
48588f6a9e Small UI sugar on the acceptance/signature screen
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:08:19 +01:00
Godfrey M
8214b11da5 MS teams fires properly 2025-07-09 11:44:53 -07:00
Godfrey M
36090bf83e checked in notification fires, updated icon translation usage 2025-07-09 11:35:24 -07:00
Godfrey M
bffb2fe82f checkout notification fires 2025-07-09 11:23:27 -07:00
Godfrey M
500cbf5d92 add component checkout notification, update checkout blade, update listener 2025-07-09 11:12:18 -07:00
snipe
88579b9bf3 Merge pull request #17374 from uberbrady/improve_inline_videos
Fixed [FD-49538 ] - use a Video tag for video files for non-Safari usage
2025-07-09 15:47:19 +01:00
snipe
e8bb9bde99 Fixed #8201 - splits first_name and last_name in user export
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 15:46:42 +01:00
Brady Wetherington
0ee3cca4da Use a Video tag for video files for non-Safari usage 2025-07-09 15:15:53 +01:00
snipe
f89ee6b7f2 Merge pull request #17361 from Godmartinz/return-custom-textarea_input
Fixed #7957 - custom field Textarea input not retaining when switching Asset Models with shared fields
2025-07-08 22:02:07 +01:00
snipe
aebfb52c85 Merge pull request #17362 from Godmartinz/license-redirect-bug
Fixed #17310 - 500 on redirect when checking in a license seat
2025-07-08 21:59:22 +01:00
Godfrey M
667bd7af0e fix checkout_to_type being null when checking in 2025-07-08 13:53:10 -07:00
snipe
bbf69bc582 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-08 21:26:15 +01:00
snipe
f2b7a3d002 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-08 21:25:31 +01:00
Godfrey M
3fd9e3ab56 include textareas input return 2025-07-08 12:02:56 -07:00
snipe
8e11466a54 Added query scope
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 22:09:23 +01:00
snipe
dade9797d5 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 21:46:13 +01:00
snipe
97c1e65ffc Fixed fieldname
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 20:58:26 +01:00
snipe
b4e22f4a21 Small fix for seat listing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 20:56:26 +01:00
Godfrey M
2b8ea9a233 add required to input validation 2025-07-07 10:46:54 -07:00
snipe
58b6feb3ca Merge pull request #17356 from grokability/show-only-taken-licenses
[FD-49569 ] - Show only assigned in license tab
2025-07-07 17:05:38 +01:00
snipe
41c4920d45 Show only assigned in license tab
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 16:58:36 +01:00
snipe
d1ddd8de98 Re-add column selector
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 16:23:48 +01:00
snipe
f41307eb4a Merge pull request #17353 from grokability/fixes-#14295-send-acceptance-on-signing
Fixed #14295 - allow user to receive an email PDF upon signing
2025-07-07 15:59:03 +01:00
snipe
59de77feb0 Use company name if provided instead of site name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:55:40 +01:00
snipe
8ebbcf6e80 Removed console commands
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:55:31 +01:00
snipe
24c6e836dd Added checkbox toggle
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:51:24 +01:00
snipe
8e38b3898e Fixes #14295 - allow user to receive an email PDF upon signing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:38:36 +01:00
snipe
ce9a5e35c9 Merge pull request #17352 from grokability/fixed-#17273-notes-in-upcoming-audit
Fixed #17273 -  switch to HTML table from markdown
2025-07-07 14:42:43 +01:00
snipe
b092779697 Fixed #17273 - switch to HTML table from markdown
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 14:37:38 +01:00
snipe
ab30a96d16 Merge pull request #17327 from Godmartinz/asset_model_redirect
FIXED: #15861 adds a redirect option for asset model and previous page
2025-07-07 14:00:31 +01:00
snipe
dab0fb16ad Merge pull request #17291 from Godmartinz/fix_bulk_checkout_focus
Fixes #12094 - Adds focus to select2 in bulk checkout
2025-07-07 13:57:12 +01:00
snipe
5be398bc99 Merge pull request #17350 from grokability/tighter-control-on-company
Fixes #17302 - Tighter control on company
2025-07-07 13:45:08 +01:00
snipe
fe4172957f Merge pull request #17351 from grokability/smaller-pdfs
Fixed #17349 - enable_font_subsetting in PDFs
2025-07-07 13:33:29 +01:00
snipe
ff3a59d347 Fixed #17349 - enable_font_subsetting in PDFs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:32:25 +01:00
snipe
f9aedea26f Eager load admin
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:21:07 +01:00
snipe
5abd2c7151 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:12:16 +01:00
snipe
bfcaf4f37b Removed unecessary use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:36:59 +01:00
snipe
5f4e1835bc Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:36:16 +01:00
snipe
c1f1ae6b64 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:31:12 +01:00
snipe
c4fcc6c24e Removed direct scoping calls
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:26:30 +01:00
snipe
dd73ad9941 Merge pull request #17341 from Godmartinz/query_error_rb19824
Fixed #17193: perform Orderby before Collection in Bulk Assets Controller
2025-07-07 11:19:37 +01:00
snipe
ac21f7569f Merge pull request #17346 from grokability/add-video-uploads
[FD-49538] Add video/audio uploads
2025-07-07 11:15:19 +01:00
snipe
4ef0158da4 Use preview instead of image text
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:19:29 +01:00
snipe
4db3b3ba0e Use config array for extensions in restore tool
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:19:13 +01:00
snipe
dc43d85323 Check for audio files
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:15:30 +01:00
snipe
62651f381c Expand safe allowed inline files
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:13:57 +01:00
snipe
3e9098907a Use config file for file types/mimes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:11:31 +01:00
snipe
e18df250f8 Removed console debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:08:08 +01:00
Godfrey M
be5c5a51da get desired behavior of select-2 2025-07-02 11:20:04 -07:00
Godfrey M
a728fad675 perform orderBy on query before converting to a Collection 2025-07-02 11:06:35 -07:00
snipe
185629b310 Merge pull request #17338 from grokability/small-depreciation-tweaks
Fixed #1909 - Small depreciation tweaks
2025-07-02 18:37:21 +01:00
snipe
30ebea4f2d Return int count
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 18:24:27 +01:00
snipe
b135c1eac2 Updated language strings in view
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 18:15:06 +01:00
snipe
88fef73d6f Use new translation
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:54:10 +01:00
snipe
556a9039e9 New strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:55 +01:00
snipe
cdfe6c21c1 Tightened HTML, added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:42 +01:00
snipe
b094ebdd66 Removed validation of > 0
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:32 +01:00
snipe
526a7ddea6 Merge pull request #17337 from grokability/fixes-#17112-ldap-location-set-to-0
Fixed #17112 - Set location ID to null instead of 0
2025-07-02 17:20:34 +01:00
snipe
bb5ad31cba Merge pull request #17336 from uberbrady/safer_deserialize
Use safer deserialization defaults
2025-07-02 17:15:48 +01:00
snipe
549da2efed Set location ID to null instead of 0
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:15:18 +01:00
snipe
e5e586dc43 Attempt to generalize companyable in company scope
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:12:55 +01:00
Brady Wetherington
8a682beb0e Use safer deserialization defaults 2025-07-02 14:49:12 +01:00
snipe
699e9f75c9 Fixed RB-19892
Check for location before trying to grab company property

Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 11:57:42 +01:00
snipe
759e30977b Merge pull request #17333 from grokability/fixes-#17326-dash-sorting
Fixed #17326 - sorting on dashboard
2025-07-02 11:43:48 +01:00
snipe
6cfdb49cc3 Fixed #17326 - sorting on dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 11:41:21 +01:00
snipe
1195121bf0 Merge pull request #17330 from uberbrady/add_escaping_to_action_logs
Add escaping to user_agent and remote_ip variables for API results
2025-07-01 23:30:41 +01:00
Brady Wetherington
8bc067b18b Add escaping to user_agent and remote_ip variables for API results 2025-07-01 23:22:09 +01:00
Godfrey M
76f59f7b85 fix variables 2025-07-01 12:52:16 -07:00
Godfrey M
55ebb4671f update check in and check out controllers 2025-07-01 12:44:26 -07:00
Godfrey M
8a9cf07063 editing controllers and edit blades for other categories 2025-07-01 12:31:55 -07:00
Godfrey M
ca9ff8cf19 set return type for RedirectOptions 2025-07-01 12:04:02 -07:00
Godfrey M
7217d9c427 adds redirect to previous page, use match instead of switch cases 2025-07-01 11:55:46 -07:00
Godfrey M
9d712ad8f1 clean up code 2025-07-01 10:56:02 -07:00
Godfrey M
f3e49e7010 add asset model as a redirect option 2025-07-01 10:43:00 -07:00
snipe
ba94f1b920 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:45:43 +01:00
snipe
edcd46dd67 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:44:46 +01:00
snipe
5cf6c89dde Merge pull request #17322 from grokability/fixes-#8484-add-supplier-to-license-relationship
Fixed #8484 - added supplier to license relationship
2025-06-30 11:29:07 +01:00
snipe
58676b1f83 Fixed #8484 - added supplier to license relationship
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:27:30 +01:00
snipe
8ff7c30e5a Merge pull request #17315 from grokability/traitify-uploads
Added HasUploads trait and remove uploads method for models
2025-06-27 20:00:28 +01:00
snipe
cd989768d4 Added HasUploads trait and remove uploads method for models
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 19:32:22 +01:00
snipe
6cbdefe3d9 Small regressions
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 13:04:02 +01:00
snipe
c6ecc0d8e8 Merge pull request #17311 from grokability/rwork-bulk-api-to-smaller-pr
Fixed #9413 and rework upload API for bulk and better responses (refactor of #16964)
2025-06-27 12:43:34 +01:00
snipe
e0f5663bf4 Requested changes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:37:11 +01:00
snipe
aafc8996c1 phpcbf fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:18:54 +01:00
snipe
128da40cbf Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:03:12 +01:00
snipe
ea0460e97e Remove unused API files controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 11:51:36 +01:00
snipe
d8e7123576 Added uploaded files API controllers and presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 11:37:31 +01:00
snipe
6f45ec655f Merge pull request #16857 from realchrisolin/generic_tape
Generic tape
2025-06-25 14:59:57 +01:00
snipe
ec17c168ea Merge pull request #17222 from grokability/fixes-#17221-move-table-featueres-into-js
Fixed #17221 - Moved common table elements to partial
2025-06-25 14:52:17 +01:00
snipe
119b097521 More cleanup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:43:09 +01:00
snipe
c731633a84 Fixed weird formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:40:26 +01:00
snipe
6a4d6ade39 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:39:46 +01:00
snipe
b3b4697fc9 More whitespace cleanup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:38:25 +01:00
snipe
72c706d697 Aaaand one more
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:30:34 +01:00
snipe
8a7af24bd4 More whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:29:33 +01:00
snipe
dd01bd3e5f Cleaned up whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:29:01 +01:00
snipe
59cade9f82 Cleaned up whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:28:20 +01:00
snipe
6bb9b79832 Tweaked dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:29 +01:00
snipe
f8fe7b5803 Removed whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:19 +01:00
snipe
4d6279d61c Added JS to handle data-dash attribute overrides
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:04 +01:00
snipe
5ef581f328 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:10:51 +01:00
snipe
20a59c343e Merge pull request #17296 from uberbrady/improve_fmcs_locations_test
Fixed #17190 and [FD-49375]: Do FMCS testing 'async' to keep from blowing out the whole settings page
2025-06-25 13:10:54 +01:00
snipe
d6feb522b7 Merge pull request #17297 from grokability/fixes-#17259-#15239-external-avatar
Fixed #15239 and #17259 - better handle external avatars
2025-06-25 13:09:33 +01:00
snipe
951aee8292 Fixes #15239 and #17259 - better handle external avatars
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 13:03:51 +01:00
Brady Wetherington
6e2d7912b5 Do the FMCS testing 'async' to keep from blowing out the whole page 2025-06-25 12:59:37 +01:00
snipe
b20925b550 Fixed #17282 - removed erroneous update gate for user-license endpoint
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 11:03:06 +01:00
Godfrey M
c8b213c190 remove some changes, move error bag 2025-06-24 13:10:32 -07:00
Godfrey M
942de9dce5 got validation to redirect back to form and display 2025-06-24 12:42:07 -07:00
Godfrey M
483f684b04 adds focus to select 2 bulk checkout 2025-06-24 09:58:38 -07:00
snipe
26774b4193 Merge pull request #17287 from uberbrady/limit_license_seat_increments
Fixed [FD-45786] - Limit changing of asset seat count to no more than 10k at a time
2025-06-24 17:43:02 +01:00
Brady Wetherington
a7a597d609 Added some tests around license seat changes 2025-06-24 17:35:49 +01:00
snipe
1c12b9278a Merge pull request #17116 from marcusmoore/17065-send-alert-to-assigner-upon-response
Fixed #17065 - allow sending acceptance alert to initiator.
2025-06-24 17:30:47 +01:00
Brady Wetherington
de4764bd05 Limit changing of asset seat count to no more than 10k at a time 2025-06-24 13:53:11 +01:00
snipe
c1e7a78d23 Merge pull request #17284 from Godmartinz/fix-depreciation-choice-in-transformer
FIXED: #14869 changes the depreciation method selected for Assets index table
2025-06-23 20:49:25 +01:00
Godfrey M
8894bb91cc fix method choice in asset transformer for depreciations 2025-06-23 12:37:29 -07:00
snipe
c955126f01 Merge pull request #17283 from Godmartinz/multiclick_checkout_bug
Fixed #14077: Disables checkout button after submitting
2025-06-23 20:30:38 +01:00
Godfrey M
ce53b48d04 disable checkout button after submitting 2025-06-23 12:18:24 -07:00
snipe
6015aeddee Merge pull request #17209 from Godmartinz/saml_xml_update_bug
Fixed #17089: SAML metadata now updating with new XML uploads
2025-06-23 16:40:35 +01:00
snipe
7b04e30964 Merge pull request #17280 from grokability/fixes/#7246-manager-id-in-import
Fixed #7246 - added manager employee/username number to importer
2025-06-23 16:07:14 +01:00
snipe
6794f5e783 Added logging for manager import
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:46:04 +01:00
snipe
6e41ceff39 Fixed parameter order
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:41:56 +01:00
snipe
7ab47ff0de Fixed #7246 - added manager employee number to importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:11:57 +01:00
snipe
92d24d8702 Merge pull request #17277 from grokability/#17264-add-notes-to-bulk
Fixed #17264: add notes to bulk asset edit
2025-06-23 12:36:50 +01:00
snipe
bcbfd46682 Update controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:33 +01:00
snipe
bfd96a695f Add notes field and nulling checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:28 +01:00
snipe
f27e8534dc Make sure $item exists
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:15 +01:00
snipe
040cd7ddbf Updated string to use shorter version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 20:56:37 +01:00
snipe
8d6b21a076 Merge pull request #17241 from spencerrlongg/bug/17239-possible-500-when-checking-in-license-assigned-to-a-soft-deleted-user
Fixed #17239 - Add `withTrashed` User Search On License Checkin
2025-06-22 20:14:03 +01:00
snipe
2d36b25017 Merge pull request #17258 from Robert-Azelis/patch-13
Company info - user print assets
2025-06-22 20:13:24 +01:00
snipe
1f9e4306ae Fixed #17261 - check for either old or new label engine QR
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 20:07:30 +01:00
snipe
5242e0b36e Merge pull request #17270 from grokability/fixes/#17249-order-by-location-in-maintenances
Fixed #17249 - sort by location in asset maintenances
2025-06-22 19:41:14 +01:00
snipe
e50505532e Fixes #17249 - sort by location in asset maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:38:39 +01:00
snipe
f05ef18d55 Merge pull request #17269 from grokability/fixes/#17256-user-eula-view
Fixed #17256: fixed permissions for non-super-admins to view their own EULAs
2025-06-22 19:29:41 +01:00
snipe
f6eccd7277 Added profile routes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:30 +01:00
snipe
4d1258c64b Fixed downloadformatter
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:17 +01:00
snipe
103cbfd038 Use profile eula API view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:05 +01:00
snipe
47069ad3f4 Added stored eula method on profile
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:45 +01:00
snipe
317f620992 Added profile controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:19 +01:00
snipe
8f43694582 Added eula download with user check in profile controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:06 +01:00
snipe
df30076ffd Update gate for user
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:23:50 +01:00
snipe
f81750617e Fixed mismatched html header tag
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 17:30:13 +01:00
Robert-Azelis
e4534c4319 Company info - user print assets 2025-06-20 10:33:09 +02:00
snipe
d6c09aae6b Updated paveit command to delete by user_id instead of ID
Signed-off-by: snipe <snipe@snipe.net>
2025-06-18 21:15:04 +01:00
spencerrlongg
d3d5230d0c add with trashed to user search 2025-06-17 19:15:13 -05:00
Marcus Moore
6f3c5c44a5 Remove assertion 2025-06-17 14:31:14 -07:00
Marcus Moore
67b32ca14d Mail content improvements 2025-06-17 14:22:54 -07:00
Marcus Moore
bffaf477ea Method order 2025-06-17 14:22:44 -07:00
Marcus Moore
cba45ece12 Add image 2025-06-17 13:57:40 -07:00
Marcus Moore
3290d7f401 Add translations 2025-06-17 13:27:05 -07:00
Marcus Moore
ef3827376d Add todo 2025-06-17 13:17:42 -07:00
Marcus Moore
4ae8a91051 Remove unused method 2025-06-17 12:34:43 -07:00
Marcus Moore
ff4819ac68 Get licenses working 2025-06-17 12:34:16 -07:00
Marcus Moore
58af133853 Re-add some test cases 2025-06-17 11:51:33 -07:00
Godfrey M
8199cd2118 comment merge methods for now 2025-06-17 10:59:57 -07:00
snipe
9f02b80cf1 Merge pull request #17233 from grokability/fixes-#17232-duplicate-expected-checkin-field
Fixed #17232 - removed duplicate expected_checkin field on asset edit/create
2025-06-17 18:14:36 +01:00
snipe
d3e4e81168 Fixed #17232 - removed duplicate expected_checkin field
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 18:08:21 +01:00
snipe
38195c0a8f Merge pull request #17225 from grokability/fixes-ui-issues-in-manager-view
Fixes #17227 and #17228 - UI issues in manager view
2025-06-17 17:28:52 +01:00
snipe
5fa11e4278 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:57:26 +01:00
snipe
c39b52fcb5 Move select list closer to the table, removed awkward icon
This makes the view more consistent with the normal layout and removes the CSRF that was being passed in the GET on the form.submit

Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:57:17 +01:00
snipe
ec65fc1e65 Move manager view option to misc section
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:56:56 +01:00
snipe
32d8646d96 Add @lukaskraic as a contributor 2025-06-17 16:26:17 +01:00
snipe
e8835fc2b1 Merge pull request #17096 from lukaskraic/feature/manager-view-v2
Manager View Feature
2025-06-17 16:24:40 +01:00
snipe
054a06c5dc Update resources/lang/en-US/admin/settings/general.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2025-06-17 15:39:26 +01:00
snipe
9c61d2eb22 Removed common elements in tables
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 14:25:02 +01:00
snipe
d66b6cfee6 Merge pull request #17220 from grokability/added-advanced-search-to-activity-log
Added advanced search to activity log
2025-06-17 13:24:31 +01:00
snipe
89c0427b2f Added fullscreen option
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:24:02 +01:00
snipe
3fec10d447 Added advanced search to activity log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:20:39 +01:00
snipe
f8b4981bfe Merge pull request #17219 from grokability/fixes-#17213-search-by-admin
Fixes #17213:  search by admin (created_by) in activity report
2025-06-17 13:02:51 +01:00
snipe
130669a2f9 Added adminuser relationship in Searchable to concat first name and last name
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:01:57 +01:00
snipe
c2c79ee231 Make created_by searchable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:56:39 +01:00
snipe
86f10bd702 Added employee number to searchable relation
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:56:30 +01:00
snipe
b496a06fc0 Merge pull request #17218 from grokability/fixed-#17212-hide-columns-on-print
Fixed #17212 - hide columns from print view
2025-06-17 12:37:43 +01:00
snipe
f865a6cb37 Added 'printIgnore' => true, to presenters to hide checkbox and action column from print view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:35:05 +01:00
snipe
89186ea4f8 Merge pull request #17195 from grokability/#17192-fixes-wonky-layout-on-bulk-edit
Fixed #17192 - wonky layout on bulk edit screens
2025-06-17 11:55:31 +01:00
snipe
fb19985186 Use the same variable for fieldset closing tag
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 11:52:47 +01:00
snipe
ebc6e1221a Merge pull request #17198 from akemidx/ghissue-16241
Fixed #16241 - menu items not getting class="active" on click.
2025-06-17 11:40:56 +01:00
snipe
2b91dcb700 Merge pull request #17216 from grokability/#17215-wrong-logo-check-in-print
Fixed #17215: Check for acceptance logo vs regular logo
2025-06-17 11:38:19 +01:00
snipe
9d2e333fd6 Check for acceptance logo vs regular logo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 11:36:10 +01:00
Godfrey M
013ad1069c saving certs sooner in the stack 2025-06-16 16:30:00 -07:00
Godfrey M
ec059717f6 adds id to XML textbox, now updates 2025-06-16 16:01:11 -07:00
akemidx
418566db3f fixes the easy ones 2025-06-16 18:41:36 -04:00
snipe
7be9463be6 Merge pull request #17180 from grokability/#12653-added-jobtitle-to-asset-listing
Fixed #12653 - added jobtitle to asset listing
2025-06-16 20:29:01 +01:00
snipe
51712bc7d6 Check for whether any of the models have a fieldset
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 16:40:07 +01:00
snipe
7b889d22d2 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 16:14:01 +01:00
snipe
e8aad989ec Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 14:27:47 +01:00
snipe
4006d64d60 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 14:25:59 +01:00
snipe
d792d99375 Removed stray space for favicon
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 03:51:50 +01:00
snipe
b11036a2e5 Fixed #11977 - changed path in backups language
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 03:40:54 +01:00
snipe
01de69a250 Merge pull request #17181 from grokability/fixed-#14542-missing-fullscreen-in-locations
Fixed #14542 - added fullscreen option for location view tabs
2025-06-15 02:57:51 +01:00
snipe
5e1c2e7feb Fixed #14542 - added fullscreen option for location view tabs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:56:07 +01:00
snipe
b842aa11e5 Remove debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:25:25 +01:00
snipe
ff01078b60 Fixed #12653 - adds job title to asset listing
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:23:53 +01:00
snipe
b1e92293fc Merge pull request #14998 from timoschwarzer/feature/department-manager-in-table
Added #14997: Display department manager in user view and list
2025-06-14 23:51:41 +01:00
snipe
443f69bd82 Merge branch 'develop' into feature/department-manager-in-table 2025-06-14 23:48:52 +01:00
snipe
f4decbf52e Fixed #15480 - adds location to acceptance email
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 23:08:37 +01:00
snipe
bd2c311e4f One more fix to bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 22:22:42 +01:00
snipe
2dcab6d0b3 Fixed logic on bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 22:21:00 +01:00
snipe
c68a97198f Fixes #8212 - force date format for purchase date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 20:40:15 +01:00
snipe
2702c3da2b Merge pull request #17178 from grokability/fixes-maintenance-name-on-delete
Fixed #17177 - use maintenance title for delete confirmation
2025-06-14 17:44:21 +01:00
snipe
da06e9afd5 Fixes #17177 - undefined title on asset maintenance
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 17:40:14 +01:00
snipe
1623f13539 Merge pull request #17147 from chrisnovakovic/php_upload_limit-hardening
Docker: harden updating of `php.ini` in entrypoint
2025-06-14 17:11:15 +01:00
snipe
5910982a4f Merge pull request #17176 from grokability/nicer-bulk-options-for-assets
Add logic around menu options
2025-06-14 17:06:49 +01:00
snipe
74630b36b0 Merge pull request #17175 from grokability/fixes/17172-checkin-date
Fixed #17172 - Better handle checkin date overrides
2025-06-14 17:06:30 +01:00
snipe
ace4a5d614 Add logic around menu options
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 17:02:09 +01:00
snipe
0d41947f64 Better handle checkin date overrides
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:54:25 +01:00
snipe
78de3b3591 Merge pull request #17174 from grokability/fixes-17163-permissions-on-maintenances
Fixed #17163 - insufficient permissions on editing an asset maintenance
2025-06-14 16:43:27 +01:00
snipe
0a4a6e7ba3 Removed unusued relationship
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:37:44 +01:00
snipe
090399b336 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:34:12 +01:00
snipe
47afb15970 Updated HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:24:05 +01:00
snipe
b1ba3376aa Validation for completion date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:13:57 +01:00
snipe
8c1e19e77c Fixed breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 15:53:05 +01:00
snipe
0801d1473c Use forem group div
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:57:55 +01:00
snipe
6d98878c72 Removed redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:31:15 +01:00
snipe
2d404fdadc Fixed breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:52 +01:00
snipe
b264fde165 Show title if it’s an edit
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:43 +01:00
snipe
970ff25e5e Added model and company to manufacturer view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:27 +01:00
snipe
9dd3eee65c Pull incorrect check for company scoping
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:04:09 +01:00
snipe
957faa6651 Fixed datepicker prepopulating with start_date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:03:52 +01:00
snipe
cc7dcc6e81 Disallow multiple on editing a maintenance
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 13:39:18 +01:00
snipe
f666cba104 Fixed RB-3991 - override route for non-existent fieldset
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 12:17:31 +01:00
Marcus Moore
7f35498919 Remove some test cases 2025-06-12 15:56:24 -07:00
Marcus Moore
297205ff91 Tests 2025-06-12 15:55:25 -07:00
Marcus Moore
6f99381d13 Handle accessories 2025-06-12 15:49:38 -07:00
Marcus Moore
45a42b00ad Add test 2025-06-12 15:48:48 -07:00
Marcus Moore
6586858284 Scaffold some test cases 2025-06-12 15:31:32 -07:00
Marcus Moore
19cce15e54 Revert "Method signature change"
This reverts commit a60ffc0702.
2025-06-12 13:54:53 -07:00
Marcus Moore
62b8e4c46f Revert "Inline some values"
This reverts commit 74b7d27408.
2025-06-12 13:54:46 -07:00
Marcus Moore
74b7d27408 Inline some values 2025-06-12 13:49:19 -07:00
Marcus Moore
a60ffc0702 Method signature change 2025-06-12 13:46:05 -07:00
snipe
9b8524ba27 Merge pull request #17109 from akemidx/bug/sc-28718-2
FIXED: Adding Total to Consumable View Page
2025-06-12 21:44:08 +01:00
Marcus Moore
32526d77b8 Add todo 2025-06-12 13:35:22 -07:00
snipe
ba7db8f7b3 Merge pull request #17092 from Godmartinz/fix-bulk_checkout_undeployable
Adds `hasUndeplyableStatus` check to bulk checkout
2025-06-12 21:29:26 +01:00
snipe
04712ad252 Merge pull request #17151 from Godmartinz/bulk-checkout-add-pending-status
Fixed #17028: Allows bulk editing assets with a status type of pending
2025-06-12 21:27:44 +01:00
Marcus Moore
5711a9e148 Fix test 2025-06-12 13:02:26 -07:00
Marcus Moore
a0f40c2dfb Tests 2025-06-12 12:56:24 -07:00
Marcus Moore
34636016eb Improve test 2025-06-12 12:47:03 -07:00
Marcus Moore
95027e329c Formatting 2025-06-12 12:44:29 -07:00
Marcus Moore
c9778a73c7 Wire up category controller 2025-06-12 12:32:34 -07:00
Marcus Moore
628d2a0a0a Flesh out mail contents 2025-06-12 12:12:38 -07:00
Marcus Moore
cc0ff1ec1f Handle missing recipient 2025-06-12 11:53:30 -07:00
snipe
6543540509 Merge pull request #17166 from Godmartinz/item_name_fix_from_account_eula_table
FIXED: #17136 loads item relation properly in account EULA tab
2025-06-12 11:53:51 +01:00
Marcus Moore
cd53fc6318 Scaffold email contents 2025-06-11 16:56:40 -07:00
Godfrey M
4934b6c4da fix query for item relationship to load properly 2025-06-11 11:42:16 -07:00
snipe
59db38524b Merge pull request #17094 from spencerrlongg/snipe-it-17051
Fixes #17051 - Nulling Custom Fields In Bulk Asset Updates
2025-06-11 10:31:28 +01:00
snipe
3f5cfc3a4b Merge pull request #17142 from marcusmoore/fixes/present-on-null-in-expected-checkins-notification
Fixed Expected checkin notification erroring on unknown users
2025-06-11 10:27:49 +01:00
snipe
3443f02c0a Merge pull request #17141 from marcusmoore/fixes/undefined-manages_users_count-on-user
Fixed bad method calls in user index api call
2025-06-11 10:26:13 +01:00
snipe
9a012ca01e Merge pull request #17154 from Robert-Azelis/patch-10
Update user print assigned assets
2025-06-11 10:24:50 +01:00
snipe
509ef34cca Merge pull request #17155 from Robert-Azelis/patch-11
Update location print assigned assets
2025-06-11 10:24:29 +01:00
snipe
49c289a094 Merge pull request #17158 from grokability/changes-default-history-column-visibility
Changed default visibility on history views
2025-06-11 10:19:33 +01:00
snipe
10e5d88fb6 Changed default visibility on history views
Signed-off-by: snipe <snipe@snipe.net>
2025-06-11 10:16:26 +01:00
snipe
ae64fb3fdb Merge pull request #17157 from grokability/fixed-#17138-category-type-case-sensitive
Fixed #17138 - category type was case-sensitive
2025-06-11 10:12:05 +01:00
snipe
cac2fde504 Fixed #17138 - category type in category importer is case sensitive
Signed-off-by: snipe <snipe@snipe.net>
2025-06-11 10:08:59 +01:00
snipe
bb38a96fd1 Merge pull request #17152 from marcusmoore/fixes/handle-category-missing-upon-checkin
Handle potentially missing category upon checkin
2025-06-11 09:36:50 +01:00
Robert-Azelis
79dbcb10c9 Update location print assigned assets
Lets allow user to select print layout: portrait or landscape
Use dedicated logo for PDF documents: acceptance_pdf_logo
2025-06-11 09:22:13 +02:00
Robert-Azelis
7c80fdea58 Update user print assigned assets
Lets allow user to select print layout: portrait or landscape
Use dedicated logo for PDF documents: acceptance_pdf_logo
2025-06-11 09:19:51 +02:00
Godfrey M
5500a42744 change message from error to warning 2025-06-10 15:10:10 -07:00
Godfrey M
ae46264707 removed comment 2025-06-10 15:07:42 -07:00
Godfrey M
f2d8665e54 adds tests 2025-06-10 15:07:04 -07:00
Marcus Moore
db7110d6b2 Remove test 2025-06-10 10:43:23 -07:00
Marcus Moore
4e06b597fe Handle category missing in Consumable 2025-06-10 10:43:02 -07:00
Godfrey M
fe006d05d3 allows to change the status to pending in bulk edit while deployed 2025-06-10 10:41:26 -07:00
Marcus Moore
358b70e280 Handle category missing in Accessory 2025-06-10 10:36:59 -07:00
Marcus Moore
a060dde625 Add failing test 2025-06-10 10:34:25 -07:00
Godfrey M
3cfed72af4 removes undeployables from asset_id array 2025-06-10 10:11:00 -07:00
Chris Novakovic
4c59989236 Docker: harden updating of php.ini in entrypoint
The Docker entrypoint scripts set values for the `upload_max_filesize`
and `post_max_size` directives in `php.ini` based on the value of the
`PHP_UPLOAD_LIMIT` environment variable, subject to the following
restrictions:

* Exactly one file matches `/etc/php/*/apache2/php.ini` (on Ubuntu) or
  `/etc/php*/php.ini` (on Alpine) - if, for example, more than one PHP
  package is installed in the base image, `PHP_UPLOAD_LIMIT` will not be
  honoured.
* The `php.ini` file already sets a non-default value for the
  `upload_max_filesize` or `post_max_size` directives - this is
  currently the case for the configurations inherited from upstream, but
  is not guaranteed. If the default values are relied upon,
  `PHP_UPLOAD_LIMIT` will silently not be honoured (although the script
  output will claim that it is).

Iterate over the lines outputted by `file(1)` so `PHP_UPLOAD_LIMIT` is
honoured in all available `php.ini` files, and set `upload_max_filesize`
and `post_max_size` regardless of whether they already have a value set.
2025-06-10 13:39:46 +01:00
Marcus Moore
6c1adff5c8 Extract translation string 2025-06-09 15:33:39 -07:00
Marcus Moore
9293bdca06 Don't render link for Unknown User 2025-06-09 15:32:07 -07:00
Marcus Moore
beeccbfb44 Handle unknown users gracefully 2025-06-09 15:30:03 -07:00
Marcus Moore
0d3d2e2e78 Fix keyes 2025-06-09 12:55:38 -07:00
Marcus Moore
2af7605451 Add failing tests 2025-06-09 12:55:09 -07:00
snipe
976cc1c86f Fixed second incorrect string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-09 14:00:47 +01:00
snipe
cbbf3aa6c8 Fixed incorrect translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-09 13:40:34 +01:00
snipe
4f8ff98d5b Merge pull request #17129 from grokability/fixes#17127-added-note-to-eula-api
Fixed #17127 - added note to EULA info
2025-06-08 15:29:47 +01:00
snipe
d4fe81c290 Fixed #17127 - added note to EULA info
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:27:50 +01:00
snipe
cbdf03aa66 Nicer code formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:18:59 +01:00
snipe
d756670c56 Check for supplier before trying to show
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:17:24 +01:00
snipe
9ef7b0e64a Fixed missing translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 20:41:36 +01:00
snipe
2d7c0f7e5f Merge pull request #16469 from grokability/fix_action_date
Fixed `action_date` in `action_logs`
2025-06-06 17:18:39 +01:00
snipe
ec8ddc197f Merge branch 'develop' into fix_action_date 2025-06-06 17:18:27 +01:00
snipe
b48e56bd46 Merge pull request #17110 from Godmartinz/allow-users-to-dl-eula-from-account
Fixed #17084 - Adds Eula table to User account area with download option
2025-06-06 17:07:19 +01:00
snipe
753ca93371 Merge pull request #17126 from grokability/fixes-#17023-multi-maintenances
Fixes #17023 - added ability to bulk add maintenances
2025-06-06 17:01:50 +01:00
snipe
04f71e7f6a Shorter syntax
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:58:10 +01:00
snipe
5d129dd420 Small form fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:56:45 +01:00
snipe
1c37c630aa Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:26:37 +01:00
snipe
d329d6104e Make supplier_id nullable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:55:54 +01:00
snipe
482723f3bc Updated blade to use multiple
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:47:07 +01:00
snipe
cbc025b1ff Updated save method to save multiple
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:46:55 +01:00
snipe
bf8ceceabe Add bulk maintenance handler
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:42:14 +01:00
snipe
fba4bba132 Make supplier not required anymore
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:41 +01:00
snipe
0ded40c037 Add multiselect to maintenance form
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:30 +01:00
snipe
6f486a37ff Added maintenance option to bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:02 +01:00
snipe
1ef822997b Merge pull request #17125 from grokability/fixed-17117-added-translation
Fixed #17117 - use translation for “site default”
2025-06-06 14:04:08 +01:00
snipe
ea66629e98 Fixed #17117 - use translation for “site default”
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 14:03:17 +01:00
snipe
84c9979fe3 Merge pull request #17124 from grokability/add-print-button-to-tables
Added print button to tables
2025-06-06 13:52:22 +01:00
snipe
867a992183 Added print button to tables
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 13:51:12 +01:00
snipe
c3ad7d649c Merge pull request #17122 from grokability/added_highlighting_to_search
Added highlighting on table search
2025-06-06 12:47:31 +01:00
snipe
fc250e228d Added highlighting on table search
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 12:43:47 +01:00
snipe
37e81568ea Merge pull request #17120 from grokability/fixes-11807-datepicker-blade-component
Fixed #11807 - Standardize date-picker
2025-06-06 11:44:54 +01:00
snipe
048d910d5b Use partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:33:17 +01:00
snipe
b162aba445 Added localization for datepicker
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:33:02 +01:00
snipe
974627849b Added datepicker partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:47 +01:00
snipe
e18e9f699e Use blade component in datepicker partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:37 +01:00
snipe
cc9209d2de Removed EOL date and purchase date partials
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:13 +01:00
snipe
dd3d264e63 Merge pull request #16675 from Godmartinz/null_location_id_fix
Adds a check for assigned target not being null when creating an asset
2025-06-06 08:30:31 +01:00
snipe
246f1373a8 Merge pull request #16948 from marcusmoore/bug/sc-29181
Require assigned_x to be integer on asset model
2025-06-06 07:57:20 +01:00
snipe
b993f4270e Merge pull request #17114 from grokability/fixes-16934-update-asset-by-id
Fixed #16934 and #17068 - update asset by ID in importer
2025-06-06 07:55:03 +01:00
snipe
6c51ef11b1 Merge pull request #17115 from marcusmoore/17067-limit-cc-if-acceptance-required
Fixed #17067: Allow only sending cc email when acceptance required
2025-06-06 07:41:26 +01:00
Marcus Moore
ae98f6276e Replace reject with declined 2025-06-05 17:24:57 -07:00
Marcus Moore
7424a5987b Add subject 2025-06-05 17:22:31 -07:00
Marcus Moore
2d08749207 Improve readability 2025-06-05 16:56:11 -07:00
Marcus Moore
db50e98ae3 Populate tests 2025-06-05 16:51:44 -07:00
Marcus Moore
7ec0925c69 Scaffold out tests 2025-06-05 16:44:44 -07:00
Marcus Moore
df1361aa43 Scaffold test 2025-06-05 16:42:31 -07:00
akemidx
6db04c86df making fields active. first pass 2025-06-05 18:46:33 -04:00
Marcus Moore
bec80b443c WIP: begin to send email 2025-06-05 15:15:22 -07:00
Marcus Moore
333501fe55 WIP: create mail class 2025-06-05 15:07:19 -07:00
Marcus Moore
063553d4f7 Scaffold scenarios 2025-06-05 14:57:15 -07:00
Marcus Moore
19b9e50281 Update livewire component for alert_on_response 2025-06-05 14:40:19 -07:00
Marcus Moore
2a68b4aeff Update test for updating category with alert_on_response 2025-06-05 14:36:06 -07:00
Marcus Moore
5e25150521 Add another test case 2025-06-05 14:26:56 -07:00
Marcus Moore
cb183d3645 Store alert_on_response_id on CheckoutAcceptance 2025-06-05 14:06:22 -07:00
Marcus Moore
96bce301a0 Add alert_on_response to Category 2025-06-05 13:43:20 -07:00
Marcus Moore
360f5b7538 Add alert_on_response_id to CheckoutAcceptance 2025-06-05 13:10:18 -07:00
Marcus Moore
77234f6580 Extract translation strings 2025-06-05 12:24:46 -07:00
Marcus Moore
088e6af0b5 Remove admin_cc_email validation for admin_cc_always 2025-06-05 12:07:14 -07:00
Lukas Kraic
16fb1018a2 List users code refactoring 2025-06-05 20:05:38 +02:00
Godfrey M
e2e54677ee add auth to api call, gave more specificity to the relationship 2025-06-05 10:59:16 -07:00
Lukas Kraic
ad6fe855a9 Fix code style: Change comments 2025-06-05 18:53:36 +02:00
Lukas Kraic
c50c97d149 Fix code style: Change comments 2025-06-05 18:18:07 +02:00
Lukas Kraic
8b98ae15f0 Fix code style: Add comment 2025-06-05 18:08:34 +02:00
Lukas Kraic
261f84d5f5 Fix code style: Remove comment 2025-06-05 17:55:46 +02:00
Lukas Kraic
29989ac24e Fix code style: Remove empty line after end comment 2025-06-05 13:50:57 +02:00
snipe
7a93e94fa6 Add ID to field list
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 12:35:30 +01:00
snipe
e33f73fe9f Fixed comment text
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 11:56:14 +01:00
snipe
6291389df5 Fixed #16934 - update asset by ID in importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 11:53:57 +01:00
snipe
ed817dc414 Merge branch 'develop' into snipe-it-17051 2025-06-05 11:37:17 +01:00
Lukas Kraic
7494fa6bc9 Fix code style: Remove unnecessary end comment from short conditional block 2025-06-05 12:03:42 +02:00
Lukas Kraic
62e50dbe52 Fix code style: Add semantically correct end comments 2025-06-05 11:56:13 +02:00
Lukas Kraic
30c090ba2d Fix code style: Add descriptive end comment for conditional block 2025-06-05 11:45:05 +02:00
Lukas Kraic
7ff82e6043 Delete comments 2025-06-05 11:07:42 +02:00
snipe
2950fb1041 Merge pull request #17108 from Godmartinz/clear-buttons-for-custom-fields
Adds a clear button to custom radio buttons in bulk edit
2025-06-05 10:03:27 +01:00
Lukas Kraic
61d3e2fb49 Fix code style: Add required whitespace in end block comments 2025-06-05 09:23:58 +02:00
Lukas Kraic
fb18c1a0be Fix code style: Remove whitespace in end block comments 2025-06-05 08:59:07 +02:00
Godfrey M
68c082e0dc fix doc blocks 2025-06-04 15:48:35 -07:00
Godfrey M
ee3deb9c63 made eula api route, formatted table, cleaned up code 2025-06-04 15:04:59 -07:00
Marcus Moore
c1505de8d6 Update wording 2025-06-04 13:02:04 -07:00
Marcus Moore
10be434c13 Populate tests 2025-06-04 12:58:49 -07:00
Marcus Moore
92e22eead5 Formatting 2025-06-04 12:51:59 -07:00
Marcus Moore
31db86abd3 Simplify test 2025-06-04 12:51:48 -07:00
Marcus Moore
8e70ff135a Scaffold tests 2025-06-04 12:44:55 -07:00
akemidx
5ec52f7471 beginning of everything. tried some stuff but yea. something is up 2025-06-04 15:10:16 -04:00
Marcus Moore
8bc57f98a5 Split test case 2025-06-04 11:51:29 -07:00
Godfrey M
6f4cee6334 adds Eula tab and count to user account 2025-06-04 11:38:50 -07:00
Godfrey M
6beccc5e60 adds clear ability to custom radio buttons 2025-06-04 10:24:45 -07:00
Godfrey M
fed8e10644 Merge remote-tracking branch 'upstream/develop' into clear-buttons-for-custom-fields 2025-06-04 10:06:59 -07:00
snipe
3c0121c1d0 Merge pull request #17107 from grokability/fixes-16218-add-centos
Fixed #16218 - added centos to the switch case
2025-06-04 15:33:23 +01:00
snipe
02021e3fb9 Fixed #16218 - added centos to the switch case
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 15:27:19 +01:00
Lukas Kraic
ea447365fa Fix Codacy warnings II 2025-06-04 15:40:17 +02:00
Lukas Kraic
60989d6766 Fix Codacy warnings 2025-06-04 15:17:55 +02:00
snipe
a2960dc653 Merge pull request #17103 from grokability/fixes-17102-add-cc-as-search-string-in-settings
Fixed #17102 - added keywords to admin settings search for notifications
2025-06-04 12:12:17 +01:00
snipe
702499dd79 Fixed #17102 - added keywords to admin settings search for notifications
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 12:09:57 +01:00
snipe
482c427e34 Merge pull request #17100 from uberbrady/add_deleted_at_index_to_action_logs
Fixed #16205 - Add an index to deleted_at for those with many deleted action_logs
2025-06-04 11:48:45 +01:00
snipe
67910490bd Merge pull request #17101 from grokability/fixes-16157-added-advanced-search-to
Fixed #16157 - Added advanced search to users
2025-06-04 11:48:24 +01:00
snipe
fdb5ab2293 Added advanced search to users
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 11:46:38 +01:00
Brady Wetherington
092d9d1e42 Add deleted_at index to action_logs for people with many deleted action_logs 2025-06-04 11:23:09 +01:00
snipe
e657f11531 Merge pull request #17099 from grokability/fixes-16240-localization-strings
Fixed #16240 - made additional strings translatable
2025-06-04 10:40:21 +01:00
snipe
9aac183318 Added aria tag for accessibility
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:40:05 +01:00
snipe
c8c2867305 Remove unused translation
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:39:08 +01:00
snipe
3e1f71026c Fixed #16240 - made additional strings translatable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:37:04 +01:00
snipe
dc562d8c20 Remove error log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 08:43:40 +01:00
Lukas Kraic
84ec5aea26 Manager View Feature 2025-06-04 09:07:26 +02:00
Marcus Moore
444c13c6ea Scaffold template 2025-06-03 17:10:15 -07:00
spencerrlongg
12d5e4f7d2 cleanup and test 2025-06-03 19:07:02 -05:00
spencerrlongg
0fb1639915 this works! 2025-06-03 18:06:41 -05:00
Marcus Moore
d01f7cf317 Adhere to admin_cc_always setting 2025-06-03 15:32:11 -07:00
spencerrlongg
03725c8e0c custom field null and filtering 2025-06-03 17:21:07 -05:00
Marcus Moore
3942489d21 Add Test suffix and scaffold test 2025-06-03 14:13:52 -07:00
Marcus Moore
51479c8bbc Scaffold failing test 2025-06-03 13:28:40 -07:00
Marcus Moore
ea3364ab68 Split test case 2025-06-03 13:19:44 -07:00
Godfrey M
cb608d7fd1 testing buttons out 2025-06-03 11:58:57 -07:00
Godfrey M
7129008428 remove testing changes 2025-06-03 11:44:38 -07:00
Godfrey M
3b832f507f fixes status check for bulk checkout 2025-06-03 11:38:59 -07:00
Godfrey M
b5849500f9 add isDeplyable check 2025-06-03 10:49:17 -07:00
snipe
9eaabf95a0 Make version number match tagged version :(
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 11:02:41 +01:00
snipe
724f38abc2 Merge pull request #16998 from kovacs-andras/develop
Bumped container image versions
2025-06-03 06:22:08 +01:00
snipe
0dfc083a91 Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 06:07:06 +01:00
snipe
16432f503a Merge pull request #17087 from grokability/#17085-checkin-and-delete-not-nulling-assigned_type
Fixed #17085 - assigned_type not being nulled on asset delete+checkin
2025-06-03 05:53:24 +01:00
snipe
7c9433be5d Added migration to fix existing wonky data
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:37:37 +01:00
snipe
e4ce71ff14 Added time on action date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:53 +01:00
snipe
45c6406ff4 Added console command for fixup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:43 +01:00
snipe
550e2b6bb8 Null both assigned to and assigned type on delete
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:30 +01:00
snipe
a7bb890729 Removed action date from array of things to log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:29:49 +01:00
snipe
3d8f8faf01 Added action_date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:28:58 +01:00
snipe
55cf5877c4 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:28:45 +01:00
Marcus Moore
dec3c4aff3 Improve wording 2025-06-02 17:45:08 -07:00
Marcus Moore
79e00c1191 Require admin_cc_email if admin_cc_always is true 2025-06-02 17:21:58 -07:00
Marcus Moore
12dc33244d Start storing admin_cc_always 2025-06-02 17:20:01 -07:00
Marcus Moore
6e37f945ac Add test helpers 2025-06-02 17:13:37 -07:00
Marcus Moore
d75120000a Add failing tests 2025-06-02 17:11:18 -07:00
Marcus Moore
9e4aab7165 Scaffold tests 2025-06-02 17:05:18 -07:00
Marcus Moore
6bc3209333 Use @checked for inputs 2025-06-02 17:05:00 -07:00
Marcus Moore
054ff42547 Add migration for admin_cc_always 2025-06-02 17:03:14 -07:00
spencerrlongg
11b47b308b front end done, sloppy 2025-06-02 18:39:08 -05:00
Marcus Moore
367ab8ddd5 Add help text 2025-06-02 16:27:04 -07:00
Marcus Moore
4f5d4a0984 Scaffold settings page changes 2025-06-02 16:25:06 -07:00
Marcus Moore
69b9b0bbc0 Allow setting id within location-select 2025-06-02 15:53:25 -07:00
Marcus Moore
3c1088f030 Improve variable name 2025-06-02 15:49:16 -07:00
snipe
40489c53d6 Merge pull request #17078 from grokability/fixes-#17076-validation-on-bulk-submit
Fixed #17076 - Disable optional status ID form field if value is blank/Do Not Change
2025-06-02 22:28:31 +01:00
snipe
93b760d53b Disable form fields if the value is blank
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 22:16:36 +01:00
snipe
e86996bc7e Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 18:15:21 +01:00
snipe
14244f45b6 Duplicates PR #16957
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 18:13:16 +01:00
snipe
1b9d90a322 Added over sixty test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 17:36:50 +01:00
snipe
736f74d083 Merge pull request #17074 from uberbrady/improve_api_rate_limiting
Fix to rate-limiter on higher rate-limits
2025-06-02 17:25:02 +01:00
Brady Wetherington
8194c6efdb Fix to rate-limiter on higher rate-limits 2025-06-02 17:21:14 +01:00
snipe
aae2a17ad1 Add @amedranogil as a contributor 2025-06-02 15:27:55 +01:00
snipe
f44150668c Merge pull request #17038 from amedranogil/develop
more robust php.ini update.
2025-06-02 15:27:28 +01:00
snipe
6eed2deb09 Merge pull request #17013 from Robert-Azelis/patch-9
API Models - added requestable for API request
2025-06-02 15:26:08 +01:00
snipe
878c6e7031 Merge pull request #17019 from grokability/#15320-status_to_bulk_checkout
Fixed #15320 - added status label to bulk checkout
2025-06-02 15:05:44 +01:00
snipe
1f4a73fab6 Merge pull request #17062 from grokability/add_category_importer
Added category importer
2025-06-02 15:03:31 +01:00
snipe
7a315523fe Improved CSV
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 15:01:16 +01:00
snipe
6f082e662b Fixed weird layout
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 14:52:41 +01:00
snipe
018c981c5a Merge pull request #17042 from marcusmoore/chore/replace-customfield-elements-macro-take-two
Replace customfield_elements form macro take two
2025-06-02 10:18:19 +01:00
snipe
0149773a03 Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 04:14:51 +01:00
snipe
5d46d90725 Added category importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 04:11:54 +01:00
snipe
0544e05f32 Merge pull request #17061 from grokability/add_manufacturer_importer
Added manufacturer importer
2025-06-02 03:05:25 +01:00
snipe
80ff42a41f Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 03:01:56 +01:00
snipe
90b7df45b9 Added tests and support helper
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:55:11 +01:00
snipe
32858b973a Added sample CSV
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:55:00 +01:00
snipe
40ba8d0de1 Fixed “send welcome email” detection
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:34 +01:00
snipe
8ddbb4e64f Added manufacturer factory
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:21 +01:00
snipe
cc40c48aac Added manufacturers import fields
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:03 +01:00
snipe
522ab9e0f5 Added manufacturer importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:46 +01:00
snipe
97187aa7eb Skip manufacturers on checkout import type
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:37 +01:00
snipe
d93a5aa623 Added redirect after import
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:09 +01:00
snipe
a5b88982bf Added manufacturer icon
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:52:55 +01:00
snipe
df71bdcada Merge pull request #17044 from marcusmoore/bug/sc-29302
Handle missing location when rendering labels
2025-06-02 02:21:19 +01:00
snipe
51bab2dd26 Merge pull request #17045 from grokability/docker-laravel-log-permissions
Docker: Ensure permissions on Laravel log file
2025-05-30 06:52:31 +01:00
Jeremy Price
ed8da6ad1b Docker: Ensure permissions on Laravel log file
FIXES: https://github.com/grokability/snipe-it/issues/12725

In some of our Docker startups, it was possible for the Laravel log file
to be created with root permissions, causing future errors when the
non-root webapp tries to write to it.

We'll now always chown (and create, if necessary) the log file to the proper
user after running any artisan commands (as root)

We _could_ run them as the proper user via su, but IMO not doing so keeps the
script easier to read, but I'm not married to the approach. I'd still
want to keep the chown command(s) in, because it will also fix the
permissions for anyone who already has this issue.
2025-05-29 17:45:14 -07:00
Marcus Moore
18d0a04efc Avoid dumping pdf contents to test results 2025-05-29 15:05:08 -07:00
Marcus Moore
bb68ed3ad9 Handle asset not having location 2025-05-29 14:49:53 -07:00
Marcus Moore
402ca07aa2 Add failing test 2025-05-29 14:20:15 -07:00
snipe
28dc358df1 Merge pull request #17041 from grokability/improve_locations_and_supplier_api
Small refinements for suppliers and locations API and list view
2025-05-29 21:30:54 +01:00
Marcus Moore
3cf1e9d55d Remove customfield_elements macro 2025-05-29 13:30:23 -07:00
Marcus Moore
82b001ab5f Extract translation strings 2025-05-29 13:29:13 -07:00
Marcus Moore
7b272226ce Inline customfield_elements select 2025-05-29 13:29:13 -07:00
snipe
78d26fb7f6 Removed stray character
Typing is hard :(

Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:23:50 +01:00
snipe
930842e685 Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:18:19 +01:00
snipe
b938cb42d8 Merge pull request #17040 from marcusmoore/improve-acceptance-reminder-output
Avoid displaying empty table in `SendAcceptanceReminder` command
2025-05-29 21:14:09 +01:00
snipe
4c7b6d130f Added additional search and display fields for suppliers and locations
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:13:08 +01:00
Marcus Moore
af57ca4983 Avoid displaying empty table 2025-05-29 11:55:43 -07:00
snipe
40c31a1ad7 Eager load adminuser method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:13:16 +01:00
snipe
7ae4a4177f Added created_by to transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:13:05 +01:00
snipe
6efd323fbf Added adminuser method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:48 +01:00
snipe
ed9dbcc777 Added created_by to location presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:33 +01:00
snipe
c2cf7de41b Use presenter for suppliers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:16 +01:00
Alejandro M. Medrano Gil
32bd14bd2d more robust php.ini update.
could solve #10830 when setting PHP_UPLOAD_LIMIT environment variable in docker command and/or docker-compose.
2025-05-29 17:46:23 +02:00
snipe
f9cbecdb17 Merge pull request #17037 from grokability/supplier_importer
Added #17036 - suppliers importer
2025-05-29 16:15:59 +01:00
snipe
7bb29a0277 Added sample import CSVs
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:08:17 +01:00
snipe
d5f7579e9f Added columns to suppliers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:08:01 +01:00
snipe
13fd43c45c Added tests and test support
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:51 +01:00
snipe
c08ce901cc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:19 +01:00
snipe
94bd11d3c9 Added locations and supplier import types
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:11 +01:00
snipe
59c6e26b29 Fixed mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:06:51 +01:00
snipe
bf7cc404f8 Set correct redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 15:54:37 +01:00
snipe
12a2c71b90 Added icon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 14:47:59 +01:00
snipe
6e2eeba0f6 Added supplier importer
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 14:47:54 +01:00
snipe
99a739fae3 Merge pull request #17035 from grokability/settings_style_improvements
Fixed #17034 - larger header color box on small views
2025-05-29 13:30:31 +01:00
snipe
0185f61c11 Fixed #17034 - larger header color box on small views
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 13:23:07 +01:00
snipe
783f0c113d Merge pull request #17009 from marcusmoore/chore/replace-user-skin-macro
Replace `skin` and `user_skin` macros with blade component
2025-05-29 13:07:47 +01:00
snipe
75a839cc21 Merge pull request #17010 from marcusmoore/chore/replace-two-factor-select-macro
Replace `two_factor_options` macro
2025-05-29 13:07:23 +01:00
snipe
577b5586b4 Merge pull request #17025 from akemidx/clear_button_on_date_picker
FIXED: Clear Button actually Clearing Dates on Date Picker
2025-05-29 12:37:56 +01:00
snipe
1474a16148 Merge pull request #17024 from akemidx/created_at_date_picker
ADDED: Created At date picker on Custom Reports
2025-05-29 12:37:17 +01:00
snipe
9baa2000e1 Merge pull request #17026 from marcusmoore/bug/translate-email-format
Reference correct translation string
2025-05-29 12:36:08 +01:00
snipe
d0624dbefe Merge pull request #17027 from akemidx/bug/sc-29295
FIXED: Translation strings in Username/Email formats
2025-05-29 12:34:47 +01:00
snipe
ecb6e8d9a9 Fixed route for custom fields index
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 12:24:22 +01:00
Robert-Azelis
bbb299faf2 Update AssetModelsController.php 2025-05-29 08:42:29 +02:00
snipe
ba3b55cab0 Merge pull request #17022 from marcusmoore/bug/sc-29281
Avoid dividing by zero in DefaultLabel
2025-05-29 02:42:41 +01:00
akemidx
67acca7bc8 fixing two translation strings. 2025-05-28 20:21:05 -04:00
Marcus Moore
e4b33c3b56 Reference correct translation string 2025-05-28 16:36:39 -07:00
akemidx
ed43c73cec clearing the date pickers 2025-05-28 18:48:22 -04:00
akemidx
a6fa795b41 clearing the date pickers 2025-05-28 18:48:08 -04:00
akemidx
3a6bac2e63 date picker 2025-05-28 18:43:24 -04:00
akemidx
8e01c05e42 date picker 2025-05-28 18:43:14 -04:00
akemidx
fabf9281e9 date picker 2025-05-28 18:35:43 -04:00
Marcus Moore
6588d409b8 Add validation 2025-05-28 14:45:03 -07:00
snipe
92a3421a4e Merge pull request #17020 from akemidx/column_persist_on_assigned_assets
FIXED: Column persist on User's Self View of Assigned Assets
2025-05-28 22:44:36 +01:00
Marcus Moore
a42147ff34 Enforce min of .1 for label width and height 2025-05-28 14:05:29 -07:00
Marcus Moore
0df1bc6894 Scaffold test 2025-05-28 14:04:12 -07:00
akemidx
9317076c5e adding cookie for Assigned Assets 2025-05-28 16:39:37 -04:00
snipe
1b5525c51f Added status label to view blade, variable to controller method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 20:51:21 +01:00
snipe
6019c80c7b Added blade element
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 20:50:59 +01:00
Marcus Moore
aaa6cb24d4 Scaffold test 2025-05-28 11:28:23 -07:00
snipe
1ef5ad500a Merge pull request #17017 from grokability/localization/translations-2025-05-28
Updated translations
2025-05-28 18:34:15 +01:00
snipe
9468acedfa Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 18:20:02 +01:00
snipe
6a951b6357 Merge pull request #17012 from Robert-Azelis/patch-8
API Locations - added company_id for API request
2025-05-28 15:23:08 +01:00
snipe
95f7742259 Removed extra a href
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 15:21:23 +01:00
snipe
9f795306e5 Merge pull request #17014 from grokability/fix_breadcrumb_crash
Manually add API headers
2025-05-28 15:19:05 +01:00
snipe
6feaff1e7b Removed blade::render
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 15:12:14 +01:00
Robert-Azelis
9a168354ae Update AssetModelsController.php - added requestable for API request 2025-05-28 15:50:19 +02:00
Robert-Azelis
309d242c4d Update LocationsController.php - added company_id for API request 2025-05-28 15:45:22 +02:00
snipe
5c174f829e Merge pull request #16986 from grokability/api_throttle_headers
Fixed  #16961 - Manually add API headers
2025-05-28 13:47:16 +01:00
Marcus Moore
3c428f2d7b Inline two_factor_options macro 2025-05-27 16:40:08 -07:00
Marcus Moore
6833716576 Remove skin macro 2025-05-27 16:22:43 -07:00
Marcus Moore
bd374d031a Improve component name 2025-05-27 16:22:28 -07:00
Marcus Moore
ef26f48f60 Adapt for regular "skin" macro 2025-05-27 16:21:34 -07:00
Marcus Moore
b07f8525db Fix swapped yellow/yellow-dark 2025-05-27 16:13:05 -07:00
Marcus Moore
9f062701fa Add semi-colon 2025-05-27 16:03:22 -07:00
Marcus Moore
2c452daddf Replace user_skin macro with blade component 2025-05-27 16:00:47 -07:00
snipe
53a82d3f4d Merge pull request #17007 from marcusmoore/bug/sc-29278
Ensure boolean returned from method with boolean return type
2025-05-27 22:00:04 +02:00
Marcus Moore
b5b8816279 Avoid returning null from method that should return a boolean 2025-05-27 11:37:48 -07:00
snipe
7bc4127e8c Removed dupe header
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 15:01:54 +01:00
snipe
06158cc413 Add timestamp header
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:58:57 +01:00
snipe
cb49e7c9a6 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:32:47 +01:00
snipe
1822027a8f Extend the built-in ThrottleRequests middleware from Laravel
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:04:24 +01:00
snipe
c8dabc25e3 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:03:56 +01:00
snipe
f2b10eeee8 Re-do the initial change :(
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 13:00:32 +01:00
snipe
4b52e1471c Remove unused use statement after refactor
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 18:45:21 +01:00
snipe
f6bba03375 Fixed dupe semicolon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:50:19 +01:00
snipe
b3813a7121 Refactorered limiting headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:48:50 +01:00
snipe
eb2a1396ca Merge pull request #16999 from grokability/api_audt_fix
Better messaging when an asset fails validation on quick scan
2025-05-26 14:17:14 +02:00
snipe
0fae18c4ba Better handle missing asset payload because of RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:14:28 +01:00
Andras Kovacs
25ac83e944 Bumped container image versions 2025-05-26 13:07:51 +02:00
snipe
a82e65e190 Add @Tinyblargon as a contributor 2025-05-26 11:09:12 +01:00
snipe
187bb90de0 Merge pull request #16993 from Tinyblargon/fix-16992
fix: `PHP_UPLOAD_LIMIT` not set for PHP 8.3
2025-05-26 12:08:36 +02:00
snipe
293648582a Improvements to API headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 10:52:14 +01:00
Tinyblargon
51a306993c fix: PHP_UPLOAD_LIMIT not set for PHP 8.3 2025-05-25 16:23:17 +02:00
snipe
ec1851fa84 More small carbon fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 19:27:58 +01:00
snipe
bbe748dbd3 Removed noisy log
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 19:05:39 +01:00
snipe
406e8c5874 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 18:25:36 +01:00
snipe
a4f71a9f0a Manually add API headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 18:25:29 +01:00
snipe
3748498523 Merge pull request #16985 from grokability/move_faker_take_2
Moved faker out of dev reqs for seeding
2025-05-23 18:34:45 +02:00
snipe
49d11103f7 Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 17:28:40 +01:00
snipe
dce9060820 Moved faker out of dev reqs for seeding
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 17:28:00 +01:00
snipe
de6206ce78 Merge pull request #16982 from grokability/fixes#16958-expiring-assets-unarchived
Fixed #16958 - exclude archived assets from expiring assets report
2025-05-23 15:51:27 +02:00
snipe
a181ba308a Fixed #16958 - exclude archived assets from expiring assets report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 14:48:54 +01:00
snipe
5a9ac01cf8 Set audit warnings as int
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 14:30:56 +01:00
snipe
a5cd306b1d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 13:12:30 +01:00
snipe
57d3abab5f Merge pull request #16979 from marcusmoore/bug/sc-29178
Improved creator on accessory show page
2025-05-23 14:05:28 +02:00
snipe
b6eb3185d5 Merge pull request #16968 from marcusmoore/bug/sc-29233
Fixed potential slack webhook setting inconsistencies
2025-05-23 14:05:01 +02:00
snipe
286f78778c Merge pull request #16980 from uberbrady/add_new_checkin_checkout_counters_tests_rebased
New tests for checkin/checkout counters
2025-05-23 13:55:38 +02:00
Brady Wetherington
4b95790e2f WIP: new tests for checkin/checkout counters
note that the test isnt going to work

More WIP for checkout counters

Got all tests passing
2025-05-23 12:37:29 +01:00
snipe
97883971f7 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 10:43:32 +01:00
snipe
b3c12d4ee6 Wider text fields
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 10:42:24 +01:00
Marcus Moore
bea426d8e6 Add test 2025-05-22 16:54:52 -07:00
Marcus Moore
be60370eae Add test 2025-05-22 16:33:45 -07:00
Marcus Moore
7cc216eb38 Extract variable 2025-05-22 15:05:24 -07:00
Marcus Moore
8c90efe745 Add authorization check 2025-05-22 15:02:14 -07:00
snipe
4b9f4423f6 Merge pull request #16932 from marcusmoore/fixes/webhook-checkin-checkout-fix
Improve notifications
2025-05-22 10:53:43 +01:00
Marcus Moore
932b589bd9 Do not show section if user doesn't exist 2025-05-21 17:28:41 -07:00
Marcus Moore
ce18b91b03 Add translation 2025-05-21 16:49:15 -07:00
Marcus Moore
5f883310b5 Improve display of user on accessory show page 2025-05-21 16:48:26 -07:00
Marcus Moore
69cc46c2b8 Improve method name 2025-05-20 16:41:52 -07:00
Marcus Moore
dc6951f341 Improve method name 2025-05-20 16:28:49 -07:00
Marcus Moore
f7ed336f99 Remove typehint 2025-05-20 16:26:05 -07:00
Marcus Moore
47f287c031 Fix assertion 2025-05-20 16:25:22 -07:00
Marcus Moore
5739393f8d Check to make sure settings exist before attempting to update them 2025-05-20 12:45:23 -07:00
Godfrey M
b0067fee51 remove some N+1s, collect an array of missing serial errors 2025-05-20 12:31:34 -07:00
Marcus Moore
13956254ce Add migration to fix webhook settings 2025-05-20 12:27:19 -07:00
Marcus Moore
d6b69c8cc2 Fix webhook selected value in mount method 2025-05-20 12:00:58 -07:00
Marcus Moore
7a79fd18f0 Bind the selected webhook and avoid clearing from database 2025-05-20 11:40:44 -07:00
Godfrey M
732c3dae89 added require_serial to model factory 2025-05-20 09:53:51 -07:00
Godfrey M
d45bd67cae added corrections 2025-05-20 09:51:02 -07:00
snipe
e3ffe79c4c Merge pull request #16962 from Godmartinz/audit_notifications_fix
Added dynamic properties to audit notifications
2025-05-20 12:34:33 +02:00
Marcus Moore
043325b966 Merge branch 'develop' into fixes/webhook-checkin-checkout-fix
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2025-05-19 14:41:05 -07:00
Marcus Moore
a2696b799f Standardize test names 2025-05-19 14:33:18 -07:00
snipe
eb8ef37808 Merge pull request #16963 from Godmartinz/fix-double-scroll-bar-permission-groups
Removes double scrollbar from groups
2025-05-19 20:32:30 +02:00
Godfrey M
8416c6df05 removes double scrollbar 2025-05-19 11:21:52 -07:00
Godfrey M
3aa4814342 allow dynamic assignment to audit notifications 2025-05-19 11:08:03 -07:00
Godfrey M
9200de5032 made require_serial column nullable 2025-05-19 09:58:37 -07:00
snipe
186f322bb5 Merge pull request #16953 from uberbrady/fix_checkin_emails
Make checkin emails not send when not configured to be
2025-05-16 11:14:31 +02:00
Brady Wetherington
28e2e7c924 Get rid of more editorialization 2025-05-16 10:57:34 +02:00
Brady Wetherington
97351028b5 Get rid of editorializing in comments 2025-05-16 10:56:36 +02:00
Brady Wetherington
0ef0863b59 Make checkin emails not send unless the send-emails attribute is set on the category 2025-05-16 10:48:17 +02:00
Marcus Moore
2e80b4ace8 WIP 2025-05-15 17:50:07 -07:00
Marcus Moore
0d896c2ef6 Extract method 2025-05-15 17:44:27 -07:00
Marcus Moore
dc9df04237 WIP 2025-05-15 17:40:51 -07:00
Marcus Moore
b469a64db3 WIP 2025-05-15 17:35:28 -07:00
Marcus Moore
73f19ff4e7 Scaffold tests 2025-05-15 17:30:06 -07:00
Marcus Moore
22b4fac3ee Formatting 2025-05-15 17:24:56 -07:00
Marcus Moore
c97884c8b0 WIP 2025-05-15 16:59:10 -07:00
Marcus Moore
b972fb514a Remove type hint 2025-05-15 16:54:46 -07:00
Marcus Moore
a3871bd1f2 WIP 2025-05-15 16:47:29 -07:00
Marcus Moore
2069f99b2b WIP 2025-05-15 16:42:20 -07:00
Marcus Moore
882d55fd09 Improve tests 2025-05-15 16:31:07 -07:00
Marcus Moore
68ef975726 WIP 2025-05-15 16:22:31 -07:00
Marcus Moore
0685ff3818 WIP 2025-05-15 16:12:51 -07:00
Marcus Moore
b28839d907 Scaffold tests 2025-05-15 15:57:52 -07:00
Marcus Moore
7f0a947de4 WIP 2025-05-15 15:43:57 -07:00
Marcus Moore
c8fc4afe65 Fix method name 2025-05-15 15:31:18 -07:00
Marcus Moore
3b7162cb02 Improve test setup 2025-05-15 15:30:16 -07:00
Marcus Moore
4245456382 Scaffold more tests 2025-05-15 15:27:15 -07:00
Marcus Moore
cdf43e31e2 Remove randomness from factory 2025-05-15 15:14:01 -07:00
Marcus Moore
f19d6b3c52 Scaffold tests 2025-05-15 15:13:50 -07:00
snipe
ca66e29072 Merge pull request #16946 from marcusmoore/bug/sc-29166
Gracefully handle error when editing of soft deleted users
2025-05-15 22:46:48 +02:00
Marcus Moore
6ff76a12f8 Strengthen test scenario 2025-05-15 13:39:27 -07:00
Marcus Moore
8b13997597 Merge branch 'develop' into fixes/webhook-checkin-checkout-fix
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2025-05-15 13:38:20 -07:00
Marcus Moore
9600adee6b Don't allow viewing edit page if user soft deleted 2025-05-15 11:14:15 -07:00
snipe
6eb3819492 Apply correct unique custom field validation for audit API
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 18:31:49 +02:00
snipe
95226f87bc Use same logic for auditStore for validating unique fields
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 18:02:23 +02:00
snipe
ee3ae803b9 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:51:28 +02:00
snipe
057667c425 Removed duplicate unique display in table
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:10:47 +02:00
Marcus Moore
02fa7daa1d Require assigned_x to be integer on asset model 2025-05-14 14:13:07 -07:00
Marcus Moore
2a2acf6d1c Add failing test 2025-05-14 14:09:48 -07:00
Godfrey M
3fbbff5a47 revert unnecessary change to laels 2025-05-14 12:57:01 -07:00
Godfrey M
c22efc2c3d add to present and transformer and api 2025-05-14 12:55:41 -07:00
Marcus Moore
f644642fac Add comment 2025-05-14 12:48:32 -07:00
Marcus Moore
3374a9e5a9 Add assertion 2025-05-14 12:48:11 -07:00
Marcus Moore
d3a74a5740 Use route bound user instead of re-querying 2025-05-14 12:46:34 -07:00
Marcus Moore
c458cc904a Add failing test 2025-05-14 12:45:55 -07:00
Godfrey M
8c0281bf70 adds tests for requiring serial to asset model 2025-05-14 12:31:27 -07:00
snipe
5c7b74e17e Merge pull request #16943 from grokability/small-tweaks-to-status-label-text
Clearer text on status label types
2025-05-14 17:35:40 +02:00
snipe
e07b0f65a1 Clearer text on status label types
Signed-off-by: snipe <snipe@snipe.net>
2025-05-14 17:33:12 +02:00
snipe
b06fd5bbca Merge pull request #16942 from uberbrady/quick_temp_fix_notifications
A quick check to make sure that webhooks still fire when email is off
2025-05-14 16:21:37 +02:00
Brady Wetherington
6306f78fe0 A quick check to make sure that webhooks still fire when email is off 2025-05-14 16:14:03 +02:00
snipe
da4bce0c89 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-05-14 15:02:43 +02:00
snipe
053e815206 Add @JassonCordones as a contributor 2025-05-14 15:02:43 +02:00
snipe
ab1053ecda Merge pull request #16916 from marcusmoore/bug/sc-29153
Handle potential hard exception in Asset@getImageUrl method
2025-05-14 14:52:33 +02:00
snipe
9a61a3391b Merge pull request #16921 from marcusmoore/chore/locale-select
Replace locales macro
2025-05-14 14:52:02 +02:00
snipe
d3c19e28ec Merge pull request #16918 from marcusmoore/bug/sc-29151
Handle displaying deleted creator of an accessory
2025-05-14 13:36:08 +02:00
snipe
87115f2e50 Merge branch 'develop' into bug/sc-29151 2025-05-14 13:35:38 +02:00
Marcus Moore
5f7aadfba0 Ensure CC emails are always sent for assets 2025-05-13 17:56:35 -07:00
Marcus Moore
e954e066b4 Scaffold tests 2025-05-13 17:41:19 -07:00
Marcus Moore
e336182d79 Formatting 2025-05-13 14:45:09 -07:00
Marcus Moore
3eb0743446 Separate checking for sending email and webhook notifications 2025-05-13 14:43:16 -07:00
Marcus Moore
95c1c37ab1 Invert method 2025-05-13 14:25:03 -07:00
Marcus Moore
a7054f0b1e Improve method name 2025-05-13 14:20:42 -07:00
Marcus Moore
e4bfabfabe Add failing tests 2025-05-13 14:12:51 -07:00
Godfrey M
720a4bc4a2 add warning to update method for missing a serial 2025-05-13 12:54:28 -07:00
Godfrey M
7fd93645b3 valdiation fires for asset creation 2025-05-13 12:17:58 -07:00
snipe
6b56929a06 Null operator for missing created_by record
Signed-off-by: snipe <snipe@snipe.net>
2025-05-13 20:44:25 +02:00
Godfrey M
fcbfbca6d0 add checkbox to model edit and create 2025-05-13 11:10:46 -07:00
Godfrey M
f2bca9491c changed name of field in model fillable 2025-05-13 10:59:02 -07:00
Godfrey M
b48f309ab6 add require_serial to bulk asset model blades and lang 2025-05-13 10:58:05 -07:00
Marcus Moore
e3642bb513 Remove unneeded div 2025-05-12 17:07:17 -07:00
Marcus Moore
ca7c416e19 Remove the replaced locales form macro 2025-05-12 16:35:40 -07:00
snipe
ac6d964e28 Merge pull request #16920 from marcusmoore/fixes/remove-outline-from-label
Remove logo outline from L7162_B
2025-05-12 23:04:49 +01:00
Marcus Moore
e2772c816d Remove label logo outline from L7162_B label 2025-05-12 13:58:13 -07:00
Marcus Moore
916f7401f3 Handle creator being deleted 2025-05-12 12:30:32 -07:00
Marcus Moore
b53a71d523 Add failing test 2025-05-12 12:30:06 -07:00
Marcus Moore
510a2b0889 Formatting 2025-05-12 12:03:15 -07:00
Marcus Moore
73057454c6 Fix bug in getImageUrl method 2025-05-12 11:56:40 -07:00
Godfrey M
0b1be3e63b add migration, model and controller update 2025-05-12 11:44:34 -07:00
Marcus Moore
5a6cf2a296 Add test for existing functionality 2025-05-12 11:44:25 -07:00
snipe
9e3e04521e Merge pull request #16900 from marcusmoore/fixes/user-full-name-accessor
Handle settings not being available in full name accessor
2025-05-10 12:26:19 +01:00
snipe
65dfbd02fe Use develop branch
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 21:00:55 +01:00
snipe
649ab53320 Updated codacy link
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 21:00:18 +01:00
snipe
9250624f79 Merge pull request #16909 from grokability/fixes-#16554-category-delete
Fixed #16554 - Added models to deletable check
2025-05-09 19:23:35 +01:00
snipe
995e2090f5 Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 19:17:53 +01:00
snipe
9b91584776 Added models to deletable check
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 19:17:48 +01:00
snipe
8fd97ea501 Merge pull request #16908 from grokability/bug/sc-28724
Fixed #16535 - more info to side rail in accessories
2025-05-09 18:03:05 +01:00
snipe
a80b9ab362 Fixed #16535 - more info to side rail in accessories
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:48:02 +01:00
snipe
556e1081b3 Added two more selectors for byod
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:23:08 +01:00
snipe
b070916f0b Merge pull request #16907 from grokability/add_ids_to_menus
Fixed #16456 - added ids to sidenav options and bod
2025-05-09 17:22:19 +01:00
snipe
940caf14b0 Added ids to menu items
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:09:59 +01:00
snipe
76da1d6663 Added class to checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:04:19 +01:00
snipe
bafff9020a Merge pull request #16611 from Godmartinz/MS_teams_deprecation_update
Reworked MS Teams deprecation warnings and notifications visibility
2025-05-09 16:38:25 +01:00
snipe
0d5dca6456 Fixed #16690 - fallback to category image if no model image is present
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 14:46:27 +01:00
snipe
0f9b7119c0 Merge pull request #16905 from grokability/fixes_#16901
Fixed #16901 - use default currency for asset maintenance cost
2025-05-09 12:45:46 +01:00
snipe
d4181549e8 Fixes #16901 - use default currency for maintenance cost display
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 12:43:49 +01:00
Marcus Moore
d57f56e44f Handle settings not being available 2025-05-08 16:20:26 -07:00
Marcus Moore
f7777ca8a5 Replace Form::locales on user setup 2025-05-08 15:38:49 -07:00
Marcus Moore
fce5530bc7 Replace Form::locales on bulk edit users page 2025-05-08 15:31:41 -07:00
Marcus Moore
ad1530e9ff Replace Form::locales on user edit page 2025-05-08 15:17:15 -07:00
Marcus Moore
abb2dcbbe4 Replace Form::locales on localization page 2025-05-08 15:05:48 -07:00
Marcus Moore
437499c5df Fix input name 2025-05-08 15:04:45 -07:00
Marcus Moore
f739c2c84a Introduce locale select component and make replacement on profile page 2025-05-08 15:02:35 -07:00
snipe
7d9b87f059 Merge pull request #16898 from marcusmoore/chore/form-radio-replacement
Replaced Form::radio helpers
2025-05-08 20:50:29 +01:00
Marcus Moore
c157f4190e Replace Form::radio in location partial 2025-05-08 12:25:48 -07:00
Marcus Moore
9357eca1cd Replace Form::radio on asset checkin page 2025-05-08 12:16:55 -07:00
snipe
40c65a07a4 Merge pull request #16896 from grokability/removed_seat_number
Removed seat "name" from licenses seats API/UI response
2025-05-08 17:57:40 +01:00
snipe
13521bcf75 Removed seat “name” from license seats API/UI
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 17:37:27 +01:00
snipe
1c09dc139a Undo previous change
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:40:24 +01:00
snipe
d5f955b1e0 License seats are not numbered correctly [sc-29113]
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:25:49 +01:00
snipe
9e6e8f0931 Moved incomplete test marker
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:22:09 +01:00
snipe
c93ef30801 Ignore flaky test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:43:40 +01:00
snipe
3e0dec4856 Fixed #16893 - more specific upload failure text
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:38:38 +01:00
snipe
0b167f5f6f Grab location uploads from backup
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:22:26 +01:00
snipe
f6b21fdb82 Merge pull request #16895 from grokability/fixed_#16863_custom_fields_validation
Fixed #16863 - better handle custom fields validation when unique but not required
2025-05-08 15:09:04 +01:00
snipe
f151628808 Merge pull request #16894 from grokability/resolve-webserver-permissions
Fix webserver/user file permissions issue
2025-05-08 15:08:40 +01:00
snipe
e44aad0328 Fixed typeos 2025-05-08 15:08:14 +01:00
snipe
1881054c92 Fixed #16863 - better handle unique not required custom field redirects
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:00:43 +01:00
Jeremy Price
f7533c5e41 Fix webserver/user file permissions issue
Fixes https://github.com/grokability/snipe-it/issues/16777

We weren't adding the webserver user to the app-user's group, which was
a problem for the webserver trying to write to the log file if it had
been created by a user-owned process (like a cron) or the installation
script chown-ing everything... even though the log file was created 664

This would often present in mysterious ways. In the linked case, trying
to upload a cvs for import would fail with an unhelpful message, because
the actual error is swallowed in the generic error handler for the page.

I've filed an issue to hopefully help with that: https://github.com/grokability/snipe-it/issues/16893

Used this opportunity to condense some logic that was
identical between architectures,
2025-05-08 13:55:23 +02:00
snipe
f181e0fa55 Merge pull request #16877 from marcusmoore/bug/sc-29012
Allow updating asset model image via api
2025-05-08 06:27:49 +01:00
snipe
b04efdfefc Merge pull request #16889 from grokability/add_updated_range_to_custom_report
Added #16887 - last updated date range for custom report
2025-05-08 06:27:32 +01:00
snipe
352b935dee Merge pull request #16884 from marcusmoore/bug/sc-29097
Removed `2fa_authed` from session upon logout
2025-05-08 06:23:26 +01:00
snipe
0ba3b9975a Added #16887 - last updated date range for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 06:21:06 +01:00
Marcus Moore
cc06187f31 Remove 2fa_authed from session upon logout 2025-05-07 14:04:33 -07:00
snipe
a916767392 Show the QR code on the asset page regardless of label settings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:34:21 +01:00
snipe
1c57bfaa39 Small cosmetic change to offset
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:28:01 +01:00
snipe
4a5adeb661 Fixed #16866 - use singular translation for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:55:28 +01:00
snipe
01f9772291 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:37:10 +01:00
snipe
960b3aebed Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:24:07 +01:00
Marcus Moore
d75de73867 Allow updating asset model image via api 2025-05-06 17:13:23 -07:00
snipe
e75df97902 Merge pull request #16876 from grokability/switch-back-to-multiarch-docker-with-emulation
Move back to multiarch builds with emulation (for now)
2025-05-06 21:39:23 +01:00
Jeremy Price
5be14ec750 Move back to multiarch builds with emulation (for now)
Turns out it's not straightforward to have multiarchitecture images
within the same namespace, if you want to run each architecture's build
on native runners.

While we work on getting that going, we're moving back to
build-everything-on-intel-runners-with-emulation-for-arm

it means slowwwww arm builds, but it also means we should get our images
straightened out
2025-05-06 22:27:53 +02:00
snipe
717a82f46a Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 21:27:02 +01:00
snipe
e40038900b Merge pull request #16875 from ubc-cpsc/bugfix/CVE-2025-46734
Fixes CVE-2025-46734: league/commonmark contains a XSS vulnerability in Attributes extension
2025-05-06 19:19:09 +01:00
Joël Pittet
099eabc240 Fixes CVE-2025-46734 2025-05-06 11:01:45 -07:00
snipe
3a4fa35398 Merge pull request #16874 from grokability/clone_breadcrumb_fix
Fixed breadcrumbs for cloning
2025-05-06 16:42:52 +01:00
snipe
500d6a0cc2 Merge pull request #16873 from grokability/redirect_on_audit
Redirect options on audit
2025-05-06 16:39:29 +01:00
snipe
38e5bf71bc Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:36:09 +01:00
Chris Olin
248a05a916 adds support for continuous 53mm and 0.59in printers 2025-05-06 11:26:52 -04:00
Chris Olin
2c141579dd adds support for GenericTape label printers, includes class for 53mm tape printer 2025-05-06 11:26:40 -04:00
snipe
45ff195f11 Fixed breadcrumbs for cloning
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:17:02 +01:00
snipe
ce543c8179 Use consistent icon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:15 +01:00
snipe
5c11a8c1e0 Modified helper
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:06 +01:00
snipe
f013a4c5ea Merge pull request #16871 from grokability/one-more-docker-fix
One more docker repo name fix
2025-05-06 15:16:48 +01:00
Jeremy Price
194a22452e stop building intel image in arm server 2025-05-06 16:10:44 +02:00
Jeremy Price
930a6a2ac8 One more docker repo name fix
i feel like i'm taking crazy pills

also right-naming the arm builds again
2025-05-06 16:06:13 +02:00
snipe
444dea8b42 Merge pull request #16868 from grokability/fix-dockerhub-references
OMG fix 2 more (only 1 active) dockerhub repo references
2025-05-06 10:15:28 +01:00
Jeremy Price
6cc3f69c2a OMG fix 2 more (only 1 active) dockerhub repo references 2025-05-06 07:54:20 +02:00
snipe
36f3834ca5 Merge pull request #16865 from ntaylor-86/fixes/alerts-enabled-new-install
Fixed #16815: Avoids potential error when settings table is empty
2025-05-06 00:59:52 +01:00
Nathan Taylor
d4b73b4fb9 Avoids potential error when alerts table is empty
Updates the Kernel to use the null-safe operator
when accessing the alerts_enabled setting. This prevents
a potential error if the settings object is null.
2025-05-06 09:47:33 +10:00
snipe
b37f488117 Merge pull request #16864 from marcusmoore/update-contributors
Added missing contributors
2025-05-05 22:18:11 +01:00
snipe
ee0a9e834a Fixed BulkDeleteAssetsTest test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 22:12:08 +01:00
snipe
c776e0e7e9 Merge pull request #16851 from grokability/fix-dockerhub-repo
Fix dockerhub repo we're pushing to, and arm build names
2025-05-05 22:03:58 +01:00
Jeremy Price
54d3193b6f run arm builds on arm 2025-05-05 22:55:38 +02:00
Marcus Moore
326657c709 contributors:generate 2025-05-05 13:30:49 -07:00
Marcus Moore
c72e86ea2e Update casing for contributor 2025-05-05 13:29:05 -07:00
Marcus Moore
34b1ca29d3 Remove duplicate contributor (QveenSi) 2025-05-05 13:28:25 -07:00
Marcus Moore
1dc876a436 docs: add @austinsasko as a contributor 2025-05-05 13:19:37 -07:00
Marcus Moore
b28bc2c500 docs: add @drexljo as a contributor 2025-05-05 13:18:53 -07:00
Marcus Moore
c38d98b00a docs: add @jfwiebe as a contributor 2025-05-05 13:18:29 -07:00
Marcus Moore
7b83df088b docs: add @JemCdo as a contributor 2025-05-05 13:18:29 -07:00
Marcus Moore
c8b1240665 docs: add @jjasghar as a contributor 2025-05-05 13:18:28 -07:00
Marcus Moore
8a9d6bbdca docs: add @pottom as a contributor 2025-05-05 13:18:27 -07:00
Marcus Moore
6859b36e7c docs: add @dasjoe as a contributor 2025-05-05 13:18:26 -07:00
Marcus Moore
f0073c1528 docs: add @gl-pup as a contributor 2025-05-05 13:18:26 -07:00
Marcus Moore
f6b7e621b7 docs: add @gastamper as a contributor 2025-05-05 13:18:25 -07:00
Marcus Moore
108a0179ca docs: add @LeafedFox as a contributor 2025-05-05 13:18:24 -07:00
Marcus Moore
2baf65aa62 docs: add @m4us1ne as a contributor 2025-05-05 13:18:24 -07:00
Marcus Moore
74c4e9665e docs: add @lopezio as a contributor 2025-05-05 13:18:23 -07:00
Marcus Moore
ae9c22f327 docs: add @loganswartz as a contributor 2025-05-05 13:18:22 -07:00
Marcus Moore
37bca6febd docs: add @sniff122 as a contributor 2025-05-05 13:18:22 -07:00
Marcus Moore
30196793bd docs: add @KorvinSzanto as a contributor 2025-05-05 13:18:21 -07:00
Marcus Moore
3060282ffb docs: add @juhotaipale as a contributor 2025-05-05 13:18:20 -07:00
Marcus Moore
d63bba8db7 docs: add @juanfont as a contributor 2025-05-05 13:18:20 -07:00
Marcus Moore
2c12ee01a0 docs: add @CalvinSchwartz as a contributor 2025-05-05 13:18:19 -07:00
Marcus Moore
aa76424a74 docs: add @byronwolfman as a contributor 2025-05-05 13:18:18 -07:00
Marcus Moore
9188d6229e docs: add @benperiton as a contributor 2025-05-05 13:18:18 -07:00
Marcus Moore
5555f32ffe docs: add @arukompas as a contributor 2025-05-05 13:18:17 -07:00
Marcus Moore
59062980ff docs: add @hex128 as a contributor 2025-05-05 13:18:16 -07:00
Marcus Moore
f4aac5f0b7 docs: add @disc as a contributor 2025-05-05 13:18:16 -07:00
Marcus Moore
5c167aa2a9 docs: add @AlexanderWPapyrus as a contributor 2025-05-05 13:18:15 -07:00
Marcus Moore
8e1eed498e docs: add @MelonSmasher as a contributor 2025-05-05 13:18:14 -07:00
Marcus Moore
e449f39ea6 docs: add @fabiang as a contributor 2025-05-05 13:16:43 -07:00
Marcus Moore
97171e0e1c docs: add @Jarli01 as a contributor 2025-05-05 13:16:42 -07:00
Marcus Moore
5935ca4664 docs: add @dkmansion as a contributor 2025-05-05 13:16:42 -07:00
Marcus Moore
21c88cd311 docs: add @splashx as a contributor 2025-05-05 13:16:41 -07:00
Marcus Moore
5c786d8b70 docs: add @corydlamb as a contributor 2025-05-05 13:09:28 -07:00
Marcus Moore
d718d210ed docs: add @bricelabelle as a contributor 2025-05-05 13:09:27 -07:00
Marcus Moore
f50c5d22b8 docs: add @bmkalle as a contributor 2025-05-05 13:09:27 -07:00
Marcus Moore
c36f9a432e docs: add @terwey as a contributor 2025-05-05 13:09:26 -07:00
Marcus Moore
65b6b02b1d docs: add @xWyatt as a contributor 2025-05-05 12:54:08 -07:00
Marcus Moore
9c65d7c057 docs: add @Wouter0100 as a contributor 2025-05-05 12:54:08 -07:00
Marcus Moore
eab07834cf docs: add @valentyntu as a contributor 2025-05-05 12:54:07 -07:00
Marcus Moore
eb38f33baf docs: add @viclou as a contributor 2025-05-05 12:54:06 -07:00
Marcus Moore
462f9f2f39 docs: add @yannikp as a contributor 2025-05-05 12:54:05 -07:00
Marcus Moore
1021ccb230 docs: add @timwsuqld as a contributor 2025-05-05 12:54:05 -07:00
Marcus Moore
84e9a3a7d6 docs: add @p3nj as a contributor 2025-05-05 12:54:04 -07:00
Marcus Moore
c0060b3625 docs: add @sreyemnayr as a contributor 2025-05-05 12:54:03 -07:00
Marcus Moore
197aa12c61 docs: add @octobunny as a contributor 2025-05-05 12:54:02 -07:00
Marcus Moore
dfb2959751 docs: add @nixn as a contributor 2025-05-05 12:54:01 -07:00
Marcus Moore
95fb4f0e45 docs: add @rcmcdonald91 as a contributor 2025-05-05 12:54:00 -07:00
Marcus Moore
b2c729b7b8 docs: add @owalerys as a contributor 2025-05-05 12:53:59 -07:00
Marcus Moore
fe9b224a44 docs: add @nunomaduro as a contributor 2025-05-05 12:53:59 -07:00
Marcus Moore
fc4e8c68f2 docs: add @Scorcher as a contributor 2025-05-05 12:53:58 -07:00
Marcus Moore
6fb1c03908 docs: add @nticaric as a contributor 2025-05-05 12:53:57 -07:00
Marcus Moore
96ccfdb8cc docs: add @firefrei as a contributor 2025-05-05 12:53:57 -07:00
Marcus Moore
75fd07e057 docs: add @mzack5020 as a contributor 2025-05-05 12:53:56 -07:00
Marcus Moore
87fe69ecfb docs: add @Mateus-Romera as a contributor 2025-05-05 12:53:55 -07:00
Marcus Moore
19b47030ca docs: add @Nevets82 as a contributor 2025-05-05 12:53:54 -07:00
Marcus Moore
cf4e3fcc37 docs: add @snazy2000 as a contributor 2025-05-05 12:53:54 -07:00
Marcus Moore
bef4133f51 docs: add @smcpeck as a contributor 2025-05-05 12:53:53 -07:00
Marcus Moore
7ac24efced docs: add @cendai-mis as a contributor 2025-05-05 12:53:52 -07:00
Marcus Moore
d8d4a7075e docs: add @Shankschn as a contributor 2025-05-05 12:53:51 -07:00
Marcus Moore
dd4c9df6d1 docs: add @serkanerip as a contributor 2025-05-05 12:53:50 -07:00
Marcus Moore
da28c02b50 docs: add @SBrown2021 as a contributor 2025-05-05 12:53:50 -07:00
Marcus Moore
54858402e3 docs: add @McG800 as a contributor 2025-05-05 12:53:49 -07:00
Marcus Moore
b39d8cc0b9 docs: add @rosscdh as a contributor 2025-05-05 12:53:48 -07:00
Marcus Moore
4c7c33800a docs: add @rickheil as a contributor 2025-05-05 12:53:47 -07:00
Marcus Moore
d2c604a7ce docs: add @Nothing4You as a contributor 2025-05-05 12:53:47 -07:00
Marcus Moore
91243fb6c0 docs: add @mbrrg as a contributor 2025-05-05 12:53:46 -07:00
Marcus Moore
940a85888a docs: add @deloz as a contributor 2025-05-05 12:53:45 -07:00
Marcus Moore
280c12e22b docs: add @Galaxy102 as a contributor 2025-05-05 12:53:44 -07:00
Marcus Moore
39e644d048 docs: add @manu-crealytics as a contributor 2025-05-05 12:53:44 -07:00
Marcus Moore
9acb3e5935 docs: add @marcquark as a contributor 2025-05-05 12:53:43 -07:00
Marcus Moore
8ac5b5df61 docs: add @brandon-bailey as a contributor 2025-05-05 12:53:42 -07:00
Marcus Moore
434932599c docs: add @thinkl33t as a contributor 2025-05-05 12:53:42 -07:00
Marcus Moore
81b8c445c6 docs: add @vicleos as a contributor 2025-05-05 12:53:41 -07:00
Marcus Moore
002bb72a8d docs: add @herroworrd as a contributor 2025-05-05 12:53:40 -07:00
Marcus Moore
288770900e docs: add @robintemme as a contributor 2025-05-05 12:53:39 -07:00
Marcus Moore
f6f6a23f8b docs: add @wewhite as a contributor 2025-05-05 12:53:39 -07:00
Marcus Moore
522fa7be44 docs: add @Serdnad as a contributor 2025-05-05 12:53:38 -07:00
Marcus Moore
272d9e0552 docs: add @mink-adao-duy as a contributor 2025-05-05 12:53:37 -07:00
Marcus Moore
9060a3cc13 docs: add @ahpaleus as a contributor 2025-05-05 12:53:36 -07:00
Marcus Moore
b6a9c0e68b docs: add @DanielRuf as a contributor 2025-05-05 12:53:36 -07:00
Marcus Moore
b43ae5be13 docs: add @dkaatz as a contributor 2025-05-05 12:53:35 -07:00
Marcus Moore
6384041107 docs: add @seanborg-codethink as a contributor 2025-05-05 12:53:34 -07:00
Marcus Moore
89703cd9df docs: add @sorvani as a contributor 2025-05-05 12:53:33 -07:00
Marcus Moore
f6aa9f1318 docs: add @fe80 as a contributor 2025-05-05 12:53:33 -07:00
Marcus Moore
838e214b24 docs: add @phil-flip as a contributor 2025-05-05 12:53:32 -07:00
Marcus Moore
628c444cd4 docs: add @aranar-pro as a contributor 2025-05-05 12:53:31 -07:00
Marcus Moore
e8289b0f45 docs: add @JonathonReinhart as a contributor 2025-05-05 12:53:31 -07:00
Marcus Moore
86816f632f docs: add @test1337ahp as a contributor 2025-05-05 12:53:30 -07:00
Marcus Moore
494710306b docs: add @NebelKreis as a contributor 2025-05-05 12:53:29 -07:00
Marcus Moore
7a5fe4981f docs: add @mnemonicly as a contributor 2025-05-05 12:53:29 -07:00
snipe
a67b320cae Merge pull request #15907 from uberbrady/protect_assigned_to_assigned_type_rebased
Rebased version of #15629 - prevent setting assigned_to without setting assigned_type
2025-05-05 20:42:46 +01:00
Godfrey M
e3a2397b74 removed hiding the notifications icon 2025-05-05 10:28:08 -07:00
Godfrey M
3b34654dd7 Merge branch 'develop' into MS_teams_deprecation_update
# Conflicts:
#	resources/lang/en-US/admin/settings/message.php
2025-05-05 09:33:32 -07:00
Godfrey M
4b6437854c swapped out hard coded text with translation 2025-05-05 09:31:23 -07:00
snipe
9ef20997a5 Merge pull request #16861 from uberbrady/cherry_pick_avery_3490
adds support for Avery 3490 (Cherry-picked from 'master')
2025-05-05 15:01:00 +01:00
Calvin Schwartz
cfd10ae294 adds support for Avery 3490 2025-05-05 14:59:10 +01:00
snipe
9b85e9a071 Add @realchrisolin as a contributor 2025-05-05 14:44:04 +01:00
snipe
407962d998 Merge pull request #16790 from Godmartinz/empty_field_columns_labels
Adds Label fields offset as an option
2025-05-05 14:09:40 +01:00
snipe
1245289906 Add @chfsx as a contributor 2025-05-05 14:08:31 +01:00
snipe
76c19202ed Merge pull request #16806 from chfsx/patch-1
[FIX] set upload-limit
2025-05-05 14:07:42 +01:00
snipe
ada8195e2e Merge pull request #16860 from grokability/better_location_scope_check
Livewire component for smoother check for location companies
2025-05-05 14:04:23 +01:00
snipe
83d6e9ad8a Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 14:00:05 +01:00
snipe
4469db0bd3 Livewire component for smoother check for location companies
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 13:55:28 +01:00
snipe
5e2dba5483 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 11:15:46 +01:00
Fabian Schmid
9de97694c3 [FIX] set upload-limit 2025-05-05 08:35:45 +02:00
Jeremy Price
8349065b0a stop buiulding intel on arm 2025-05-02 10:59:42 +02:00
Jeremy Price
bb82b2513e Fix dockerhub repo we're pushing to, and arm build names 2025-05-02 10:58:25 +02:00
snipe
e781c170f3 Merge pull request #16841 from Godmartinz/dark_mode_black_input_group_add_on_color_fix
remove duplicate input-group color corrections from theme skins
2025-05-01 01:48:49 +01:00
Godfrey M
43dfbd3d21 remove duplicate input-group color correction from other themes 2025-04-30 16:21:15 -07:00
Godfrey M
073c9f5f7c remove duplicate input-group color correction 2025-04-30 16:16:14 -07:00
snipe
f9d67dd431 Merge pull request #16840 from uberbrady/docker_backmerge
Copy changes from 'master' to develop for docker builds
2025-04-30 21:19:22 +01:00
Brady Wetherington
a2ea4c7fd0 Copy changes from 'master' to develop for docker builds 2025-04-30 21:12:10 +01:00
Godfrey M
8c129c10af removed payload from api error message 2025-04-30 11:11:53 -07:00
snipe
a0358e32d7 Removed escaping
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 16:46:06 +01:00
snipe
c2023c5c56 Ampersand showing in Custom fields [sc-29051]
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 16:25:44 +01:00
snipe
43c310c82d Merge pull request #16531 from akemidx/bug/sc-28715
FIXED: Purchase Cost Column Always Shown
2025-04-30 15:54:31 +01:00
snipe
939a0c44dc Merge pull request #16826 from Godmartinz/fix_multiple_inline_label_field_options
Reworked fix for for 24mm_D label indent errror
2025-04-30 15:47:57 +01:00
snipe
2b9cf1663b Merge pull request #16837 from grokability/fmcs_scoping_improvements
Small improvements to scoped views
2025-04-30 15:33:53 +01:00
snipe
0a29e90701 Smal improvements to scoping displays
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 15:24:42 +01:00
snipe
d1be13e7d4 Added button text to translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:32:29 +01:00
snipe
049a777ca8 Added buttons to dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:32:20 +01:00
snipe
0dcaa83a3e Nicer breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:22:13 +01:00
snipe
db706269e6 Fixed validation message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:22:06 +01:00
snipe
4f72505dc3 Merge pull request #16836 from grokability/fixes/#16834_handle_bad_data_in_permissions
Fixed #16834 - better handle bad data in permissions
2025-04-30 13:56:59 +01:00
snipe
340f8b73a5 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 13:56:37 +01:00
snipe
6c6b37000a Better handle permissions with bad data
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 13:43:05 +01:00
snipe
b5c79624c6 Display notes in group listing
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 11:14:42 +01:00
snipe
49d66dedf4 Nicer existing image display
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:19:12 +01:00
snipe
ebbcdbc864 Nicer breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:55 +01:00
snipe
a18691c09f Set image path in singleton
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:48 +01:00
snipe
245b0b0f8f Added image path
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:40 +01:00
snipe
1d3b0478f9 Merge pull request #16829 from marcusmoore/fixes/contributors-fix
Fixed updating CONTRIBUTORS.md via cli
2025-04-30 01:23:59 +01:00
Marcus Moore
a5d0307532 Wrap username in quotes 2025-04-29 16:20:00 -07:00
snipe
7daecdd53f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 23:17:03 +01:00
snipe
667b4a49c3 Merge pull request #16828 from grokability/chore/sc-29037
Add audit button to BS table partial, redirect if asset won't validate
2025-04-29 23:07:45 +01:00
snipe
2518e60a5e Corrected gates
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:59:05 +01:00
snipe
9ff8b62cee Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:58:58 +01:00
snipe
5086c80658 Invoke a validator, redirect to edit screen if invalid
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:34 +01:00
snipe
cb852fc20f Added audit gate to API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:12 +01:00
snipe
fb3b34e0f6 Add audit button to BS table partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:02 +01:00
snipe
8d4fc07f63 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:37:47 +01:00
snipe
a0514ad8c1 Merge pull request #16799 from marcusmoore/bug/sc-28990
Handle category being null in CheckoutableListener
2025-04-29 20:37:11 +01:00
snipe
4e03e525a4 Merge pull request #16797 from Godmartinz/dark_mode_green_fix
Fixed Dark Mode color choices for fieldset links
2025-04-29 20:35:59 +01:00
snipe
0efdebcfd8 Merge pull request #16827 from grokability/fixed_custom_field_fieldset_display
Fixed fieldset display if custom fields are not available
2025-04-29 20:26:14 +01:00
snipe
c7835d2d1d Fixed copypasta
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:08:34 +01:00
snipe
3e3bc0a347 Removed test tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:01:22 +01:00
snipe
184a22828f Use input vs get
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:22:10 +01:00
snipe
f26e27d23e Display in checkboxes not saving on custom [sc-29028]
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:21:50 +01:00
snipe
e717f1e780 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:21:18 +01:00
snipe
d1085a0f46 Move notes above custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 18:53:31 +01:00
Godfrey M
2e0913bb3b remove unused method 2025-04-29 10:49:19 -07:00
Godfrey M
851ae46ea9 reworked fix for for 24mm_D label indent errior 2025-04-29 10:45:29 -07:00
snipe
89a52b7551 Fixed fieldset display if custom fields are not available
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 18:09:32 +01:00
snipe
15870d0e75 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:38:07 +01:00
snipe
eb2c536221 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:36:55 +01:00
snipe
bced7df539 Merge pull request #16822 from grokability/nicer_optional_disclosures
Nicer disclosure UI for optional data
2025-04-29 12:31:14 +01:00
snipe
fe672ed727 Nicer disclosure UI for optional data
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:10:09 +01:00
snipe
6e60594e66 Fixed escaped text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:25:20 +01:00
snipe
f357dd690b Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:21:24 +01:00
snipe
255e0c3bdc Merge pull request #16602 from akemidx/bug/sc-25897-2
FIXED: Text Overflow on Settings Tiles
2025-04-29 10:20:45 +01:00
snipe
8984d60c39 Merge pull request #16798 from grokability/more-mint-support-and-newer-ubuntus
Support more Mint versions and verify newer Ubuntu versions in snipeit.sh
2025-04-29 10:19:28 +01:00
snipe
6dbfc8875b Merge pull request #16817 from marcusmoore/fixes/restore-custom-field-values-on-asset-edit-v2
Maintain checkbox and radio custom field values on asset edit page
2025-04-29 10:17:10 +01:00
snipe
139f45872c Merge pull request #16819 from marcusmoore/chore/migrate-radio-helpers
Replaced calls to Form::radio helper on user create and edit pages
2025-04-29 10:16:16 +01:00
snipe
eb223a4c09 Merge pull request #16821 from grokability/small_settings_ui_fixes
Use default BS tables “no results” view, small UI formatting improvements
2025-04-29 10:15:16 +01:00
snipe
c3531e9eba Nicer formatting on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:11:00 +01:00
Marcus Moore
db3f8e5d68 Replace a Form::radio on user edit page 2025-04-28 15:08:05 -07:00
Marcus Moore
8ca11542f8 Replace a Form::radio on user edit page 2025-04-28 15:03:54 -07:00
Marcus Moore
36be23f7e4 Replace a Form::radio on user edit page 2025-04-28 14:57:03 -07:00
Marcus Moore
51f67082f4 Replace a Form::radio on user edit page 2025-04-28 14:23:39 -07:00
Marcus Moore
ea2f0cdd7b Replace a Form::radio on user edit page 2025-04-28 14:18:01 -07:00
Marcus Moore
97d2e6f9d4 Replace a Form::radio on user edit page 2025-04-28 14:03:27 -07:00
Marcus Moore
28ea75512c Replace from Form::radio on user edit page 2025-04-28 13:47:23 -07:00
snipe
9b6683ae16 Merge pull request #16818 from Godmartinz/fix_multiple_inline_label_field_options
Fixed label fields multiple option alignment bug
2025-04-28 21:37:19 +01:00
Godfrey M
149d276e06 fix field alignment issue 2025-04-28 13:26:49 -07:00
snipe
a519ebe19b Default BS table no results
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:52 +01:00
snipe
66b537bc64 Fixed duplicate ID
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:28 +01:00
snipe
9722d29070 Use default BS tables “no results” view
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:17 +01:00
snipe
c748278637 Merge pull request #16810 from grokability/settings_improvements_branding
Use fieldsets for branding page
2025-04-26 17:53:11 +01:00
snipe
23c39520e5 Added empty alt tags to images since we don’t have additional info
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:42:49 +01:00
snipe
41f68d8a30 Use locked x-icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:18 +01:00
snipe
7320e823ad Added alt text for sad panda
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:09 +01:00
snipe
1aeda546fd Added urls for pa11y
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:00 +01:00
snipe
91fcff5faf Added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:32:52 +01:00
snipe
d97e54f85e Use fieldsets for branding page
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:32:41 +01:00
snipe
4b58af8850 Fixed message while processing audit on quickscan
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 14:25:42 +01:00
snipe
0822aa985d Fixed #16802 - use asset endpoint for assets assigned to locations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 14:05:44 +01:00
snipe
e5c6e294ec Added #16239 - make city searchabke in users
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 12:16:41 +01:00
Marcus Moore
25fdde1807 Handle null category 2025-04-23 14:16:28 -07:00
snipe
fa45ca1453 Stupid fix for when people use id instead of an actual ID
@todo - use RMB for these

Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:56:43 +01:00
Jeremy Price
67ec042ee3 Support more Mint versions and verify newer Ubuntu versions in snipeit.sh
In https://github.com/grokability/snipe-it/pull/16763 we added support
for Linux Mint 22.1, which is the newest stable version of Mint, but but
didn't get around to testing or adding support for less-recent versions.

With this PR, we're adding support for the following LinuxMint versions
* 22
* 21.3
* 21.2
* 21.1
* 21

We recommend using the newest version, but at least now you won't be
blocked so long as you're remotely up-to-date.

We're not going back any further because prior versions are based on
Ubuntu 20.04 (Focal), which is out of support as of April 2025, aka this
month.

Additionally, the most recent Ubuntu version specifically mentioned in
the script is 23.10. The script in its current version works all the way
up to the most recent version, so we're adding notation to that
effect.

Newly included Ubuntu versions are
25.04
24.10
24.04 (LTS)
2025-04-23 13:37:33 -07:00
snipe
8b6c88a7c6 Okay…
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:27:28 +01:00
snipe
9f8fddb4c5 Removed accidentally commited generated images
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:23:58 +01:00
snipe
8fcf7e3b9d Merge pull request #16792 from grokability/add_pa11y
Added pa11y
2025-04-23 21:17:35 +01:00
snipe
d9326fc555 Removed sky-is-blue text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:13:40 +01:00
snipe
c1196599e1 Merge branch 'develop' into add_pa11y 2025-04-23 21:11:59 +01:00
Godfrey M
a26279e0b9 adds custom field link color correction to all dark modes 2025-04-23 12:38:58 -07:00
Marcus Moore
29433882ea Restore custom field checkbox and radio button values when switching model 2025-04-23 12:38:09 -07:00
Godfrey M
63ce2a14fe fix the ghosts pt2 2025-04-23 10:17:11 -07:00
Godfrey M
f435ebb110 fix the ghosts 2025-04-23 10:15:26 -07:00
Godfrey M
843f001bf6 rename test class 2025-04-23 09:33:56 -07:00
snipe
e3f511ec7c Small accessibility improvements
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 15:53:41 +01:00
snipe
f0b18042f9 Added aria label to admin settings search
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 14:01:52 +01:00
snipe
75c9936dbb Added alt text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 12:37:13 +01:00
snipe
ddd4065c81 Merge pull request #16793 from spencerrlongg/bug/sc-28972
Added Nullsafe Checks to Users
2025-04-23 12:01:25 +01:00
snipe
ad88a72d0a Override legend style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:31:25 +01:00
snipe
6a00620552 More urls
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:27:20 +01:00
snipe
a9db8d6898 Added more urls
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:20:23 +01:00
snipe
65cc1bbd7e Ignore screenshots
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:53:11 +01:00
spencerrlongg
2935697209 added nullsafe checks to user 2025-04-22 23:39:24 -05:00
snipe
3ae2454228 This doesn’t work the way I thought
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:35:49 +01:00
snipe
11b48ee636 Removed dupes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:21:32 +01:00
snipe
2aa864afaa Updated rules
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:16:22 +01:00
snipe
ec65e64a67 Updated ignore rules
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:06:34 +01:00
snipe
7e01d23aa2 Renamed file
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:50:14 +01:00
snipe
f05b2ad9be First stabs at improvements
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:48:47 +01:00
snipe
eaaac76435 Added configs
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:48:39 +01:00
snipe
41160c64a8 Merge pull request #16791 from grokability/location_company_scoping_improvements
Improved settings page for location-company scoping
2025-04-23 01:25:54 +01:00
snipe
0cfef59568 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 01:22:25 +01:00
snipe
d953d1a889 Use translation strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 01:21:54 +01:00
snipe
4aa06f6a75 Update dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 00:30:06 +01:00
snipe
07a9bded95 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:28 +01:00
snipe
f686e86afb Refactored setting page
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:21 +01:00
snipe
9f28dae01b Invoke the artisan command
This *might* suck for people with a lot of assets, etc

Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:11 +01:00
snipe
67ab584dc7 Updated text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:49:31 +01:00
Godfrey M
5da492cbf5 set max to 5 2025-04-22 12:07:02 -07:00
Godfrey M
d871c529d1 fix input max, and help block position 2025-04-22 11:59:19 -07:00
Godfrey M
7c2c5ea98d adds Field offset option to labels 2025-04-22 10:50:20 -07:00
snipe
2e31a0530f Merge pull request #16789 from grokability/fixes/#16475_delete_oauth_clients
Fixed #16475 - Allow deleting oauth client
2025-04-22 17:48:24 +01:00
snipe
5f66fb0bba Allow deleting oauth user
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 17:42:07 +01:00
snipe
143e9cdd61 Merge pull request #16788 from grokability/better_handle_arrays_for_model_ids
Better handle model_id arrays passed to the API
2025-04-22 16:33:47 +01:00
snipe
aed32e6ada Better handle arrays in API rerquests for model_id
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 16:23:34 +01:00
snipe
ed86c90b7e Merge pull request #16787 from uberbrady/suppress_action_date_error_in_loggable
Fixed: [RB-19645] Suppress error message about 'action_date' not existing
2025-04-22 14:48:38 +01:00
snipe
7dc606fd3b Merge pull request #16786 from grokability/populate_manufacturers
Added ability to seed common manufacturers
2025-04-22 14:35:20 +01:00
snipe
185fd559c9 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:34:03 +01:00
snipe
473c684fa5 Nicer translation
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:22:58 +01:00
Brady Wetherington
d3dbd82ce2 Check that array key exists before accessing it 2025-04-22 14:20:01 +01:00
snipe
e5dc13e48c Added ability to seed manufacturers
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:13:46 +01:00
snipe
2a2d118973 Updated readme with star count
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 12:38:05 +01:00
snipe
f2f17402c9 Merge pull request #16785 from grokability/feature/sc-28956
Added checkout date to license seats
2025-04-22 11:41:52 +01:00
snipe
39f764803d Added checkout date to license seats
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 11:38:54 +01:00
snipe
55176816aa Merge pull request #16784 from marcusmoore/fix-flaky-timestamp-tests
Fixed flaky test
2025-04-22 11:03:58 +01:00
Marcus Moore
1f7d4e0793 Fix flaky test 2025-04-21 15:14:53 -07:00
snipe
e17fae02ad Merge pull request #16783 from uberbrady/upgrade_debugbar
Upgrade Debugbar to make deprecation warnings easier to find
2025-04-21 21:44:28 +01:00
Brady Wetherington
3c1099a6a9 Upgrade Debugbar to make deprecation warnings easier to find 2025-04-21 21:00:02 +01:00
Godfrey M
0d28165c04 merged develop, fix conflicts 2025-04-21 10:54:01 -07:00
Godfrey M
ee31bfbcd4 Merge branch 'develop' into checkin_non_reassignable_license
# Conflicts:
#	app/Helpers/Helper.php
#	app/Http/Controllers/Api/LicenseSeatsController.php
#	app/Http/Transformers/LicensesTransformer.php
2025-04-21 10:49:35 -07:00
snipe
b1761ec246 Merge pull request #16781 from uberbrady/make_min_qty_not_required
min_amt wasn't correctly being set to required or not
2025-04-21 18:44:20 +01:00
Brady Wetherington
03f0f13727 min_amt wasn't correctly being set to required or not 2025-04-21 18:32:53 +01:00
snipe
12648912aa Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 16:45:10 +01:00
snipe
4c898a8741 Fixed filename
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 16:44:47 +01:00
snipe
6bef8620e4 Merge pull request #16780 from grokability/feature/sc-23604
Fixed #9249 - added file uploads to locations
2025-04-21 14:49:02 +01:00
snipe
beb5560dce Added files tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:43:04 +01:00
snipe
2ebe1ebc69 Load location route files
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:58 +01:00
snipe
00092a079f Added uploads method
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:10 +01:00
snipe
9d313eb2d9 Added locations dir
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:02 +01:00
snipe
e8404c8720 Moved location routes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:41:52 +01:00
snipe
e71e25955a Check for array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 12:20:03 +01:00
snipe
fa9ac3c449 Return value as int
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 11:53:26 +01:00
snipe
70854b2c42 Small fix or groups API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 11:49:49 +01:00
snipe
e2a1be9762 Int values for group permissions on API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 10:49:28 +01:00
snipe
f2c2fefd99 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:28:48 +01:00
snipe
b5a960e933 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:27:41 +01:00
snipe
66b2cc2e28 Set empty array if permissions are null
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:17:55 +01:00
snipe
47246a3fdf Merge pull request #15420 from grokability/return_boolean_in_api
Possible fix for #15315 - decode as permissions as boolean
2025-04-19 15:01:36 +01:00
snipe
4d01b2bb4f Removed invalid json_decode() flag
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:57:43 +01:00
snipe
876715b3c5 Merge pull request #16435 from marcusmoore/fixes/prevent-deleting-accessories-with-checkouts
Disallow deleting accessories that have active checkouts
2025-04-19 14:38:14 +01:00
snipe
93d74587e1 Merge pull request #16538 from marcusmoore/bug/sc-28305
Return null from accessory transformer for missing assignment
2025-04-19 14:37:45 +01:00
snipe
5bae74bc1b Merge pull request #16688 from 36864/patch-1
Fixes #14734: Only show signatures for the printed user
2025-04-19 14:36:26 +01:00
snipe
0259c91a06 Added @mrdahbi as a contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:34:15 +01:00
snipe
04ccfc3002 Fixed: escape '/' in preg_quote of asset tag prefix (Applied #16542 to develop)
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:32:21 +01:00
snipe
495b7db72b Merge branch 'chore/sc-28495' into develop
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:29:30 +01:00
snipe
6e5eb55b45 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:28:01 +01:00
snipe
9ad99c1d81 Merge pull request #16494 from marcusmoore/bug/sc-28675
Avoid logging consumable checkins and purge action log of bad entries
2025-04-19 14:24:52 +01:00
snipe
622626bb27 Merge pull request #16521 from grokability/add-disable-saml-command
Add console command to disable SAML logins
2025-04-19 14:23:49 +01:00
snipe
f66575393a Merge pull request #16766 from CloCkWeRX/fix-placeholder-translations
Fixed: Admin > General Settings - Some placeholders not translatable
2025-04-18 16:40:53 +01:00
snipe
f67548cd70 Merge pull request #16738 from CloCkWeRX/patch-9
Fixed: Update SECURITY.md to indicate v8 is supported
2025-04-18 16:33:18 +01:00
snipe
cd63657a92 Merge pull request #16694 from r-xyz/api-files-notes
Fixed #16689: re-add `note` field in API files listing for AssetModel
2025-04-18 14:06:30 +01:00
snipe
54f2b62294 Fixed consumable item_no import field
Signed-off-by: snipe <snipe@snipe.net>
2025-04-18 00:55:56 +01:00
snipe
1a1120220c Merge pull request #16765 from grokability/#15035-add-company_name_to_slack
Fixed #15035 - adds company to slack message
2025-04-18 00:36:25 +01:00
Daniel O'Connor
82d93b6980 Point to existing translation 2025-04-17 23:32:11 +00:00
Daniel O'Connor
72b2b2d819 Refactor to translatable placeholder text 2025-04-17 23:30:08 +00:00
snipe
ad6352adc4 Fixed #15035 - adds company to slack message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-18 00:28:37 +01:00
snipe
4170397094 Merge pull request #16731 from CloCkWeRX/patch-4
Fixed: Editing > Email input > Utilise HTML5 controls
2025-04-17 23:16:23 +01:00
snipe
1e15aca809 Merge pull request #16733 from CloCkWeRX/patch-6
Fixed: Suppliers > Edit > Mark URL inputs as HTML5 URL inputs
2025-04-17 23:15:53 +01:00
snipe
8234c3eb0f Merge pull request #16734 from CloCkWeRX/patch-7
Fixed: Users > Edit > Mark website as a URL field
2025-04-17 23:14:59 +01:00
snipe
80eea7b064 Merge pull request #16757 from CloCkWeRX/fields
Fixed: Admin > Custom Fields > Ensure name field is marked required
2025-04-17 23:14:26 +01:00
snipe
779c28661e Merge pull request #16753 from CloCkWeRX/admin-slack-hook
Fixed: Admin > Webhooks > Swap to url input
2025-04-17 23:13:58 +01:00
snipe
516f59f0fc Added @BeatSpark as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 23:12:51 +01:00
snipe
bfb55da1a3 Repeat #16571 without conflicts, correctly targeted
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 23:10:20 +01:00
snipe
79e2e5c272 Merge pull request #16729 from CloCkWeRX/patch-2
Fixed #16727: Bulk Audit > Mark Asset Tag input required
2025-04-17 23:06:26 +01:00
snipe
db1af98992 Merge pull request #16764 from grokability/fixed_flaky_user_create_tests
Fixed flaky user creation tests
2025-04-17 22:46:42 +01:00
snipe
c8ea3ba79a Merge pull request #16763 from grokability/add-linux-mint
Fixed: #16715 - Added LinuxMint support to snipeit.sh
2025-04-17 22:40:33 +01:00
snipe
96d5e072fe Fixed flaky tests on user creation
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 22:39:04 +01:00
snipe
d25ba74123 Merge pull request #16762 from grokability/fixes/#15702-min_amt_and_termination_date_on_license_import
Fixed #15702 - Added termination_date, reordered fields for clarity
2025-04-17 21:37:27 +01:00
snipe
f05dce8960 Added min_amt explicitly
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 21:31:20 +01:00
snipe
0758e73c5f Added termination_date, reordered fields for clarity
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 21:29:27 +01:00
Jeremy Price
617ee026c0 Add LinuxMint support to snipeit.sh
Fixes: https://github.com/grokability/snipe-it/issues/16715

@synergy34 requested LinuxMint support in our installer script. Mint is
Ubuntu-based, so i figured this wouldn't be too big of an issue, and
indeed it wasn't.

It mostly involved just supporting the OS version strings, and removing
the ondrej ppa because 22.1 ships with php8.3 already.

We only support 22.1 for the moment, as that's the most recent version
and the only one I tested on.

If you're on 22/Wilma and want to try, change the 221 on line 579 to 22 and
give it a whirl... If 22/Wilma also has php8.3, then it will probably be
fine
2025-04-17 12:22:42 -07:00
Daniel O'Connor
0cec64c056 Update SECURITY.md to indicate v8 is support
Unsure if v7 still is
2025-04-17 16:02:31 +00:00
snipe
915c730dae Fixed #16714 - moved custom validation out of array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:42:25 +01:00
snipe
0451f1219a Merge pull request #16732 from CloCkWeRX/patch-5
Fixed: Manufacturers > Edit > Mark URL inputs as HTML5 url inputs
2025-04-17 16:27:03 +01:00
Daniel O'Connor
5290a95b6b Update resources/views/hardware/quickscan.blade.php 2025-04-18 00:53:37 +09:30
snipe
e407695ff9 Merge pull request #16741 from CloCkWeRX/patch-10
Fixed: Change Password > Mark password fields required for change password
2025-04-17 16:22:01 +01:00
snipe
c5b53b00c1 Merge pull request #16742 from CloCkWeRX/security-url
Fixed: Admin > Security - Mark url fields as URL type
2025-04-17 16:21:26 +01:00
snipe
d2ac9b9610 Added @CloCkWeRX as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:18:29 +01:00
snipe
537e695ae9 Merge pull request #16730 from CloCkWeRX/patch-3
Fixed: Depreciations > Create/Edit > Change controls to various number inputs
2025-04-17 16:15:24 +01:00
snipe
b4b158da9e Merge pull request #16747 from CloCkWeRX/admin-oauth-required
Fixed: Admin > OAuth > Mark fields required
2025-04-17 16:09:42 +01:00
snipe
ad072c0546 Moved validation email_array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:04:56 +01:00
snipe
713e1671d4 Merge pull request #16749 from CloCkWeRX/admin-ldap-change-password-url
Fixed: Admin > LDAP > Use HTML5 inputs
2025-04-17 15:58:45 +01:00
snipe
087f9756a2 Merge pull request #16744 from CloCkWeRX/api-token-required
Fixed: Manage API Keys > New name field not marked required
2025-04-17 15:58:07 +01:00
snipe
eb0408703e Merge pull request #16725 from CloCkWeRX/patch-1
Fixed #16723: Mark category name as required in modals
2025-04-17 15:47:07 +01:00
Daniel O'Connor
7e961b690a Mark required 2025-04-17 11:05:03 +00:00
snipe
81f3730d84 Merge pull request #16754 from grokability/fixes/ambiguous_clause_for_company_id
Fixed ambiguous clause using company_id
2025-04-17 11:58:15 +01:00
snipe
141fad8393 Fixed ambiguous clause using company_id
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 11:56:39 +01:00
Daniel O'Connor
58ff63845e Admin > Slack > Swap to url input 2025-04-17 10:47:37 +00:00
Daniel O'Connor
a8150b7864 Update resources/views/settings/ldap.blade.php 2025-04-17 19:57:52 +09:30
Daniel O'Connor
ce6724f788 Admin > LDAP > Swap to URL input 2025-04-17 10:25:23 +00:00
Daniel O'Connor
13faa8ab00 Admin > LDAP > Swap to URL input 2025-04-17 10:23:43 +00:00
Daniel O'Connor
89beb73836 Swap to URL input 2025-04-17 19:49:28 +09:30
Daniel O'Connor
8b7e36a697 Mark fields required 2025-04-17 10:17:32 +00:00
Daniel O'Connor
c0f3d89b0b Fixed: Manage API Keys > New name field not marked required 2025-04-17 10:00:26 +00:00
Daniel O'Connor
ec62a59e57 Update resources/views/depreciations/edit.blade.php 2025-04-17 19:20:44 +09:30
Daniel O'Connor
f9269cfc63 Mark required 2025-04-17 19:19:19 +09:30
Daniel O'Connor
56bc06746c Set max limit 2025-04-17 19:18:31 +09:30
Daniel O'Connor
497e94d8a0 Admin > Security - Mark url fields as URL type 2025-04-17 09:42:45 +00:00
Daniel O'Connor
aa77c8c528 Mark password fields required for change password 2025-04-17 09:40:27 +00:00
Daniel O'Connor
6cd2a5d1a5 Users > Edit > Mark website as a URL field 2025-04-17 09:35:35 +00:00
Daniel O'Connor
e4a3a1a35f Suppliers > Edit > Mark URL inputs as HTML5 URL inputs 2025-04-17 09:34:45 +00:00
Daniel O'Connor
06f3cc1345 Manufacturers > Edit > Opt into HTML fields 2025-04-17 09:33:24 +00:00
Daniel O'Connor
3a6832ea58 Editing > Email input > Utilise HTML5 controls
Should be safe as this is validated by the UI as a singular email.
2025-04-17 09:32:02 +00:00
Daniel O'Connor
d2bb7fc926 Deprecations > Create/Edit > Mark number of months as a numeric control 2025-04-17 09:30:56 +00:00
Daniel O'Connor
4b93f329c2 Bulk Audit > Mark Asset Tag input required
Fix https://github.com/grokability/snipe-it/issues/16727
2025-04-17 09:29:43 +00:00
Daniel O'Connor
f03da92152 Mark category name as required in modals
Fix #16723
2025-04-17 09:27:04 +00:00
snipe
88acdbcc28 Move array return
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 01:00:09 +01:00
snipe
23623cca2c Merge pull request #16719 from grokability/fixes_weird_layout_datepicker
Use x-icon blade component, nicer small-screen form size for datepicker on assets checkout
2025-04-16 21:13:21 +01:00
snipe
93e66aae54 Nicer form sizing on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 21:05:56 +01:00
snipe
02b831c174 Use x-icon blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 21:05:43 +01:00
snipe
cd20486fe2 Merge pull request #16667 from Godmartinz/user-redirect-checkin-option
Adds option to redirect back to checkedInBy user for assets/licenses/accessories
2025-04-16 20:54:47 +01:00
snipe
1464f80425 Merge pull request #16717 from Godmartinz/fix_checkin_mail_test
Adds a check for category email alert boolean, bolster Check in Test
2025-04-16 18:10:29 +01:00
Godfrey M
8f673a7e3e default checkin_email to true in category factory 2025-04-16 10:05:37 -07:00
Godfrey M
c44d037933 removed some words 2025-04-16 09:57:40 -07:00
Godfrey M
c8b5b3f176 adds a check for category checkin/out emails, also updates our test 2025-04-16 09:51:44 -07:00
snipe
ce94470a10 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:25 +01:00
snipe
e7592eeeb9 Use disable admin CC
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:14 +01:00
snipe
46253b421e Added disableAdminCC to settings test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:04 +01:00
snipe
7d4e77a7c8 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 15:52:05 +01:00
snipe
9a4f21e0cb Merge pull request #16716 from grokability/log_deprecations
Allow toggle for logging deprecation warnings
2025-04-16 14:28:07 +01:00
snipe
934aa3da7f Allow toggle for logging deprecation warnings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 14:25:51 +01:00
snipe
e4244d60f1 Check for username
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 09:47:06 +01:00
snipe
0b6c6bf1df Send email to CC addresses even if the target doesn’t have an email
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 09:18:50 +01:00
snipe
b35181c289 Removed deleted accessories (for now) from transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 21:15:43 +01:00
snipe
277564436b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:45:13 +01:00
snipe
87a03ec1ed Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:41:43 +01:00
snipe
f8833241ef Added @36864 as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:28:36 +01:00
snipe
7f62c5cbb6 Add @fvollmer as a contributor 2025-04-15 20:22:23 +01:00
snipe
93b4749993 Update @ntaylor-86 as a contributor 2025-04-15 20:20:36 +01:00
snipe
b2dac291da Merge pull request #16712 from grokability/fixes/snipe-api-token
Removed deprecation resulting in `Creation of dynamic property` error
2025-04-15 20:16:56 +01:00
Jermops
bec83d4343 Merge pull request #16713 from grokability/fix-docker-arm-buildname
Fix name of ARM docker container workflow
2025-04-15 12:16:40 -07:00
snipe
4f3b3721c4 Remove comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:15:44 +01:00
Jeremy Price
e5cf296b79 Fix name of ARM docker container workflow 2025-04-15 12:15:44 -07:00
snipe
e1abdd1c7b Removed deprecation resulting in Creation of dynamic property
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:11:26 +01:00
snipe
71d8f1eb89 Merge pull request #16701 from grokability/repo-move
Update references to the repo to reflect move to Grokability org
2025-04-15 19:54:08 +01:00
snipe
68c1568345 Merge pull request #16711 from snipe/publish_assets
Updated dev CSS/LESS/JS assets
2025-04-15 19:40:48 +01:00
snipe
b5be0844ec Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 19:39:58 +01:00
snipe
f76e80ba68 Merge pull request #16710 from snipe/localizations/2025-04-15
Updated localization strings
2025-04-15 19:32:12 +01:00
snipe
ffbab554be Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 19:30:19 +01:00
snipe
0be50e803e Merge pull request #16709 from snipe/#16699-fix-email-locales-when-none-set-on-user
Fixed #16699 - Better handle user locales in mailables
2025-04-15 16:44:38 +01:00
snipe
7133a1b262 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:41:09 +01:00
snipe
5876418eed Search on email partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:31:03 +01:00
snipe
950472b935 Fixed typos
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:30:54 +01:00
snipe
c0c5699e38 Added public property name
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:21:02 +01:00
snipe
49fee3a211 Removed manually setting locale on mailable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:10:54 +01:00
snipe
a21ca92c90 Added boot method to set name property for mailable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:08:21 +01:00
snipe
260174dfd9 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:46:12 +01:00
snipe
afc5e08716 Added email as searchable field in select list
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:45:25 +01:00
snipe
89616727a1 Remove english as default
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:45:11 +01:00
snipe
ba55dfb841 Fixed #16699 - added mutator for user locale
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 13:41:24 +01:00
snipe
65b956143c Merge pull request #16700 from snipe/docker-arm-size-fix
[Docker] Don't cache composer deps, remove any .git repos that creep in
2025-04-14 22:15:10 +01:00
snipe
42e1987147 Merge pull request #16702 from snipe/separate-docker-architecture-builds
Separate docker builds into Intel/ARM builds
2025-04-14 22:14:48 +01:00
Jeremy Price
545e07455b Separate docker builds into Intel/ARM builds
Now that we're moving to a paid org, we have native ARM github action
runners available, which means we can streamline our ARM-based docker
image builds by not having them run emulated.

I've switched our worker split from ubuntu/alpine to Intel/ARM...  if we
hate this we can make it 4 separate workflows, but i don't see an issue
with this one.
2025-04-14 12:55:36 -07:00
Jeremy Price
b00594052c [Docker] Don't cache composer deps, remove any .git repos that creep in
There is a failure mode in composer where if it has a connection trying to get
a dependency tarball from the github API, it will fall-back to
downloading the entire repo for the dependency and use that... and it
will cache it outside of vendor/, using a whopping 1.5G of space

that full 1.5G is _then_ copied into vendor/

```
98M     league
100M	tecnickcom
133M	laravel
323M	sebastian
681M	aws
```

for a total of a 1.8G vendor/ directory

vs the trimmed-down version with a 552M vendor/ directory

```
53M	league
30M	tecnickcom
31M	laravel
70M	sebastian
241M	aws
```

This is still a far cry from the proper 150M version when everything
works as it should, but it's still a vast improvement

```
3.2M    league
14M     laravel
30M     tecnickcom
260K	sebastian
52M     aws
```

Ideally this never happens, but it'd be great tp avoid the bloat if/when
it does..

To wit: Our ARM/Ubuntu Docker images are currently bloated because of this
issue due builds happening on an emulated ARM environment, and the resultant
performance penalties causing composer issues

All that to say, this change sets OMPOSER_CACHE_DIR to /dev/null to
avoid the caching, and then removes vendor/*/*/.git to remove that
needless bloat if it occurs. It's a no-op in general practice.
2025-04-14 11:55:20 -07:00
snipe
1c387795fe Merge pull request #16683 from marcusmoore/bug/sc-28755
Create default label when importing assets if none exists
2025-04-14 09:52:48 +01:00
snipe
102f26cac1 Merge pull request #16676 from marcusmoore/fixes/acceptance-logging
Store accepted_at and declined_at in action log when accepting/declining assets
2025-04-14 09:18:54 +01:00
snipe
c7e89ff879 Merge pull request #16682 from akemidx/bug/sc-28860
FIXED: Location Being Overwritten By Default Location
2025-04-14 09:17:52 +01:00
r-xyz
565b8f5c7f Fixed #16689: re-add note field in API files listing for AssetModel 2025-04-13 00:33:22 +02:00
36864
3b314086f9 New method to get latest signature event
This makes the print page much tidier.
2025-04-11 16:28:54 +00:00
36864
06fc140626 Optimize eager loading of log entries 2025-04-11 16:27:29 +00:00
36864
e4bfc6c5ae Fix signatures for accessories and consumables
Also unifies the way these things are fetched.
2025-04-11 16:24:06 +00:00
Marcus Moore
b82d835f4f Remove created_by since it is not available 2025-04-10 13:59:28 -07:00
Marcus Moore
d593365c9c Create pending default status label if none exists 2025-04-10 13:38:30 -07:00
Marcus Moore
ea6a903d8a Implement tests including test failure 2025-04-10 13:29:05 -07:00
Marcus Moore
9086e5dba7 Scaffold some asset importer tests 2025-04-10 13:03:50 -07:00
akemidx
cd10cd34f4 location update bug fix and test 2025-04-10 14:46:52 -04:00
snipe
0d6a83197a Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-04-09 21:29:31 +01:00
snipe
6d784e36d7 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 21:29:27 +01:00
snipe
9c88aa6974 Merge pull request #16637 from akemidx/lastnameemail
Fixed #8188 - Added Last Name as an email format
2025-04-09 21:27:10 +01:00
akemidx
1307146831 changing where translations live. coalescing 2025-04-09 16:21:48 -04:00
Godfrey M
c385b4a082 remove testing lines 2025-04-09 12:11:46 -07:00
Godfrey M
1b961346f0 added withInput to the redirects 2025-04-09 12:11:31 -07:00
Godfrey M
100db23210 add checks that the target is not null, and redirects back with error messages 2025-04-09 11:54:59 -07:00
Marcus Moore
e5d7bcb629 Use declinded at for action date in log 2025-04-09 11:20:46 -07:00
Marcus Moore
c2123e307a Add failing test 2025-04-09 11:20:07 -07:00
Marcus Moore
7a9d5bfc07 Add test for declining assets 2025-04-09 11:18:52 -07:00
Marcus Moore
aed798800c Improve assertions 2025-04-09 11:17:57 -07:00
Marcus Moore
dbfa952a69 Improve test name 2025-04-09 11:15:25 -07:00
Marcus Moore
aa58f08b3d Use accepted at for action date in log 2025-04-09 11:13:46 -07:00
Godfrey M
3e980a4c57 set location if target is set 2025-04-09 11:11:59 -07:00
Marcus Moore
d76871760c Add failing test 2025-04-09 11:11:30 -07:00
Marcus Moore
d29f5fa13e Implement tests 2025-04-09 11:07:47 -07:00
Marcus Moore
7275299165 Scaffold some tests 2025-04-09 11:02:56 -07:00
Godfrey M
9a3ac41370 add default location as a fallback to asset validation 2025-04-09 11:02:45 -07:00
Godfrey M
9824f43780 added other target options to accessories and assets 2025-04-09 10:50:42 -07:00
snipe
1b7486c342 Merge pull request #16674 from spencerrlongg/bug/allow-avif-restore-and-logo
Add Support for Uploading AVIF Logo Images
2025-04-09 17:46:53 +01:00
spencerrlongg
cd9ee8af90 Add support for AVIF logo uploads and restoring avifs from public uploads
Extended the list of allowed file extensions and MIME types to include AVIF format in both backend file validation and the file input field for logo uploads. This update ensures compatibility with modern image formats.
2025-04-09 11:36:16 -05:00
snipe
cbf4fef45b Merge pull request #16671 from snipe/fixed_list_view_of_asset_files
Partial fix for #16135 - normalized asset file listing at API endpoint
2025-04-09 06:45:32 +01:00
snipe
8892a11e7e Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:40:14 +01:00
snipe
fc390dd107 Merge pull request #16672 from snipe/added_missing_gate_to_some_location_methods
Added gates to printing locations
2025-04-09 06:28:38 +01:00
snipe
99dfb51d70 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:23:40 +01:00
snipe
04f8ebb4d8 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:17:08 +01:00
snipe
41fb058adb Added gates around printing location assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:06:44 +01:00
snipe
f29146b319 Fixed asset file listing display at API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:53:24 +01:00
snipe
ce0bd68716 RMB for file routes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:59 +01:00
snipe
f3f26b3824 Added UploadedFilesTransformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:48 +01:00
snipe
7be3d6072f Removed erroneous comment
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:35 +01:00
snipe
1d030b59df Merge pull request #16592 from fvollmer/anonymous-ldap
Improve Settings: Remove username and password requirement for ldap
2025-04-09 05:19:09 +01:00
snipe
07d2d8c549 Merge pull request #16669 from snipe/translations_for_skins
Fixed  #16130 - Added translations for skins, other settings
2025-04-09 02:37:17 +01:00
snipe
691ccbbebc Additional branding placeholders
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 02:32:22 +01:00
snipe
9daa09277d Added translations for skins
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 02:23:18 +01:00
snipe
79eaf62c9e Merge pull request #16668 from spencerrlongg/bug/sc-28768
Handle Potentially Unsafe File Output Better During Restore
2025-04-09 01:01:59 +01:00
spencerrlongg
dd078785ac always show unsafe files 2025-04-08 18:06:18 -05:00
spencerrlongg
12a8c54331 Handle and log skipped unsafe files during restore
Introduced a mechanism to track and log potentially unsafe files skipped during the restore process. These files are collected in an array and displayed as warnings before exiting, improving transparency and debugging capability.
2025-04-08 16:43:36 -05:00
Godfrey M
715fc2de59 more cleaning 2025-04-08 11:58:23 -07:00
Godfrey M
af53559ca3 cleaned up code 2025-04-08 11:54:50 -07:00
Godfrey M
17b8ea9c86 removed unnecessary code 2025-04-08 11:51:29 -07:00
Godfrey M
1ad96e891b added option logic to licenses 2025-04-08 11:50:45 -07:00
Jeremy Price
4e2b4195b4 Grokability-ize .well-known/security.txt 2025-04-08 11:50:03 -07:00
Godfrey M
b7492928ad reworked checkedInBy, added option logic to accessories 2025-04-08 11:43:02 -07:00
snipe
9f04254963 Merge pull request #16666 from snipe/print_view_tweaks
Added signature to licenses in print view, misc other fixes
2025-04-08 19:34:02 +01:00
snipe
10b8055b29 Added monospace class
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:10:16 +01:00
snipe
2b85ddeb74 Use correct date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:10:06 +01:00
snipe
9017ae8545 Added category to consumable checkout
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:09:58 +01:00
snipe
d0359a42fb Added signature to licenses
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 18:56:34 +01:00
akemidx
7701c6097f adding username split 2025-04-08 13:21:32 -04:00
akemidx
275e1beda2 updating for conflicts and adding test 2025-04-08 13:15:28 -04:00
Godfrey M
85b67dbb71 adds redirect to user option from checkin blades 2025-04-08 10:13:27 -07:00
akemidx
f659b7631d Merge branch 'develop' into lastnameemail 2025-04-08 13:10:26 -04:00
Godfrey M
a602b2fd47 adds option to redirect back to checkedInBy user for assets 2025-04-08 10:09:43 -07:00
snipe
e0c6483b43 Merge pull request #16660 from snipe/cleanup_for_scoped_locations
Small improvements to location-by-company scoping
2025-04-08 17:57:50 +01:00
snipe
c2e12f69d8 Merge pull request #16664 from 36864/patch-1
Fixes #16661: Empty signatures in print page
2025-04-08 17:57:11 +01:00
snipe
890702f66d A few more display tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 17:47:39 +01:00
36864
dfdbc95b5c Fix empty signatures in print page
Fixes snipe#16661 

Assuming that whatever happens between the user accepting and signing for the asset and the print page being accessed isn't another user somehow signing for the same asset and it not being assigned to that second user.
2025-04-08 15:50:59 +00:00
snipe
ea365e5645 More fields visible
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 16:17:57 +01:00
snipe
548ae49c69 Small tweaks to table
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:30:07 +01:00
snipe
34f8f50a4a Use localization, turned display into table
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:13:57 +01:00
snipe
da2c760227 Renamed variables, skipped breaking out of loop
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:13:19 +01:00
snipe
a96abeac5f Use localization w/trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:58 +01:00
snipe
420278c63b Nicer layout for settings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:36 +01:00
snipe
e0a04fe1ce Localized message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:19 +01:00
snipe
c42f53e846 Use table layout
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 12:34:11 +01:00
snipe
44ee287cc0 Nicer formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 12:34:00 +01:00
fvollmer
a56f6148fc Improve Settings: Remove username and password requirement for ldap
Since 9d62793 anonymous LDAP login is available. Remove username and password requirement in settings dialog.
2025-04-08 11:04:37 +02:00
snipe
5b1d6dbe14 Merge pull request #12577 from Toreg87/feature/locations_with_companies
Added #2353: Add ability to tie locations to companies - 2023 edition
2025-04-08 09:54:37 +01:00
snipe
43c15ef134 Merge branch 'develop' into feature/locations_with_companies 2025-04-08 09:18:48 +01:00
snipe
a7203b0bbf Updated links, added mobile apps
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 08:32:15 +01:00
snipe
a14d3ad856 Merge pull request #16493 from snipe/min_qty_in_bulk_model_edit
Add min_qty to asset model bulk edit
2025-04-08 08:22:03 +01:00
snipe
fcd0ca3b94 Merge branch 'develop' into min_qty_in_bulk_model_edit 2025-04-08 07:14:15 +01:00
snipe
90329a2b2f Merge pull request #16529 from Godmartinz/location_tab_active-n-scroll_bar_fix
Fix active table tab and double scroll bar under locations
2025-04-08 07:12:33 +01:00
snipe
7448f67e12 Merge pull request #16658 from snipe/fix_bad_data_on_permission_groups
Set empty array if group permission is a string or null
2025-04-08 07:10:02 +01:00
snipe
22be89fbea Set empty array if group permission is a string or null
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 07:06:56 +01:00
snipe
fe65ffc384 Merge pull request #16527 from Godmartinz/license_seat_notes_fix
add notes as fillable to license seat model
2025-04-08 06:49:26 +01:00
snipe
d44553c6dd Merge pull request #16553 from marcusmoore/tests/user-show
Added tests around emailing and printing assigned assets
2025-04-08 06:48:39 +01:00
snipe
cfd845aefa Merge pull request #16500 from marcusmoore/bug/sc-28644-command
Added command to fix bulk checkin action log entries
2025-04-08 06:44:25 +01:00
snipe
a98b277fa9 Merge pull request #16560 from spencerrlongg/bug/meta_status_multi_comp
Meta Status Fix for Multi Company
2025-04-08 06:43:57 +01:00
snipe
237975577d Merge pull request #16636 from marcusmoore/tests/delete-asset-tests
Added tests around deleting assets
2025-04-08 06:32:40 +01:00
snipe
2275186222 Merge pull request #16652 from akemidx/feature/sc-28820
Username dropdown to show Usernames and not Emails as Examples
2025-04-08 06:32:19 +01:00
snipe
5a1c81954f Merge pull request #16651 from Godmartinz/qr_code_location_option
Fixes #9660 - Adds location qr code option to labels
2025-04-08 05:53:48 +01:00
snipe
68e7d172a4 Merge pull request #16655 from snipe/adds_more_searchable_relations_to_activity
Fixed #13274 - Adds more searchable relations to activity report
2025-04-08 05:53:18 +01:00
snipe
b2e0f48ed9 Added purchase date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:50:03 +01:00
snipe
733ef9e23b Few more
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:44:49 +01:00
snipe
83562cfa83 Added additional searchable relations to activity report
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:23:39 +01:00
snipe
de426c2d2c Merge pull request #16653 from snipe/add_audit_custom_fields
Fixed #13475 - Add custom fields to audit screen
2025-04-08 05:16:23 +01:00
snipe
05e66c33ee Added audits string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:09:08 +01:00
snipe
744e844291 Added audit tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:58 +01:00
snipe
31c9ffa32b Added audits method
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:42 +01:00
snipe
c46a9a773d Fixed admin string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:08 +01:00
snipe
849da2fb63 Use correct audit icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:15:59 +01:00
snipe
b51939ae76 Derp. Use correct model info
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:07:31 +01:00
snipe
e95d7076b9 Added action_date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:07:04 +01:00
snipe
d2c7385197 Updated class for error text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:06:54 +01:00
snipe
5beb0bf534 Added assertion for success in test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:39:17 +01:00
snipe
c59e9770b7 Removed unusued property
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:39:05 +01:00
snipe
908bb35792 Use upload file request
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:38:35 +01:00
snipe
c4d0afb8d4 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:24:33 +01:00
snipe
4b21f0d00b Removed stray character
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:03:45 +01:00
snipe
4aeba2a96b Try to fix tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:37 +01:00
snipe
74f8cb5298 Updated url in bootstrap partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:28 +01:00
snipe
62e863a0fa Removed tooltip code
This throws an error currently

Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:10 +01:00
snipe
5bbba56b0e Added orginal values for logging
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:39 +01:00
snipe
e4180c2194 Removed duplicated code
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:29 +01:00
snipe
f4e3e6ceb6 Added display_audit to custom fields transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:08 +01:00
snipe
f37ed3e055 Add display_audit to custom fields controller
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:00:51 +01:00
snipe
9bb349d34b Try to get the asset from the route if there is RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:00:37 +01:00
snipe
362f14a01d Manually invoke a validator
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 01:59:33 +01:00
snipe
226ad52f07 Better UI route
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 01:59:08 +01:00
akemidx
443a5c2348 chaning username dropdown to be usernames and not emails 2025-04-07 19:25:32 -04:00
snipe
ce460c9ab0 Updated route
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:15:09 +01:00
snipe
c344c40310 Added auditAssets() to user factory
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:36 +01:00
snipe
95fef9682f Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:18 +01:00
snipe
241777c1fd Added translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:12 +01:00
snipe
acdbf452e2 Added checkbox to custom field form
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:01 +01:00
snipe
b8a9db2faf Added display_audit to custom fields list
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:51 +01:00
snipe
dfdc24936d Added custom fields partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:29 +01:00
snipe
6a1bb06c13 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:14 +01:00
snipe
cfa8ddffc0 Keep legacy URL for audit
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:08:05 +01:00
snipe
5b524399d9 Use RMB for asset audit API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:07:51 +01:00
Godfrey M
bc3b3cf86e add psuedo example location_id for preview 2025-04-07 12:53:17 -07:00
Godfrey M
a69133e2ae adds location qr code option to labels 2025-04-07 12:36:05 -07:00
snipe
b66618ff3f Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 13:54:10 +01:00
snipe
b5ef856d9e Translate request cancel string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 17:24:06 +01:00
snipe
a302cc145a Merge pull request #16643 from snipe/small_requestable_improvements
Text tweaks and nicer buttons for requestable items
2025-04-05 16:07:57 +01:00
snipe
d203c4e49c Text tweaks and nicer buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 15:58:03 +01:00
snipe
b5c7e60408 Merge pull request #16642 from snipe/fixed_#16640-FIFO-for-requestable
Fixed #16640 - FIFO for requestable assets
2025-04-05 15:39:29 +01:00
snipe
3684e9c1e8 Fixed #16640 - FIFO for requestable assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 15:38:13 +01:00
snipe
f2c730bd57 Fix wrapping on #16628
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 14:10:23 +01:00
akemidx
f0bf77735d adding last name only as a email choice 2025-04-03 23:34:04 -04:00
Marcus Moore
1b95b29832 Add tests for deleting asset via ui 2025-04-03 16:12:13 -07:00
Marcus Moore
9a8e5bf61e Backup before running updates 2025-04-03 14:39:40 -07:00
Marcus Moore
18ef88bd67 Improve comment 2025-04-03 13:13:52 -07:00
Marcus Moore
4ba58b2546 Constrain query 2025-04-03 13:10:45 -07:00
Marcus Moore
6dd3ab2ec9 Exit early if no logs found 2025-04-03 12:56:46 -07:00
Marcus Moore
faee50c222 Use dry-run instead of dryrun 2025-04-03 12:56:07 -07:00
Jeremy Price
afd9282785 Update remaining comments from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:07:05 -07:00
Jeremy Price
1344ed1d16 Update app & composer files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:04:12 -07:00
Jeremy Price
cbea096403 Update Vagrantfile files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:02:42 -07:00
Jeremy Price
094edbd114 Update css and less files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:00:51 -07:00
Jeremy Price
f016b6b988 Update relevant README sections from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:54:39 -07:00
Jeremy Price
782b35e0f1 Update scripts from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:51:12 -07:00
Jeremy Price
70e9c6b947 Update relevant snipe/snipe-it references to grokability/snipe-it in Docker files 2025-04-03 11:44:27 -07:00
Jeremy Price
4a457c96e8 Update Contributors links from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:39:21 -07:00
Jeremy Price
2e2516825e Update github workflows from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:36:57 -07:00
snipe
ba621cb1f2 Merge pull request #16632 from uberbrady/fix_paveit_command
Paveit had old Doctrine code to list tables; use the new method
2025-04-03 15:39:38 +01:00
snipe
b1e2b5ab4a Merge pull request #16623 from Godmartinz/accessories_history_view_fix
Fixes Accessories history table color contrast
2025-04-03 15:37:55 +01:00
snipe
7c1438c370 Merge pull request #16446 from marcusmoore/feature/improve-checkout-asset-mail-wording
Improved wording in asset checkout emails
2025-04-03 15:37:30 +01:00
Brady Wetherington
760768f42d Paveit had old Doctrine code to list tables; use the new method 2025-04-03 15:35:07 +01:00
snipe
cc8c2064c1 Merge pull request #16630 from snipe/license_key_formatting
Fixed #16628 - added formatting for license keys
2025-04-03 15:26:14 +01:00
snipe
33a921119c Merge pull request #16631 from snipe/add_webp_to_inline
Added webp as inline-able images
2025-04-03 15:25:48 +01:00
snipe
0e65498799 Added webp as inline-able images
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:24:03 +01:00
snipe
274c5fe4d3 Added max-width
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:07:10 +01:00
snipe
b7c011dd2d Use new one line code style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:03:31 +01:00
snipe
a4a99adf80 Added one-line code style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:03:16 +01:00
snipe
c7890f4c3b Use id as copy key
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 13:52:55 +01:00
snipe
6d7f061a1d Larger key box
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 13:39:31 +01:00
snipe
45d3c0444b Added copy to license keys
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:29:30 +01:00
snipe
9204309d67 Checkin/Checkout note added to language file
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:28:47 +01:00
snipe
a2035693e6 Added licenseKeyFormatter
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:28:30 +01:00
akemidx
392db81499 requested changes 2025-04-02 21:28:34 -04:00
snipe
abfea8e349 Merge pull request #16624 from snipe/bug/sc-28682
Fixed [SC-28682] - Consumable import not importing supplier and item number
2025-04-03 01:45:52 +01:00
snipe
ef20bd4aa8 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:41:12 +01:00
snipe
2d9be4e9e0 Added supplier_id as fillable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:10:25 +01:00
snipe
36767c0a5c Added more common fields for mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:10:16 +01:00
snipe
0d099263e3 Removed unneeded lines
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:09:28 +01:00
snipe
8f50e01d18 Shrink sample CSVs
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:09:04 +01:00
snipe
d898288397 Remove email user for comonent import type
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:08:54 +01:00
Marcus Moore
af88ce5801 Merge branch 'develop' into feature/improve-checkout-asset-mail-wording 2025-04-02 12:01:53 -07:00
Godfrey M
b1b248f03d removed duplicate class from accessories history table 2025-04-02 11:29:01 -07:00
snipe
df1c7c4f95 Merge pull request #16609 from snipe/login_throttle_update
Updated login attempts and throttle duration
2025-04-02 18:28:34 +01:00
snipe
7120b19d3b Fixed namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 18:24:27 +01:00
snipe
2197b46658 Link to admin user
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 14:03:09 +01:00
snipe
785f576b19 Merge pull request #16621 from snipe/add_notes_to_location_sidebar
Fixed #16618 - added notes to location sidebar
2025-04-02 13:27:48 +01:00
snipe
31e337255a Use adminuser instead of created_by
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 13:26:12 +01:00
snipe
f12d173581 Fixed #16618 - added notes to location sidebar
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 13:23:33 +01:00
snipe
eb3dbb8c7a Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:49:53 +01:00
snipe
ed908be2eb Merge pull request #16620 from snipe/#16619_fix_accessory_clone_population
Fixed #16619 - cloning accessory was not populating fields
2025-04-02 12:48:25 +01:00
snipe
e215c5f9ee Fixed #16619 - accesory clone
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:43:42 +01:00
snipe
78f3c879ff Merge pull request #16617 from snipe/add_pdf_logo_upload
Fixed #16257 - Added acceptance PDF logo upload
2025-04-02 12:22:43 +01:00
snipe
cb59c23f0b Added pdf logo to the blade
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:13:34 +01:00
snipe
d0f750edea Added pdf logo to the controller
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:13:28 +01:00
snipe
56ae9d0ba9 Nicer upload logo labels
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:27 +01:00
snipe
15917d5f99 Use new logo
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:14 +01:00
snipe
a59d69cb0d Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:05 +01:00
snipe
97cba45509 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:09:57 +01:00
snipe
365ce34940 Merge pull request #16613 from marcusmoore/chore/update-rollbar
Update rollbar-laravel to 8.1
2025-04-02 10:48:51 +01:00
Marcus Moore
7048eceb9d Update rollbar/rollbar-laravel 2025-04-01 16:05:32 -07:00
snipe
9d61234f0c Merge pull request #16612 from snipe/re-fix_db_dump_ssl_fix
Fixes #16610, regression in #16543
2025-04-01 21:32:15 +01:00
snipe
bef650757d Fixes #16610, regression in #16543
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 21:25:35 +01:00
Godfrey M
4ef161214d notification icon only appears when there are notifications 2025-04-01 12:01:35 -07:00
Godfrey M
29d0380db3 reword warning messages, remove warning if webhook cleared and saved, deprecations only for superadmins 2025-04-01 11:53:32 -07:00
snipe
cb6e7f7b6e Merge pull request #16561 from spencerrlongg/bug/api_get_by_serial_add_pagination
Adds Pagination to Hardware By Serial API Request
2025-04-01 19:26:28 +01:00
snipe
c305284930 Merge pull request #15922 from spencerrlongg/feature/sc-24347
Requestable/Request Item API Endpoints
2025-04-01 18:15:42 +01:00
snipe
6c47f1c07f Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 17:44:44 +01:00
snipe
5d265f5bfd Change to minutes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 15:01:34 +01:00
snipe
daaad4fe9d Removed unneeded strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 14:36:53 +01:00
snipe
40ae5d421b Updated maxLoginAttempts and throttle duration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 14:36:45 +01:00
akemidx
d96498ab1f this is a redo after a borked rebase 2025-03-31 18:33:20 -04:00
spencerrlongg
bfd827e529 added more eager loading 2025-03-31 12:28:03 -05:00
snipe
d95549bbcf Merge pull request #16594 from uberbrady/fix_consumable_model_copy
Fixes [FD-47675 ] Fix consumable model number copy-to-clipboard button
2025-03-31 18:26:46 +01:00
snipe
e10071a68e Merge pull request #16595 from uberbrady/fix_whitespace_encrypted_custom_fields_display
Fix whitespace encrypted custom fields display [FD-46570]
2025-03-31 18:25:13 +01:00
Brady Wetherington
92a77afd0b Fixes the clipboard button copying whitespace at the end of custom fields 2025-03-31 13:55:38 +01:00
Brady Wetherington
1369b993a4 Fix JS copy-to-clipboard for consumable model_num 2025-03-31 13:13:37 +01:00
snipe
382414df98 Merge pull request #16559 from Godmartinz/StoreLabelSettings_fix
Fix Form save error when using old label engine
2025-03-31 12:39:08 +01:00
snipe
6846c7d510 Merge pull request #16536 from akemidx/moving_warranty_info
Moving warranty/depreciation to be with the other cost/eol values
2025-03-31 12:35:32 +01:00
snipe
1d3069fe84 Merge pull request #16540 from marcusmoore/bug/sc-28607
Early return null from location transformer for missing accessory
2025-03-31 12:34:22 +01:00
snipe
13940071a9 Merge pull request #16546 from marcusmoore/bug/sc-28024
Fixed potential bad method call and premature email sending in bulk asset checkout
2025-03-31 12:32:50 +01:00
snipe
6870698cdc Add @ntaylor-86 as a contributor 2025-03-31 12:32:25 +01:00
snipe
4aa13c8dd4 Merge pull request #16543 from ntaylor-86/fixes/laravel-backup-ssl-error
Fixed #16217: database config, added option to skip ssl on the database dump
2025-03-31 12:32:00 +01:00
snipe
44db2dc78e Merge pull request #16520 from marcusmoore/bug/sc-28673
Remove unneeded eager loading for user show page
2025-03-31 12:31:12 +01:00
snipe
2e17e80ea9 [Snyk] Upgrade acorn from 8.14.0 to 8.14.1 #16587
Signed-off-by: snipe <snipe@snipe.net>
2025-03-31 12:30:09 +01:00
snipe
836d7ca8f9 [Snyk] Upgrade bootstrap-table from 1.24.0 to 1.24.1 #16588
Signed-off-by: snipe <snipe@snipe.net>
2025-03-31 12:29:00 +01:00
snipe
18e6a18389 Merge pull request #16576 from marcusmoore/fixes/api_company_note
Fixed notes not being saved and update for companies via api
2025-03-31 12:20:36 +01:00
snipe
1dd050ac0f Merge pull request #16577 from marcusmoore/tests/login-logging
Added tests around login attempt logging
2025-03-29 23:30:05 -01:00
Marcus Moore
b8b0e3200e Add tests around loggin login attempts 2025-03-27 17:27:28 -07:00
Marcus Moore
bc77c8c885 Add notes to $fillable 2025-03-27 10:57:34 -07:00
Marcus Moore
c095f330e1 Add failing tests 2025-03-27 10:56:33 -07:00
Marcus Moore
e0e08f284e Add tests for creating and patching companies via api 2025-03-27 10:54:42 -07:00
spencerrlongg
e273c7cbc5 Refactor asset retrieval to support pagination.
Introduced offset and limit handling for API asset queries to enable proper pagination. Adjusted the total count logic to maintain consistency in responses and ensure accurate transformation of assets.
2025-03-25 15:21:18 -05:00
Godfrey M
d28cc024cf add DefaultLabel if no label2_template is selected 2025-03-25 12:40:23 -07:00
spencerrlongg
168a3df157 Fix condition in statusMeta for correct property check
Updated the conditional check to use 'assigned_to' instead of 'assigned' for determining the deployment status. This ensures the code references the correct property on the model.
2025-03-25 14:39:51 -05:00
Marcus Moore
ac597b517b Remove blank line 2025-03-24 12:39:17 -07:00
Marcus Moore
ac56640d40 Spilt test scenarios 2025-03-20 16:21:42 -07:00
Marcus Moore
ce585539aa Improve test name 2025-03-20 16:13:13 -07:00
Marcus Moore
2cfff8e07c Formatting 2025-03-20 16:12:31 -07:00
Marcus Moore
0ceda098ff Spilt test scenarios 2025-03-20 16:10:01 -07:00
Marcus Moore
db81209fe1 Organize existing tests 2025-03-20 16:01:28 -07:00
Marcus Moore
02f109c3b5 Include input when redirecting back 2025-03-20 14:04:19 -07:00
Marcus Moore
0ed0a7f9f3 Avoid sending emails for asset checkouts that failed 2025-03-20 14:01:48 -07:00
Marcus Moore
b721b7d9c9 Add tests 2025-03-20 13:57:42 -07:00
Marcus Moore
976b3dc5ae Improve test case 2025-03-20 13:38:12 -07:00
snipe
2d3514bbf8 Merge pull request #16545 from Godmartinz/activity_report_column_name_fix
changes translation from Admin Settings to Created By on the Activity Report
2025-03-20 19:37:42 -01:00
Marcus Moore
5dcd4b2942 Return valid error message 2025-03-20 13:26:27 -07:00
Marcus Moore
d645b42e12 Add failing test 2025-03-20 13:26:06 -07:00
Godfrey M
0ad985cbcd change translation 2025-03-20 12:40:46 -07:00
ntaylor-86
ad5099fac9 added .env variable to the other .env files 2025-03-20 23:27:29 +10:00
ntaylor-86
32736e2f74 added .env variable and database config to skip ssl for DB DUMP 2025-03-20 23:06:15 +10:00
Marcus Moore
cef83ad652 Avoid hard failure on missing accessory in location transformer 2025-03-19 14:11:47 -07:00
Marcus Moore
e6ccff103f Add simple null check to avoid attempting to transform missing relationship 2025-03-19 12:52:01 -07:00
akemidx
5944034b8b moving warranty/depreciation to be with the other cost/eol values 2025-03-19 15:22:09 -04:00
Godfrey M
881cde4d98 change namesspaces and use create instead of make 2025-03-18 14:18:49 -07:00
akemidx
e408b902f0 removing depreciation from purchase cost (unneeded, should go elsewhere if wanted) 2025-03-18 16:38:44 -04:00
akemidx
a398c4ab84 reset 2025-03-18 16:37:27 -04:00
akemidx
27417cdec7 removing depreciation logic (unneeded for purchase cost) 2025-03-18 16:36:36 -04:00
Godfrey M
bf3837c49d add checkin test for api 2025-03-18 12:54:03 -07:00
Godfrey M
66fd46fe75 add checkout test for api 2025-03-18 12:46:56 -07:00
Godfrey M
29cbf43d68 remove duplicate table class div 2025-03-18 11:48:09 -07:00
Godfrey M
07096c8a31 rename note to notes 2025-03-18 10:37:00 -07:00
Godfrey M
cbc6c2754c add notes as fillable to license seat model 2025-03-18 10:27:56 -07:00
Jermops
711235f49c Merge pull request #16519 from marcusmoore/bug/sc-28696
Fixed issue with bad email addresses in expiration alerts and upcoming audits
2025-03-18 09:15:41 -07:00
Jeremy Price
3d2d7684aa Add console command to disable SAML logins
If a Snipe-IT sire has SAML enabled, and the SAML config is sufficiently
borked, the site will fail to even load the login page. That's probably
something that should be examined, but in the meantime, it'd be handy to
not have to manually edit the database to turn off SAML.

In this commit, I'm creating a saml-disable console command. And by
create, i mean i'm copypasta-ing the existing ldap-disable command.
2025-03-17 19:58:21 -07:00
Marcus Moore
9aede45918 Remove unneeded eager loads 2025-03-17 14:43:23 -07:00
Marcus Moore
b26a73e385 Filter out empty email address in alerts 2025-03-17 12:30:15 -07:00
Marcus Moore
650839b68a Update command name 2025-03-12 17:05:16 -07:00
Marcus Moore
388dc23241 Add comments 2025-03-12 17:02:05 -07:00
Marcus Moore
32b194ddc7 Update description 2025-03-12 16:44:37 -07:00
Marcus Moore
9cea6cee26 Docblock 2025-03-12 16:42:50 -07:00
Marcus Moore
73f64c53b1 Skip logs where created_by cannot be set 2025-03-12 16:42:39 -07:00
Marcus Moore
2091f66f5b Reorganize 2025-03-12 16:30:36 -07:00
snipe
c711278b8b Merge pull request #16486 from marcusmoore/bug/sc-28639
Fixed location being automatically populated on asset checkin screen
2025-03-12 23:26:08 +00:00
snipe
ff637f1926 Merge pull request #16497 from marcusmoore/fixes/diff-in
Fixed various carbon displays
2025-03-12 23:17:48 +00:00
Marcus Moore
4d978e0fc6 Fix eol rate in upcoming audit notification 2025-03-12 16:04:16 -07:00
Marcus Moore
167001ed54 Fix eol rate in tests 2025-03-12 16:01:32 -07:00
Marcus Moore
25fb1abc95 Fix eol rate in AssetObserver 2025-03-12 15:58:11 -07:00
Marcus Moore
658bef447d Fix eol rate in Actionlog 2025-03-12 15:55:13 -07:00
Marcus Moore
a28ff22d03 Fix eol rate in ReportsController 2025-03-12 15:44:06 -07:00
Marcus Moore
63a1ee0047 Fix eol rate in AssetMaintenancesController 2025-03-12 15:38:54 -07:00
Marcus Moore
ab8f4454d1 Add failing test for updating asset maintenance 2025-03-12 15:38:46 -07:00
Marcus Moore
e439f1f42b Fix eol rate in AssetMaintenancesController 2025-03-12 15:35:46 -07:00
Marcus Moore
9be27bdf07 Add failing test for creating asset maintenance 2025-03-12 15:35:14 -07:00
snipe
bfc122469c Merge pull request #16495 from snipe/add_highlight_for_low_qty
Added highlight to items when the remaining is less than the min_amt
2025-03-12 21:23:15 +00:00
snipe
036c225dcf Fixed dashboard string
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 21:22:24 +00:00
snipe
083cf78305 Added footer style for nicer number cell padding
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 21:17:41 +00:00
Marcus Moore
824271078e Fix eol rate in AssetsController 2025-03-12 13:55:12 -07:00
Marcus Moore
1122cd8567 Fix eol rate in asset transformer 2025-03-12 13:33:15 -07:00
Marcus Moore
6cf7df22cd Fix eol rate on asset show page 2025-03-12 13:28:34 -07:00
snipe
7421d089ff Added formatter and centering in presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:25:00 +00:00
snipe
bdb4bd73d2 Return an indicator for no value set
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:18:51 +00:00
snipe
bf88597132 Added qtySumFormatter and made seats formatter more generic
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:14:23 +00:00
snipe
dfacd876d5 Added remaining/min_amt to transformers
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:13:15 +00:00
Marcus Moore
d5bc5caacd Purge activity log of consumable bulk checkins 2025-03-12 11:57:18 -07:00
Marcus Moore
be6caf936e Avoid logging consumable checkins 2025-03-12 11:48:14 -07:00
snipe
f1e70eb7a0 Add min_qty to asset model bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 18:27:27 +00:00
snipe
dbe78c30d5 Merge pull request #16491 from snipe/bug/sc-28671
Fixed new user modal pre-populating with first name and last name of acting user
2025-03-12 18:05:57 +00:00
snipe
c1601b9a8c Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:50 +00:00
snipe
aa8e9f61d2 Check for value override
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:44 +00:00
snipe
163ddc8026 Check for value override
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:29 +00:00
snipe
c73dba4a43 Better visual spacing
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:05 +00:00
snipe
5e61a814a7 Merge pull request #16489 from marcusmoore/bug/sc-28644
Fixed timestamp in action log for bulk accessory check in
2025-03-12 14:56:52 +00:00
Marcus Moore
935d3eea9f Attempt to match and populate created_by 2025-03-11 17:17:39 -07:00
Marcus Moore
fffc606d9a Improve output 2025-03-11 17:06:02 -07:00
Marcus Moore
c3a48182fd Display the created_by 2025-03-11 17:03:26 -07:00
Marcus Moore
147e610062 Add todos 2025-03-11 17:00:36 -07:00
Marcus Moore
dd14eac1eb Prompt for confirmation 2025-03-11 16:56:07 -07:00
Marcus Moore
4954d972bb Write table of ids 2025-03-11 16:52:20 -07:00
Marcus Moore
c8177eb51e Update timestamps 2025-03-11 16:50:16 -07:00
Marcus Moore
a8cccffa1e Update output 2025-03-11 16:41:22 -07:00
Marcus Moore
c774e969d7 Scaffold command 2025-03-11 16:34:07 -07:00
Marcus Moore
b5fa538a54 Set created_by correctly in he action log 2025-03-11 16:05:02 -07:00
snipe
fcdc1494c2 Merge pull request #16443 from azmcnutt/feature/labels_Avery_5520_1DBarcode
Nice work! Thank you!
2025-03-11 22:12:09 +00:00
snipe
badb367e74 Merge pull request #16445 from ubc-cpsc/bugfix/CVE-2025-27515
Fixes CVE-2025-27515: Laravel has a File Validation Bypass
2025-03-11 21:55:58 +00:00
snipe
2960a13772 Upgrade webpack from 5.97.1 to 5.98.0 #16461
Signed-off-by: snipe <snipe@snipe.net>
2025-03-11 21:24:44 +00:00
snipe
5e10c213f6 Merge pull request #16488 from marcusmoore/bug/sc-28631
Nice catch!
2025-03-11 21:05:46 +00:00
snipe
b61eacbdab Merge pull request #16473 from marcusmoore/chore/replace-form-close
Replaced call to Form::close()
2025-03-11 20:47:08 +00:00
Marcus Moore
e2f643e7ed Backfill tests 2025-03-11 13:46:21 -07:00
Marcus Moore
9cbcfba4e9 Add test 2025-03-11 13:35:50 -07:00
Marcus Moore
fd854072b0 Properly handle route model bound LicenseSeat not being found 2025-03-11 13:03:00 -07:00
Marcus Moore
18b208bba2 Account for missing location 2025-03-11 11:46:38 -07:00
Marcus Moore
71d93ca3c3 Use dedicated location select component
Copy/paste/modify from partials.forms.edit.location-select
2025-03-11 11:41:26 -07:00
Marcus Moore
bac2760c6d Replace Form::close 2025-03-10 12:55:35 -07:00
snipe
0b48fd1465 Removed extra headers
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 13:05:31 +00:00
snipe
220537fbfb Updated presenter name
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 12:59:57 +00:00
snipe
df5437647b Add optional serial value in presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 12:43:38 +00:00
snipe
92b2da9b1b Added history tab to components
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:38 +00:00
snipe
ef56177372 Use presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:31 +00:00
snipe
cb7822576f Use new presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:19 +00:00
snipe
7ba361b10d Use date formatter for filestable
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:54 +00:00
snipe
55694fa2fc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:40 +00:00
snipe
c825878c46 Added history presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:33 +00:00
snipe
33c9ea4bb1 Merge pull request #16065 from marcusmoore/chore/migrate-select-helper
Convert  Form::select to blade component
2025-03-07 01:05:58 +00:00
Marcus Moore
d88fe1f48a Merge branch 'develop' into chore/migrate-select-helper 2025-03-06 13:39:05 -08:00
Marcus Moore
f202817852 Use translation strings 2025-03-06 12:43:59 -08:00
Joël Pittet
618d81777a Fixes CVE-2025-27515 2025-03-06 12:33:29 -08:00
James M
0b6d810ca6 FEAT: Add Label 5520 with 1D barcode - remove 2D barcode
FEAT: Add Label 5520 with 1D barcode - remove 2D barcode
2025-03-06 11:12:16 -07:00
snipe
80a69bfe90 Revert datetime to date
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 18:09:27 +00:00
snipe
d4dc8d2b79 Remove action_date from loggable as a changed field
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 17:43:07 +00:00
snipe
4e3df93349 Change action_date display to date from datetime
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 16:16:17 +00:00
snipe
38efc62900 Add index on action_date, copy from created_at
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 16:01:46 +00:00
snipe
8c164d1b09 Merge pull request #16441 from snipe/added_modal_tests
Added modal tests
2025-03-06 15:06:08 +00:00
snipe
6d74053ca3 Added modal tests
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 15:02:55 +00:00
snipe
f42fcd25b1 Make the assets tab active by default on locations page
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 12:05:36 +00:00
Marcus Moore
7df636515f Move to data providers 2025-03-05 18:20:40 -08:00
Marcus Moore
3db124e709 First pass at updating wording for asset checkout mail 2025-03-05 18:12:23 -08:00
snipe
c5dd942f3d Merge pull request #16436 from marcusmoore/fixes/report-template-link
Fixed linking in saved report template dropdown
2025-03-06 01:06:18 +00:00
Marcus Moore
70de08a211 Replace hard-coded link to report template 2025-03-05 16:26:26 -08:00
Marcus Moore
d1683d1c65 Use existing translation string 2025-03-05 16:10:36 -08:00
Marcus Moore
f038254038 Have UI reflect not being able to delete accessory 2025-03-05 16:02:23 -08:00
Marcus Moore
a19582a5f3 Prevent deleting accessory that has checkouts via api 2025-03-05 15:58:34 -08:00
Marcus Moore
00cbebd1e3 Add failing test for api 2025-03-05 15:57:18 -08:00
Marcus Moore
8c21d625fc Prevent deleting accessory that has checkouts via UI 2025-03-05 15:56:01 -08:00
snipe
64f49afce1 Merge pull request #16432 from marcusmoore/bug/sc-24475
Added validation around user store endpoint
2025-03-05 20:16:30 +00:00
Marcus Moore
25395e9af1 Add test for storing user 2025-03-05 11:37:03 -08:00
Marcus Moore
69009e027f Add authorization test 2025-03-05 11:34:45 -08:00
Marcus Moore
695c9d070f Require int for department and company ids when creating user via api 2025-03-05 11:32:04 -08:00
snipe
c9f55bfd94 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 17:04:57 +00:00
snipe
27d98fbb93 Merge pull request #16429 from snipe/bug/sc-28609
Updated HTML label colors in blue skin
2025-03-05 13:43:53 +00:00
snipe
0e1f40626f Updated label colors in blue skin
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 13:40:36 +00:00
snipe
7a312d075c Check for null on webhook url
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 11:59:35 +00:00
snipe
e1156be919 Merge pull request #16427 from snipe/fixed_user_modal_email
Fixes user create modal - check if $item is set
2025-03-05 10:52:00 +00:00
snipe
fcf7a543fd Check if $item is set
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 10:47:33 +00:00
Spencer Long
6201e475cb Merge branch 'develop' into feature/sc-24347 2025-03-04 21:20:46 -06:00
snipe
bef54983fa Merge pull request #16421 from marcusmoore/chore/migrate-label-helpers-pt8
Replace calls to Form::label pt8
2025-03-05 01:01:21 +00:00
Marcus Moore
f2b44f7002 Replace Form::label in company select partial 2025-03-04 16:46:43 -08:00
Marcus Moore
de7d32f632 Replace Form::label on ldap settings page 2025-03-04 16:44:26 -08:00
snipe
fecee69de6 Use table name to avoid ambiguous query
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 00:43:04 +00:00
snipe
75366927f0 Fixed table name
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 00:41:11 +00:00
Marcus Moore
c798df2920 Replace Form::label on label settings page 2025-03-04 16:34:22 -08:00
snipe
779330af14 Merge pull request #16420 from marcusmoore/fixes/report-url
Fixed custom report template route
2025-03-05 00:11:30 +00:00
Marcus Moore
f01ff1f1d7 Add dedicated named route 2025-03-04 16:07:35 -08:00
Marcus Moore
1e4daf0348 Fix route 2025-03-04 16:04:28 -08:00
snipe
fae79a91f6 Merge pull request #16418 from marcusmoore/chore/custom-report-template-activity-log-removal
Stop reporting report template events to activity log
2025-03-04 23:28:43 +00:00
Marcus Moore
e8ee218f39 Purge activity log of report template data 2025-03-04 15:20:23 -08:00
Marcus Moore
cb5b0bd89c Stop reporting report template creates, updates, and deletes to action log 2025-03-04 15:11:37 -08:00
snipe
0ed49fa7a0 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 22:55:58 +00:00
snipe
f25b8379e6 Merge pull request #16413 from Godmartinz/visited_link-color-change
Changed `visited-link` and `link` colors in default theme to be more accessible
2025-03-04 22:55:17 +00:00
snipe
bc618fcef4 Merge pull request #16414 from Godmartinz/Audit_error_fix
Adds audit notification for MS Teams
2025-03-04 22:54:32 +00:00
Godfrey M
7c194422f3 Merge branch 'develop' into Audit_error_fix 2025-03-04 14:51:21 -08:00
Godfrey M
49ff47fbcf Merge branch 'develop' into visited_link-color-change 2025-03-04 14:47:48 -08:00
snipe
77c978d29a Merge pull request #16416 from Godmartinz/expiring-asset-email-test
fix Expiring alert tests
2025-03-04 21:11:52 +00:00
Godfrey M
437b3cd865 fix conflicts 2025-03-04 13:08:53 -08:00
Godfrey M
3641016271 remove commented code 2025-03-04 13:08:03 -08:00
Godfrey Martinez
cc127c8e1e Merge branch 'develop' into expiring-asset-email-test 2025-03-04 13:06:36 -08:00
Godfrey M
4bac509341 fix Expiring alert tests 2025-03-04 12:58:04 -08:00
snipe
f4f6dcb885 Updated test
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:48:59 +00:00
snipe
d89f38bbfb Set defaults on save
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:33 +00:00
snipe
9351cc2252 Set default to 0
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:22 +00:00
snipe
a31a732d38 Nicer UI for invert flag
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:15 +00:00
snipe
1be420b0e9 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:37:45 +00:00
snipe
2b0127ab0c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:56:58 +00:00
snipe
8791640908 Add @Fiala06 as a contributor 2025-03-04 19:53:25 +00:00
snipe
1dacd25e6d Check for purchase_cost before adding the “each”
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:50:11 +00:00
snipe
45317c0959 Merge pull request #16415 from snipe/nicer_error_message_on_model_not_found
Nicer model name formatting on RMB model not found
2025-03-04 19:42:45 +00:00
snipe
63e4c42445 Added strtolower
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:33:17 +00:00
snipe
d4e227f003 Whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:29:09 +00:00
snipe
bbabbe1b87 Nicer model name formatting on RMB model not found
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:21:46 +00:00
Marcus Moore
2a156776a4 Merge branch 'develop' into chore/migrate-select-helper
# Conflicts:
#	resources/views/settings/branding.blade.php
#	resources/views/settings/general.blade.php
2025-03-04 11:19:38 -08:00
Godfrey M
15a09e5187 adds audit notification for MS Teams 2025-03-04 11:15:03 -08:00
Godfrey M
5eebdcddb2 changes visited and link colors 2025-03-04 10:12:45 -08:00
snipe
16b97c18e0 Shim route for asset maintenances redirect on RMB not found
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:16:16 +00:00
snipe
fa72696a35 Removed redundent text
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:06:56 +00:00
snipe
9467ec2571 Nicer env text
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:05:45 +00:00
snipe
ac3f61c96a Fixed extra escape character
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:00:44 +00:00
snipe
d2e0a23994 Merge pull request #16412 from snipe/#16150_fixed_regression_in_branding_page
Fixed regression from #16150
2025-03-04 15:55:24 +00:00
snipe
ccea55308b Fixed regression from #16150
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:53:30 +00:00
snipe
acaa3a28e7 Merge pull request #16410 from snipe/#16407_component_checkout_and_notes_fix
Fixed #16407 - weird layout on components for non super user
2025-03-04 15:38:20 +00:00
snipe
c4722898b7 Fixed #16407 - weird layout on components for non super user
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:37:25 +00:00
snipe
e19003aea5 Merge pull request #16409 from snipe/#16386_user_dropdown_fields_not_populating_on_edit
Fixed #16386 - some fields not populating with user data on edit
2025-03-04 15:28:11 +00:00
snipe
a09a9d3cd6 Added item to payload
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:26:25 +00:00
snipe
759e3794df Small upgrader UI fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 14:57:28 +00:00
snipe
c50b14763f Merge pull request #16403 from snipe/#16402_each_localization
Fixed #16402 - localize "each" string in components tab on asset view
2025-03-04 13:35:08 +00:00
snipe
369a68fe57 Fixed #16402 - Localize “each” in string
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 13:33:04 +00:00
snipe
83855d44d0 Merge pull request #16251 from Godmartinz/Audit_Checkin_warning_fix
refactors audit notification to mail, adds test, adds  alerts check to scheduler
2025-03-04 12:51:42 +00:00
snipe
6f847294ed Merge pull request #15911 from Fiala06/patch-1
Fixed duplicate entries preventing LDAP sync from continuing
2025-03-04 12:49:54 +00:00
snipe
d556d1c6e7 Merge pull request #16150 from Godmartinz/add-translations-to-settings
Adds Translation strings to General and Branding Settings
2025-03-04 12:48:21 +00:00
snipe
3bb94e98f0 Merge pull request #16398 from marcusmoore/bug/sc-28535
Avoid using authenticated user's email address in email partial
2025-03-04 12:47:10 +00:00
Marcus Moore
8f5f6f3502 Avoid using authenticated user's email address in email partial 2025-03-03 16:28:08 -08:00
snipe
b3792bfa00 Merge pull request #16396 from marcusmoore/chore/migrate-checkbox-helpers-pt10
Replace calls to Form::checkbox pt10
2025-03-03 20:52:54 +00:00
Marcus Moore
40f7257723 Replace call to Form::checkbox 2025-03-03 12:44:50 -08:00
snipe
8486256142 Merge pull request #16381 from marcusmoore/chore/migrate-checkbox-helpers-pt9
Replace calls to Form::checkbox pt9
2025-03-03 20:28:21 +00:00
snipe
7f36750e33 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-03-03 19:54:14 +00:00
snipe
de046db106 Add @azmcnutt as a contributor 2025-03-03 19:53:30 +00:00
snipe
eb1d27a5bc Merge pull request #16379 from azmcnutt/feature/settings_ldap_invert_active_flag
Feature/settings ldap invert active flag
2025-03-03 19:52:57 +00:00
Godfrey M
cc0b9f404a merged develop, fix conflicts 2025-02-27 15:38:31 -08:00
Marcus Moore
70332696c6 Fix test by passing in required properties 2025-02-27 15:23:17 -08:00
Marcus Moore
7a9b5d61b0 Replace another Form::checkbox 2025-02-27 13:25:32 -08:00
Marcus Moore
5876259893 Replace another Form::checkbox 2025-02-27 13:19:26 -08:00
Marcus Moore
8755c54edc Replace Form::checkbox 2025-02-27 13:13:39 -08:00
Marcus Moore
014f3b7652 Cast to boolean 2025-02-27 13:12:01 -08:00
Marcus Moore
3a2579b205 WIP: replace Form::checkbox 2025-02-27 13:08:02 -08:00
James M
149474bfe3 Update general.php
FIX: Spelling error
2025-02-27 12:42:47 -07:00
James M
b2b768dede Merge branch 'snipe:develop' into develop 2025-02-27 12:25:07 -07:00
snipe
a9ed9e2a7f Merge pull request #16378 from snipe/wrap_pdf_table_results
Wrap long text in PDF export in tables
2025-02-27 19:06:34 +00:00
snipe
ce8523b00a Fixed wrapping
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 18:58:18 +00:00
snipe
7076a68d35 Wrap table results in PDF
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 18:38:10 +00:00
James M
112112d258 Feat: #14926 LDAP Active Flag - Add config option to make False = Enable 2025-02-27 10:52:12 -07:00
snipe
3928c8afe9 Merge pull request #16376 from uberbrady/improve_safety_csv_charset_detection
Add some safeties around the charset-detection and transliteration
2025-02-27 16:26:44 +00:00
snipe
23ce54e80c Make sure we’re saving the last_login in 2FA auths
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 16:17:59 +00:00
Brady Wetherington
646e3e8df5 Complete failed-transliteration test, clean up error, new translation string 2025-02-27 16:10:56 +00:00
snipe
30c4e9dbf7 Use formatter for created_at on unaccepted assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 15:48:24 +00:00
snipe
27fc30a881 Nicer button layout on unaccepted assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 15:43:53 +00:00
snipe
8ac7cda4ee Merge pull request #16366 from marcusmoore/chore/migrate-checkbox-helpers-pt7
Replace calls to Form::checkbox pt7
2025-02-27 15:01:31 +00:00
snipe
6f04d314a8 Merge pull request #16367 from marcusmoore/chore/migrate-checkbox-helpers-pt8
Replace calls to Form::checkbox pt8
2025-02-27 15:01:19 +00:00
snipe
1051b1d16d Merge pull request #16375 from snipe/fixes_16371_name_not_included_in_reminder_emails
Fixed #16371 - incorrect count and missing name in acceptance reminder email
2025-02-27 15:00:04 +00:00
snipe
115bb94704 Merge pull request #16156 from marcusmoore/acceptance-reminder-subject
Added "Reminder" to subject line of follow up asset checkout emails
2025-02-27 14:55:59 +00:00
snipe
25807cc62f Fixed constructor
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 14:22:48 +00:00
snipe
cd1d1b2d3e Fixed count
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 14:22:40 +00:00
Brady Wetherington
6dcd3bfd30 Add some safeties around the charset-detection and transliteration 2025-02-27 13:44:31 +00:00
snipe
b8799f8038 Bumped bash
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 12:21:28 +00:00
Marcus Moore
a0dc056da8 Replace Form::checkbox on label settings page 2025-02-26 16:33:07 -08:00
Marcus Moore
27aeb518ff Replace Form::checkbox on general settings page 2025-02-26 16:18:00 -08:00
snipe
dc619bb0dc Merge pull request #16365 from marcusmoore/chore/migrate-checkbox-helpers-pt6
Replace calls to Form::checkbox pt6
2025-02-26 23:54:50 +00:00
Marcus Moore
245a16c377 Replace Form::checkbox on branding settings page 2025-02-26 15:37:07 -08:00
Marcus Moore
de3c1d159f Replace Form::checkbox on branding settings page 2025-02-26 15:35:17 -08:00
Marcus Moore
af6d9e4a00 Replace Form::checkbox on custom report pages 2025-02-26 15:15:48 -08:00
snipe
8c8af3062e Merge pull request #16354 from snipe/dont_checkin_for_pending_on_asset_update
Allow pending as an asset status type that does not automatically check the asset in
2025-02-26 21:05:11 +00:00
snipe
2ff47edb94 Merge pull request #16361 from Godmartinz/acceptancer_reminder_unlisted_email_info
Fixed acceptance reminder command lag on users with no associated email
2025-02-26 20:33:02 +00:00
snipe
d923d29bad Merge pull request #16360 from spencerrlongg/bug/sc-28537
Add Safety Around Bulk Status Update
2025-02-26 20:32:19 +00:00
Godfrey M
899119ae2d changes output to a table 2025-02-26 12:30:19 -08:00
snipe
e031de8e49 Merge pull request #16363 from snipe/added_a_few_more_no_interaction_calls
Added `--no-interaction` to additional passport commands
2025-02-26 20:19:37 +00:00
snipe
a81c520d93 Follow up for #16341
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 20:15:09 +00:00
Godfrey M
8352e81228 fix unaccepted reminder test 2025-02-26 11:50:08 -08:00
Godfrey M
fd0174ff32 remove unwanted changes to livewire 2025-02-26 11:31:41 -08:00
Godfrey M
cc26aa02b2 fix acceptance reminder command no email list 2025-02-26 11:25:21 -08:00
snipe
616f3558dd Update example env
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 19:14:25 +00:00
spencerrlongg
d6e266cec1 make super safe 2025-02-26 13:11:49 -06:00
snipe
31516d7f24 Merge pull request #16356 from snipe/added_fields_for_model_search
Added name, model_number and notes for strict search
2025-02-26 12:46:13 +00:00
snipe
e79af255aa Added name, model_number and notes for strict search
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 12:43:54 +00:00
snipe
5b0d7f4064 One more chonk
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 12:01:50 +00:00
snipe
2f6af10c5d Bumped chunk for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 11:59:34 +00:00
snipe
afabda9235 Remove greater than 0 for alert threshold - fixes FD-47040
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 11:38:33 +00:00
snipe
1618c9ae8e Changed confirmation message
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:53:41 +00:00
snipe
5344ef4a1a Allow pending as an asset status that does not automatically check the asset in
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:46:38 +00:00
snipe
16420b1e00 Audit Log Number under Days to next Audit [sc-28530]
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:25:07 +00:00
snipe
62f66e724e Drop errors to warnings to stop pooping on rollbar
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 09:54:13 +00:00
snipe
9b0ea51d35 Moved composer clear commands to after composer install per #16334
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 09:37:31 +00:00
snipe
992214fc66 Check for adminuser withTrashed
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 08:25:22 +00:00
snipe
93dab12461 Merge pull request #16342 from snipe/nicer_upgrade_script
Nicer upgrade.php UI
2025-02-26 07:16:28 +00:00
snipe
ea0f105180 Merge pull request #16347 from marcusmoore/chore/migrate-checkbox-helpers-pt4
Replace calls to Form::checkbox pt4
2025-02-26 07:05:38 +00:00
snipe
5b6da0c1e8 Merge pull request #16348 from marcusmoore/chore/migrate-checkbox-helpers-pt5
Replace calls to Form::checkbox pt5
2025-02-26 07:05:22 +00:00
snipe
4d7655bbe1 Merge pull request #16346 from marcusmoore/chore/migrate-checkbox-helpers-pt3
Replace calls to Form::checkbox pt3
2025-02-26 07:04:27 +00:00
snipe
5e3855ee5b Merge pull request #16345 from marcusmoore/fixes/update-custom-fields
Fixed renaming custom fields
2025-02-26 07:03:40 +00:00
Marcus Moore
e01226a174 Replace Form::checkbox on saml settings page 2025-02-25 17:31:05 -08:00
Marcus Moore
f9ccf32af4 Replace Form::checkbox on ldap settings page 2025-02-25 17:22:44 -08:00
Marcus Moore
2c5170a218 Replace Form::checkbox on security settings page 2025-02-25 17:09:25 -08:00
Marcus Moore
15f842e2dc Replace Form::checkbox on bulk user edit page 2025-02-25 16:00:46 -08:00
Marcus Moore
46b31dfe14 Replace Form::checkbox on user create and edit page 2025-02-25 14:32:39 -08:00
Marcus Moore
d88c79366c Replace Form::checkbox on google settings page 2025-02-25 14:27:07 -08:00
Marcus Moore
de330a47cd Replace Form::checkbox on asset tag settings page 2025-02-25 14:25:02 -08:00
Marcus Moore
ecd7dc2094 Replace Form::checkbox on alert settings page 2025-02-25 14:23:26 -08:00
Marcus Moore
510946e0eb Replace Form::checkbox in logo upload partial 2025-02-25 14:20:43 -08:00
Marcus Moore
37e4a13979 Replace Form::checkbox in image upload partial 2025-02-25 14:15:12 -08:00
Marcus Moore
c73d64cdbc Remove manual doctrine mapping for enums 2025-02-25 13:37:23 -08:00
snipe
4a0410d969 Uncomment git stash
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 16:55:39 +00:00
snipe
668b9f8fb9 Nicer upgrade.php UI
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 16:51:32 +00:00
snipe
037d2d9e84 Merge pull request #16341 from uberbrady/fix_passport_install_no_interaction
Fixes #16331 - Don't make passport:install command require user input
2025-02-25 16:43:49 +00:00
Brady Wetherington
bce2007b97 Fixes #16331 - Don't make passport:install command require user input 2025-02-25 16:38:40 +00:00
Brady Wetherington
09a5e5b1bd Whoops! Need minimum 8.2, not 8.1 (probably mis-merge?) 2025-02-25 14:40:45 +00:00
snipe
7b4f4b6b7f Merge pull request #16337 from joakimbergros/develop
Fixed #16173: `useraccountcontrol` was not included in the ldap query attributes
2025-02-25 13:49:38 +00:00
Joakim Bergros
5c66334017 Added a check to see if the user has specified that is an ActiveDirectory server in the configuration before adding the useraccountcontrol attribute to the ldap query. 2025-02-25 14:22:22 +01:00
Joakim Bergros
ae82051b73 Fixed #16173: useraccountcontrol was not included in the ldap query attributes.
`$results` did not include the `useraccountcontrol` and thus rendered the fallback logic void when `active_flag` was blank.

 Added a condition to check if `active_flag` is blank and only then add `useraccountcontrol` to the ldap query since it is then a requirement in accordance with "we respect the userAccountControl attribute" text in the `admin/ldap` route.

[`elseif' will become true when `active_flag` is blank](b141945add/app/Console/Commands/LdapSync.php (L364))
2025-02-25 13:55:53 +01:00
snipe
c3a2e81afd Updated version
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 12:18:22 +00:00
snipe
18c7cbbbbb Merge pull request #16336 from snipe/change_order_in_upgrade_script
Fixed #16334 - Changed composer order in upgrade script
2025-02-25 12:09:15 +00:00
snipe
3718f08c72 Changed composer order in upgrade script
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 12:05:00 +00:00
snipe
b7821a69b6 Added link to the google apps script repo
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 11:07:04 +00:00
snipe
8049f21068 Updated laravel version in readme
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 11:02:00 +00:00
snipe
8140110bf9 Chnage dev docker env to en-US from en
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 10:57:38 +00:00
snipe
a4587f6322 Merge pull request #16335 from snipe/added_label_test
Added label test
2025-02-25 10:40:46 +00:00
snipe
163e19f1e9 Added label test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 10:37:06 +00:00
snipe
8a40c3ecb4 Merge pull request #16325 from spencerrlongg/bug/sc-28520
Remove remaining hardware references in favor of new RMB
2025-02-25 10:09:35 +00:00
spencerrlongg
d949a9689f fix all 2025-02-24 22:35:47 -06:00
snipe
27a7c6fd10 Merge pull request #16324 from marcusmoore/chore/migrate-checkbox-helpers-p2
Replace calls to Form::checkbox pt2
2025-02-25 02:33:02 +00:00
Marcus Moore
4d55a67628 Merge branch 'develop' into chore/migrate-checkbox-helpers-p2 2025-02-24 16:37:59 -08:00
snipe
9d453226bd Merge pull request #16321 from spencerrlongg/bug/sc-28515
Changed Parameter Name for RMB
2025-02-25 00:17:37 +00:00
snipe
cd26694767 Merge pull request #16322 from marcusmoore/fixes/fix-test-edit-route
Fixed edit routes in tests
2025-02-25 00:17:10 +00:00
Marcus Moore
a26cc2ced1 Use .edit routes instead of .update 2025-02-24 15:55:05 -08:00
spencerrlongg
1fd81d17a3 route model binding change 2025-02-24 17:53:41 -06:00
snipe
134045f1ec Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-02-24 23:46:55 +00:00
snipe
b6b6a3eec7 Remove req for 0 min
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 23:46:50 +00:00
snipe
b62714d702 Merge pull request #16062 from snipe/remove_mcrypt
Removed references to mcrypt
2025-02-24 23:22:32 +00:00
Brady Wetherington
271bcc66bf Remove lib-mcrypt as a dependency 2025-02-24 23:19:08 +00:00
snipe
ced560daa9 Add @jostrander as a contributor 2025-02-24 23:16:27 +00:00
snipe
b395c9130a Merge remote-tracking branch 'origin/master' into develop 2025-02-24 23:06:46 +00:00
snipe
ed46a757fa Merge pull request #16320 from jostrander/fix/location-edit
Fixed: fix 500 on edit locations page by referencing current location
2025-02-24 23:03:01 +00:00
Jesse Ostrander
6a8a41b389 fix: reference to item location on location edit method 2025-02-24 17:34:18 -05:00
snipe
4800f4c853 Merge branch 'develop' into remove_mcrypt 2025-02-24 22:12:56 +00:00
snipe
c79ff49c85 Add @addex12 as a contributor 2025-02-24 20:30:04 +00:00
Marcus Moore
e88bba51bb Merge branch 'develop' into acceptance-reminder-subject 2025-02-24 11:55:50 -08:00
Marcus Moore
f97211f6cd Remove unused language string 2025-02-24 11:45:58 -08:00
Marcus Moore
027c2b3627 Change subject to "You have Unaccepted Assets." 2025-02-24 11:45:23 -08:00
snipe
ee85a392e7 Merge pull request #16316 from snipe/v8_final_merge
V8 final merge
2025-02-24 19:18:12 +00:00
Brady Wetherington
6c2d367124 Tweak version number and hashes 2025-02-24 18:38:53 +00:00
Brady Wetherington
982cfeca32 Merge branch 'develop' 2025-02-24 18:37:41 +00:00
snipe
5fa4f85c20 Merge pull request #16106 from marcusmoore/bug/sc-27960
Fixed asset show page erroring when asset not associated with model
2025-02-24 17:16:12 +00:00
snipe
43b8c0bf7b Merge pull request #16313 from snipe/localizations/2024-02-24
Updated strings, added Oromo
2025-02-24 14:51:45 +00:00
snipe
54b664d679 Updated strings, added Oromo
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:50:23 +00:00
snipe
bf2355a297 Fixed showfile path
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:34:10 +00:00
snipe
2bf4ec0ae8 A few more small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:24:15 +00:00
Brady Wetherington
9555825a67 Update minimum PHP version 2025-02-24 14:03:57 +00:00
snipe
0bea07e2f9 Merge pull request #16312 from snipe/small_cleanups
Small cleanups before release
2025-02-24 13:53:28 +00:00
snipe
22f7a9ddd4 Fixed stray tag
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:46:33 +00:00
snipe
77b417bcea Passed user to showfile
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:43:39 +00:00
snipe
76e3c00d2d Removed footer on tables that didn’t need it
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:41:49 +00:00
snipe
77add8abbc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:39:07 +00:00
snipe
b53957268a Added warning if deleted
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:55 +00:00
snipe
ba49fc554d Moved warning to be consistent with other FCOs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:47 +00:00
snipe
e60462b751 Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:28 +00:00
snipe
a5009aa7df Added withTrashed() to handle soft deletes with RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:06 +00:00
snipe
e589adbe80 Updated model route
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:31:09 +00:00
snipe
0501c5f53c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:15:03 +00:00
snipe
6a9247ba8a Cast token policies to int
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:14:49 +00:00
snipe
fcf84bf63f Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:09:54 +00:00
snipe
5ece721b00 Check for FMCS
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 15:02:45 +00:00
snipe
0e2251c810 Scope selectlist by company
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 14:59:05 +00:00
snipe
cebb9d034c Merge pull request #16305 from snipe/bug/sc-28425
Fixed #16262 - Check for quantity before allowing component deletion
2025-02-23 14:17:36 +00:00
snipe
dd2b570db5 Added tighter constraints on deleting components
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 14:11:39 +00:00
snipe
2bee4532ec Added qty error string
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:58 +00:00
snipe
96248e0023 Removed soft delete from test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:49 +00:00
snipe
157801242d Added API test, renamed test to match filter
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:36 +00:00
snipe
7b151cf692 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:17:20 +00:00
snipe
50c88df4cc Merge pull request #16304 from snipe/security/snyk-updates-less-papaparse
Updated less and papaparse
2025-02-23 12:51:38 +00:00
snipe
d87a6868cc Updated less and papaparse
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 12:50:09 +00:00
snipe
201f487853 Merge pull request #16303 from snipe/chore/sc-28493
Added tooltip for currency in table
2025-02-23 12:21:04 +00:00
snipe
069860d65f Added tooltip for currency in table
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 12:19:18 +00:00
snipe
afa7391080 Merge pull request #16299 from snipe/added_checkin_checkout_indicator_for_custom_fields
Added checkin/checkout indicators on custom field table
2025-02-22 19:34:04 +00:00
snipe
07cf203018 Add checkin/checkout indicators on custom field table
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 19:32:34 +00:00
snipe
5f561452d2 Merge pull request #16298 from uberbrady/tooltips_custom_fields
Add tooltips to custom fields display, especially for icons
2025-02-22 19:17:28 +00:00
Brady Wetherington
cbe04e8514 Add tooltips to custom fields display, especially for icons 2025-02-22 19:13:09 +00:00
snipe
9b44dfd9b6 Merge pull request #16297 from snipe/add_field_to_checkin_checkout
Fixed #6188 - Added custom fields to checkin/checkout screens
2025-02-22 19:09:51 +00:00
snipe
9abf3029ef Compact the method just a little
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 19:02:41 +00:00
snipe
19fb45f488 Refactor into method
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:57:18 +00:00
snipe
e983ee4d0f Tweaked icon position
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:47:12 +00:00
snipe
40acd48eff Tweaked some style
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:19:09 +00:00
snipe
f5eedb8d23 Added RMB and include $item so the asset fields are populated
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:13:12 +00:00
snipe
172df0d220 Save new custom field values
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:12:46 +00:00
snipe
c611cb5612 Updated loggable to check for custom fields that were passed for meta
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:12:30 +00:00
snipe
da77ddd447 Added fields to custom field edit form
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:56 +00:00
snipe
c727633e6b Added language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:42 +00:00
snipe
10834cf638 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:35 +00:00
snipe
42eda089e2 Added include for custom fields partial
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:27 +00:00
snipe
2434c82a75 Added if/else for custom fields model partial
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:04 +00:00
snipe
1b9d046f5f Fixed test for RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:08:25 +00:00
snipe
a0a0727b5c Corrected route breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:08:13 +00:00
snipe
917b9f0293 Merge pull request #16296 from snipe/added_select_unselect_tooltip_to_presenters
Added select/unselect tooltip to presenters, added translation
2025-02-22 14:32:04 +00:00
snipe
bb70250007 Added select/unselect tooltip to presenters, added translation
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 14:30:49 +00:00
snipe
346aeeda71 Merge pull request #16287 from uberbrady/better_hover_titles
Fixes: [sc-28423] Better tooltips on lists, Bootstrap style
2025-02-22 14:24:02 +00:00
snipe
84a29378cd Merge pull request #16295 from snipe/#16282_adds_accessories_tab_to_assets
Fixed #16282 - adds accessories tab to assets
2025-02-22 14:21:32 +00:00
snipe
0cd0abe8bb Fixed #16282 - adds accessories tab to assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 14:20:21 +00:00
snipe
7db11dc12b Merge pull request #16277 from Godmartinz/bulk_delete_asset_bug
Fixes deletion of assigned assets through bulk delete
2025-02-22 12:59:37 +00:00
snipe
e0221301ff Increased text limit on notes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:56:25 +00:00
snipe
b0fa059a28 Merge pull request #16285 from marcusmoore/bug/sc-28148
Re-added ability to add notes to assets
2025-02-22 12:55:18 +00:00
snipe
3fb00a9fa9 Merge pull request #16293 from uberbrady/fix_default_docker_image
Updated default Dockerfile to handle newer PHP versions
2025-02-22 12:52:37 +00:00
snipe
3ef8b047ba Merge pull request #16294 from snipe/bug/sc-28474
Don’t delete avatar file on soft-delete
2025-02-22 12:52:18 +00:00
snipe
7a77de6ffe Don’t delete avatar file on soft-delete
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:49:04 +00:00
Brady Wetherington
5e85891b10 Updated default Dockerfile to handle newer PHP versions 2025-02-22 12:43:30 +00:00
snipe
934da0f630 Merge pull request #16291 from uberbrady/fix_tests_and_migrations_v8
Fix tests and fix migrations to always explicitly include nullable()
2025-02-22 12:21:56 +00:00
snipe
cca46ea9e0 Merge pull request #16292 from snipe/add_email_list_assigned_to_bulk
Added ability to send user inventory via bulk UI
2025-02-22 12:20:01 +00:00
snipe
bde034593b Updateed string
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:17:04 +00:00
Brady Wetherington
7e1295bac7 Fix tests and fix migrations to always explicitly include nullable() 2025-02-22 12:15:12 +00:00
snipe
d1cc0fcfac Added ability to send user inventory via bulk UI
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:07:54 +00:00
snipe
056fbefb16 Merge pull request #16290 from snipe/update_php_versions_for_tests
Removed php 8.1, added 8.4
2025-02-22 11:11:53 +00:00
snipe
83a848980f Removed php 8.1, added 8.4
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 11:11:01 +00:00
snipe
7b930357e4 Cast years to int
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 10:51:27 +00:00
snipe
bdab052f40 Fixed test name
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 10:51:16 +00:00
Brady Wetherington
2d1e9b237f Better tooltips on list views, in Bootstrap style 2025-02-21 13:23:19 +00:00
Brady Wetherington
1cff49116e Bump version numbers and upgrade requirements 2025-02-21 11:49:25 +00:00
Brady Wetherington
38c5f23a52 Merge branch 'v8' into develop 2025-02-21 11:15:44 +00:00
Marcus Moore
c6bee0c47a Fix test 2025-02-20 13:24:01 -08:00
Marcus Moore
ae7d7f7d22 Merge branch 'develop' into bug/sc-28148
# Conflicts:
#	routes/web.php
2025-02-20 13:23:55 -08:00
Marcus Moore
96ab828cec Fix indent 2025-02-20 13:05:42 -08:00
Marcus Moore
43f679a554 Revert some changes from #15525 2025-02-20 12:59:16 -08:00
Marcus Moore
f1bf9fcf5c Implement test 2025-02-20 12:51:08 -08:00
Marcus Moore
992b4c7d86 Remove old comment 2025-02-20 12:50:03 -08:00
Marcus Moore
39bb2c2adb Implement tests 2025-02-20 12:49:58 -08:00
Marcus Moore
41129829e6 Add frontend required validation 2025-02-20 12:43:51 -08:00
Marcus Moore
44503fc423 Use translation 2025-02-20 12:41:56 -08:00
Marcus Moore
0190ccea27 Finish implementing test 2025-02-20 12:40:05 -08:00
snipe
5b63eb5a15 Merge pull request #16272 from snipe/experiments/breadcrumbs
Experimental WIP - added breadcrumbs, route model binding for resource routes
2025-02-20 19:21:58 +00:00
snipe
54cc427ef5 Updated tests for new RMB behavior
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:28:46 +00:00
snipe
e0beed0fa3 Reapplied accessory gate
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:28:01 +00:00
snipe
d4b24e5e57 Exception handler exceptions - exception inception!
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:27:45 +00:00
snipe
671b64bc6b Fixed RMB for kits and fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:01:17 +00:00
snipe
75db0d9e66 Fixed parameter for audit
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:57 +00:00
snipe
b891992351 Nice language for audit/checkin screens accounting for null
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:35 +00:00
snipe
ddb72bf4d0 Added breadcrumbs to licenses routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:08 +00:00
snipe
6f071722a2 Fixed kit crimbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:59:50 +00:00
snipe
be9bd93588 More crombs, removed scan route that we don’t use
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:59:10 +00:00
snipe
44a7bdbfb5 Moved SAML gui settings routes to web.php
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:58:17 +00:00
snipe
0341335d14 Additional crombs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:48 +00:00
snipe
76f038d142 RMB for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:18 +00:00
snipe
3150ad50c9 RMB for audits
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:07 +00:00
snipe
80394ef788 Revert delete because route model binding + resources routes + soft deletes = sux0r
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 12:29:37 +00:00
snipe
8a70f09dd3 Temp “fix” RMB for soft-deleted users
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 12:19:31 +00:00
Godfrey M
a275391557 adds test for deleting assigned asset 2025-02-19 15:59:57 -08:00
Godfrey M
eaacf29d57 fix tests 2025-02-19 15:11:16 -08:00
snipe
441fdaa54a Merge pull request #16278 from marcusmoore/bug/sc-27234
Added better error handling around rendering barcodes
2025-02-19 20:54:24 +00:00
Marcus Moore
759c8c8f5c Catch TypeError in addition to Exceptions when rendering barcodes 2025-02-19 12:36:50 -08:00
snipe
6242296930 Remove the “View” part of the breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 19:30:13 +00:00
snipe
d330ef9919 Added crumbs and RMB for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 18:23:16 +00:00
snipe
0708af7d07 Made the help ring slightly less goofy looking
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 18:22:50 +00:00
Godfrey M
a534b488b2 prevents deletion of assigned assets in bulk deletion 2025-02-19 10:09:02 -08:00
snipe
3171c1b1c9 Added breadcrumbs for bulkaudit, requested, and import history
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 17:40:47 +00:00
snipe
2f2b879d98 Language refinement
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 17:40:12 +00:00
snipe
039f483ec8 Check for notes and cost before displaying them
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 16:57:24 +00:00
snipe
7f665e0005 De-uglifying the maintenances detail page
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 16:34:48 +00:00
snipe
292819afa5 Added maintenances crumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:29:06 +00:00
snipe
7a94b09017 Use MLB for kit group
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:07:14 +00:00
snipe
6b46d12d67 Added breadcrumbs on kits (sort of)
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:05:29 +00:00
snipe
e264907157 Added breadcrumbs on more web routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:05:12 +00:00
snipe
32b89e937c Fixed routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:56 +00:00
snipe
0e1dc8745c Wider custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:45 +00:00
snipe
129d44cc70 Made icon possible for dashboard/home
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:34 +00:00
snipe
11b746d801 UI tweak
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:19 +00:00
snipe
545445d584 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:07 +00:00
snipe
4d72fd8667 Added additional resource crumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:53 +00:00
snipe
fca62a14f9 Fixed asset presenter to link to the company directly
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:29 +00:00
snipe
c8f2d9806a Use route model binding on kits
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:15 +00:00
snipe
1ee5f28fca Added angle-right and house icon
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:02:59 +00:00
snipe
24a17b09a5 Fixed a few more tests and strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 09:03:41 +00:00
snipe
a617c0545e WIP license checkin
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:39:25 +00:00
snipe
eb7e24eeb0 Asset checkout with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:39:16 +00:00
snipe
22c58678c4 License checkout controller with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:38:55 +00:00
snipe
4beaf6b3ec Added item
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:38:40 +00:00
snipe
4c1856b91f Fixed wonky quote in HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:58 +00:00
snipe
9d299340da Checkout license modifications (this doesn’t work yet
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:39 +00:00
snipe
457228d033 Route model binding on more asset methods
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:06 +00:00
snipe
63f4e3cc89 More breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:36:52 +00:00
snipe
cd7135ea77 More test fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 06:19:50 +00:00
snipe
347eb2bdee Fixed route parameters and tests to match
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:56 +00:00
snipe
ecc0e76e7b Fixed route parameters for helper
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:39 +00:00
snipe
35a89de6dd Fixed handler for reports
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:26 +00:00
snipe
82d8e1b0a9 Added item back into edit
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:18:57 +00:00
snipe
5a7ffa5664 Sure, whatever I guess.
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:18:40 +00:00
snipe
55abd242f2 Don’t know why I need to compact this?
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:07:09 +00:00
snipe
217d65f64c More changes to the error message formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:47:51 +00:00
snipe
fa20eb4965 Add exception for hardware vs assets :(
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:41:01 +00:00
snipe
560311b883 Added ->with(‘item’) back in
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:37:34 +00:00
snipe
3954ff20b4 More tweaks to the controllers, more breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:29:31 +00:00
snipe
989082d719 Handle the not found errors with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:26:44 +00:00
snipe
644527c5a6 More resources to breadcrumb provider
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 02:49:21 +00:00
snipe
f7d213052a Route model binding for resource groups
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 02:49:05 +00:00
snipe
972bd1ef83 Tinkering with routes for breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 00:37:09 +00:00
Marcus Moore
cf0ce1c5ea Start to implement tests 2025-02-18 16:24:52 -08:00
Marcus Moore
3d69721af0 Scaffold tests 2025-02-18 16:16:00 -08:00
Marcus Moore
1995e1399e Start recording ip, user agent, and source 2025-02-18 16:04:53 -08:00
Marcus Moore
79d1147f20 Add validation 2025-02-18 15:46:52 -08:00
Marcus Moore
53c084c6c0 WIP: begin to store notes 2025-02-18 15:43:58 -08:00
Marcus Moore
c165e6f400 Formatting 2025-02-18 15:20:22 -08:00
Marcus Moore
25215fd3c9 WIP: begin migrating notes to ui controller 2025-02-18 15:20:06 -08:00
Brady Wetherington
a8231bc338 Merge branch 'develop' into v8 2025-02-18 22:40:27 +00:00
snipe
4d25e8f7f0 Merge pull request #16271 from snipe/localization/2024-02-18
Updated language strings
2025-02-18 22:26:02 +00:00
snipe
8368576dc9 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 22:18:39 +00:00
snipe
071b4d1e67 Merge pull request #16245 from marcusmoore/chore/migrate-form-open-pt5
Replace Form::open and Form::close pt5
2025-02-18 21:23:15 +00:00
snipe
1fe170e6a1 Merge pull request #16040 from Godmartinz/template_validate_error
Adds a null check to label templates, adds return types for validation methods
2025-02-18 21:00:10 +00:00
snipe
612a708c8d Merge pull request #16246 from marcusmoore/chore/migrate-form-open-pt6
Replace Form::open and Form::close pt6
2025-02-18 20:43:38 +00:00
snipe
580a4c476e Merge pull request #16244 from marcusmoore/chore/migrate-form-open-pt4
Replace Form::open and Form::close pt4
2025-02-18 20:42:44 +00:00
snipe
c9de9ebbab Merge pull request #16243 from marcusmoore/chore/migrate-form-open-pt3
Replace Form::open and Form::close pt3
2025-02-18 20:41:56 +00:00
snipe
3d0770973a Merge pull request #16242 from marcusmoore/chore/migrate-form-open-pt2
Replace Form::open and Form::close pt2
2025-02-18 20:41:16 +00:00
snipe
e814cd5a9e Merge pull request #16235 from marcusmoore/chore/migrate-form-open-pt1
Replace Form::open and Form::close pt1
2025-02-18 20:23:47 +00:00
Marcus Moore
e5f426ec64 Remove unneeded multipart/form-data 2025-02-18 12:19:32 -08:00
snipe
a1b0a30351 Merge pull request #16225 from marcusmoore/chore/remove-cols-from-textarea
Removed cols property from textarea component
2025-02-18 19:56:40 +00:00
snipe
c0f0f43dd7 Merge pull request #16188 from Godmartinz/translations-for-labels-n-ldap
Adds translations to LDAP  and Label settings pages
2025-02-18 19:56:14 +00:00
snipe
57c07a3687 Merge pull request #16270 from snipe/feature/sc-28365_ldap_text_update
Updated LDAP sync text
2025-02-18 19:28:18 +00:00
snipe
6de08f46fd Few more tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:26:36 +00:00
snipe
3554270366 Updated LDAP sync text
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:25:40 +00:00
snipe
029450bcbf Merge pull request #16269 from snipe/bug/sc-28437_fix
Scope API results by location ID
2025-02-18 19:05:29 +00:00
snipe
329fbf6a7c Scope results by location ID
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:01:16 +00:00
snipe
b7d0fccabc Merge pull request #16268 from snipe/fixed_16259_archived_assets_in_company_scope
Fixed #16259 - mismatch in asset count if archived assets are hidden
2025-02-18 16:35:01 +00:00
snipe
48ab94c15b Fixed query duplication for AssetsForShow scope
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 16:18:12 +00:00
snipe
ac907add83 Merge pull request #16082 from marcusmoore/chore/sc-28173
Replace calls to Form::text
2025-02-18 14:58:40 +00:00
snipe
3d47a8ba50 Fixed name format tests (#16236)
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 14:52:52 +00:00
snipe
452185be45 Merge pull request #16199 from akemidx/feature/sc-28271
Adding <Last Name.First Initial> as an option for usernames
2025-02-18 14:42:54 +00:00
Brady Wetherington
14feed61d8 Merge branch 'develop' into v8 2025-02-17 16:18:02 +00:00
snipe
02a8e17704 Merge pull request #16260 from snipe/fix_for_qr_on_old_label_engine
Fix for QR code on old label engine
2025-02-17 10:45:51 +00:00
snipe
7553ec3e27 Fixed equals
Signed-off-by: snipe <snipe@snipe.net>
2025-02-17 10:44:58 +00:00
Godfrey M
4c43a06eee add overdue asset to test 2025-02-13 11:19:49 -08:00
Godfrey M
25c8449e86 remove unused 2025-02-13 11:14:18 -08:00
Godfrey M
13e1f4a127 adds mailable 2025-02-13 11:09:39 -08:00
Godfrey M
ed96fd766c refactors audit notification to mail, adds test, ads check to scheduler 2025-02-13 11:08:53 -08:00
snipe
c8f82cbc2b Merge pull request #16250 from uberbrady/improve_tls_client_side_file_caching
Instead of saving TLS cache-files on save, cache them when used
2025-02-13 15:46:22 +00:00
Brady Wetherington
b7bd56daf7 Instead of saving TLS cache-files on save, cache them when used 2025-02-13 15:09:28 +00:00
snipe
393118f083 Merge pull request #16249 from snipe/flatten_api_return
Return flat JSON instead of transformed data
2025-02-13 14:28:41 +00:00
snipe
d3210c6d40 Return flat JSON instead of transformed data
Signed-off-by: snipe <snipe@snipe.net>
2025-02-13 14:16:32 +00:00
Marcus Moore
60d7232569 Remove unneeded Form::close from users index 2025-02-12 13:50:38 -08:00
Marcus Moore
2f1212fa1a Remove unneeded Form::close on view status label page 2025-02-12 13:49:37 -08:00
Marcus Moore
cc4d8f2a5b Migrate Form::close on security settings page 2025-02-12 13:47:15 -08:00
Marcus Moore
c0a3284fad Migrate Form::open and Form::close on saml settings 2025-02-12 13:46:42 -08:00
Marcus Moore
caff608e3c Migrate Form::open and Form::close on purge deleted records page 2025-02-12 13:41:44 -08:00
Marcus Moore
c48fa7c2cb Migrate Form::open and Form::close on localization page 2025-02-12 13:39:04 -08:00
Marcus Moore
14b25949b8 Migrate Form::close on ldap settings page 2025-02-12 13:36:48 -08:00
Marcus Moore
2df995c2c7 Remove unneeded Form::open on label settings page 2025-02-12 13:29:02 -08:00
Marcus Moore
ad182a96fa Migrate Form::open and Form::close on label settings 2025-02-12 13:28:40 -08:00
Marcus Moore
a728f38bd1 Migrate Form::open and Form::close on google settings page 2025-02-12 13:21:07 -08:00
Marcus Moore
894754e8dc Migrate Form::close on general settings page 2025-02-12 13:18:55 -08:00
Marcus Moore
d141675478 Migrate Form::open and Form::close on branding settings pagee 2025-02-12 13:17:59 -08:00
Marcus Moore
8bdd80e236 Migrate Form::open and Form::close on backups page 2025-02-12 13:12:45 -08:00
Marcus Moore
c422737525 Migrate Form::open and Form::close on asset tag settings page 2025-02-12 13:11:06 -08:00
Marcus Moore
fc55786ca2 Migrate Form::close on notification settings page 2025-02-12 12:50:37 -08:00
Marcus Moore
2949fdecdd Migrate Form::open and Form::close on unaccepted assets report page 2025-02-12 12:49:19 -08:00
Marcus Moore
d32163f881 Migrate Form::open and Form::close on custom report page 2025-02-12 12:43:51 -08:00
Marcus Moore
215fe501ac Migrate Form::open and Form::close on activity report page 2025-02-12 12:14:00 -08:00
Marcus Moore
ef3112e526 Add missing @csrf 2025-02-12 12:11:36 -08:00
Marcus Moore
8aa0135afa Migrate Form::open and Form::close in bulk users partial 2025-02-12 12:10:16 -08:00
snipe
ff1157a95e Merge pull request #16232 from Godmartinz/adds-expiring-notifications
Expiration notifcation switched to use Mailable
2025-02-12 20:07:24 +00:00
Godfrey M
e66b690c93 removed unnecessary base_path changes 2025-02-12 12:01:43 -08:00
Godfrey M
242fd00e8a remove commented dd 2025-02-12 11:55:28 -08:00
Godfrey M
c77a1faa69 moar unnecssary changes removed 2025-02-12 11:54:34 -08:00
Marcus Moore
540b609591 Migrate Form::open and Form::close in models bulk actions partial 2025-02-12 11:53:23 -08:00
Marcus Moore
ac5a409cdf Migrate Form::open and Form::close in locations bulk actions partial 2025-02-12 11:51:17 -08:00
Godfrey M
4cbc751dad removed unnecessary changes 2025-02-12 11:49:36 -08:00
Marcus Moore
1dc579ce71 Migrate Form::open and Form::close in asset bulk actions partial 2025-02-12 11:49:13 -08:00
Marcus Moore
37282fffff Remove unneeded Form::close on model show page 2025-02-12 11:45:09 -08:00
Marcus Moore
b3e98cb7eb Remove unneeded Form::close on model index page 2025-02-12 11:44:14 -08:00
Godfrey M
bd03d70937 adds test for expiring licenses 2025-02-12 11:43:22 -08:00
Marcus Moore
716161e626 Migrate Form::open and Form::close in upload file modal 2025-02-12 11:42:09 -08:00
Marcus Moore
93a67847ba Migrate Form::open and Form::close on asset view 2025-02-12 11:38:19 -08:00
Godfrey M
6873244e7e adds test for expiring asset notifications 2025-02-12 11:28:36 -08:00
Marcus Moore
c569a84f87 Migrate Form::open and Form::close on requested assets page 2025-02-12 10:52:32 -08:00
akemidx
1e07927e78 test created and passing 2025-02-11 19:35:55 -05:00
Marcus Moore
c4b8b85602 Migrate Form::open and Form::close on bulk audit page 2025-02-11 15:42:20 -08:00
Marcus Moore
464e4d11e9 Migrate Form::open and Form::close on quick scan checkin page 2025-02-11 14:24:38 -08:00
Marcus Moore
85e4a19f03 Migrate Form::open on asset audit page 2025-02-11 14:22:17 -08:00
Marcus Moore
6263d01c73 Migrate Form::close in previously changed views 2025-02-11 14:10:52 -08:00
Marcus Moore
967e646989 Migrate Form::open in depreciations view 2025-02-11 14:10:52 -08:00
Marcus Moore
e9d3b9dcde Migrate Form::open and Form::close in manage custom fields view 2025-02-11 14:10:52 -08:00
Marcus Moore
3065ba851e Migrate Form::open in custom fieldset view 2025-02-11 14:10:52 -08:00
Marcus Moore
80522a2505 Migrate Form::open in custom field view 2025-02-11 14:10:52 -08:00
Marcus Moore
532e6c1c1d Migrate Form::open in profile view 2025-02-11 14:10:52 -08:00
Marcus Moore
5cf314a314 Migrate Form::open in change password view 2025-02-11 14:10:52 -08:00
snipe
c08cfb9b73 Merge pull request #16226 from snipe/add_notes_to_locations_companies_etc
Fixed #16184 - added notes to locations, companies, categories, manufacturers and groups
2025-02-11 19:25:10 +00:00
snipe
61591633f8 Fixed layout sorta
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 19:23:04 +00:00
Godfrey M
9b5b58687d removed unused 2025-02-11 11:02:25 -08:00
Godfrey M
fb7bec4be4 adds expiring asset and license mail 2025-02-11 10:55:56 -08:00
snipe
9dba03646b Pointless rename
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 18:32:51 +00:00
snipe
ddd2ce07f3 Fixed branch from weird merge down
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 01:14:35 +00:00
snipe
3de5f5882c Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 01:07:41 +00:00
Marcus Moore
73e010434e Remove cols property 2025-02-10 16:43:39 -08:00
snipe
a9d6a5f618 Updated note partial to use generic notes text
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:39:46 +00:00
snipe
ef9cc4fceb Added notes to blades
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:39:26 +00:00
snipe
e104decf77 Added placeholder translation array
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:35:03 +00:00
snipe
96e38da875 Created migration
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:50 +00:00
snipe
ff95049f7c Added notes to factories
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:30 +00:00
snipe
63cb4e70bc Added notes to presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:10 +00:00
snipe
e6ae9cae6b Added notes to searchable and fillable attributes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:33:51 +00:00
snipe
1f1e1401cf Added location notes to importer
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:58 +00:00
snipe
af1159658d Added notes to transformers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:37 +00:00
snipe
4e2b22135a Added notes to UI controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:07 +00:00
snipe
4ee5a4c5c3 Added notes to API controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:31:50 +00:00
snipe
aa14cfe18d Merge pull request #16075 from marcusmoore/chore/migrate-textarea-helper
Convert Form::textarea to blade component
2025-02-11 00:14:23 +00:00
Marcus Moore
0797c4ac97 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/saml.blade.php
#	resources/views/settings/security.blade.php
#	resources/views/setup/user.blade.php
2025-02-10 15:57:41 -08:00
snipe
b4ea75f34f Merge branch 'master' into chore/migrate-textarea-helper 2025-02-10 23:47:13 +00:00
Marcus Moore
00e7795414 Merge branch 'develop' into chore/migrate-select-helper
# Conflicts:
#	resources/views/partials/forms/edit/company.blade.php
2025-02-10 15:44:02 -08:00
snipe
e37a990820 Merge remote-tracking branch 'origin/develop' 2025-02-10 22:42:58 +00:00
snipe
b54d68ebf1 Merge pull request #16212 from Godmartinz/ternary-checks-on-location-in-notifications
adds ternaries on check in/out hardware notifications
2025-02-10 22:28:36 +00:00
snipe
4ae2126ded Merge pull request #16213 from marcusmoore/chore/migrate-checkbox-helpers-p1
Replace calls to Form::checkbox pt1
2025-02-10 22:27:19 +00:00
snipe
c420670ebb Small fixes to accessories files handling
Signed-off-by: snipe <snipe@snipe.net>
2025-02-10 22:26:00 +00:00
Brady Wetherington
dae1f43359 Merge branch 'develop' into v8 2025-02-10 15:14:55 +00:00
Marcus Moore
77635c3737 Migrate Form::checkboxes on license edit view 2025-02-06 17:05:35 -08:00
Marcus Moore
b937b7e767 Migrate Form::checkboxes on asset history import page 2025-02-06 17:01:09 -08:00
Marcus Moore
38df5e8b07 Replace more Form::checkboxes 2025-02-06 15:52:23 -08:00
akemidx
d1cd670af5 oop forgot the user form bit 2025-02-06 18:05:22 -05:00
Marcus Moore
04e4b6c181 Replace Form::checkbox 2025-02-06 14:16:18 -08:00
Marcus Moore
9559c5a025 Replace Form::checkbox and inline label 2025-02-06 14:08:13 -08:00
Marcus Moore
42fa2e12db Replace Form::checkbox 2025-02-06 13:55:33 -08:00
Godfrey M
f41583fd59 adds ternary checks on locations before pulling names in notifications 2025-02-06 11:34:14 -08:00
snipe
b48704b3af Merge pull request #16209 from uberbrady/eliminate_preg_split_deprecation_warnings
Fixed #16208 - don't call preg_split() with a null
2025-02-06 13:30:53 +00:00
Brady Wetherington
de3ebfecfe Ensure we don't call preg_split() with a null as the second parameter 2025-02-06 13:24:39 +00:00
snipe
29311b1b5b Merge remote-tracking branch 'origin/develop' 2025-02-06 10:34:58 +00:00
snipe
b131227b71 Merge pull request #16207 from snipe/security/upgrade_papaparse
Upgraded papaparse to 5.5.1
2025-02-06 10:34:29 +00:00
snipe
ec45833cd8 Upgraded papaparse to 5.5.1
Signed-off-by: snipe <snipe@snipe.net>
2025-02-06 10:22:17 +00:00
snipe
4c2905b1f0 Merge pull request #16176 from marcusmoore/chore/migrate-form-radio
Replaced some calls to the Form::radio helper
2025-02-06 10:19:51 +00:00
snipe
6e51be6c57 Merge pull request #16178 from marcusmoore/chore/migrate-form-radio-helpers-pt1
Replaced calls to Form::radio helper on group create and edit pages
2025-02-06 10:19:35 +00:00
snipe
b195168c83 Merge pull request #16167 from Godmartinz/asset_controller_qr_check_fix
Adds qr code type check in getQRCode method
2025-02-06 10:18:34 +00:00
snipe
a722eca6aa Merge pull request #16179 from marcusmoore/chore/migrate-form-radio-helpers-bulk-hardware
Replaced calls to Form::radio helper on bulk hardware edit page
2025-02-06 10:18:16 +00:00
snipe
1f6428ee1c Merge pull request #16180 from marcusmoore/chore/migrate-form-radio-helpers-bulk-models
Replaced calls to Form::radio helper on bulk asset model edit page
2025-02-06 10:18:05 +00:00
snipe
ab10fb466c Merge pull request #16193 from marcusmoore/chore/migrate-label-helpers-pt3
Replace calls to Form::label pt3
2025-02-06 10:17:26 +00:00
snipe
dcabf90409 Merge pull request #16192 from marcusmoore/chore/migrate-label-helpers-pt2
Replace calls to Form::label pt2
2025-02-06 10:17:11 +00:00
snipe
27752f595c Merge pull request #16194 from marcusmoore/chore/migrate-label-helpers-pt4
Replace calls to Form::label pt4
2025-02-06 10:16:33 +00:00
snipe
c17598d4b4 Merge pull request #16195 from marcusmoore/chore/migrate-label-helpers-pt5
Replace calls to Form::label pt5
2025-02-06 10:16:17 +00:00
snipe
d74d9900da Merge pull request #16190 from marcusmoore/chore/migrate-label-helpers-pt1
Replace calls to Form::label pt1
2025-02-06 10:15:43 +00:00
snipe
5505c9ab67 Merge pull request #16196 from marcusmoore/chore/migrate-label-helpers-pt6
Replace calls to Form::label pt6
2025-02-06 10:14:55 +00:00
snipe
8d2ffea7df Merge pull request #16197 from marcusmoore/chore/migrate-label-helpers-pt7
Replace calls to Form::label in QuickStart
2025-02-06 10:06:41 +00:00
snipe
1233c939f8 Merge branch 'develop' into chore/migrate-label-helpers-pt7 2025-02-06 10:03:42 +00:00
snipe
46dd83c34e Merge pull request #16168 from Godmartinz/print_all_assigned_location_null_check
Added ternary check that asset has `asset status` before checking archived
2025-02-06 10:01:10 +00:00
snipe
639aa85353 Merge pull request #16198 from marcusmoore/chore/migrate-email-helpers
Replace call to Form::email
2025-02-06 09:57:53 +00:00
akemidx
008b6f1db2 lastname.first initial 2025-02-05 20:11:33 -05:00
Marcus Moore
f46ad4811e Migrate form email helper on user setup page 2025-02-05 16:44:09 -08:00
Marcus Moore
b39b24e6b9 Migrate form labels on user setup 2025-02-05 15:01:51 -08:00
Marcus Moore
7f0133a4d6 Migrate form labels on create supplier page 2025-02-05 14:42:07 -08:00
Marcus Moore
85bc8bc8f0 Migrate form label on create status label page 2025-02-05 14:40:20 -08:00
Marcus Moore
32e1d4b2ef Migrate form labels on security settings page 2025-02-05 14:39:16 -08:00
Marcus Moore
f8d5af836f Migrate form labels on saml settings page 2025-02-05 14:35:53 -08:00
Marcus Moore
19ceb3f5b7 Migrate form label on purge page 2025-02-05 14:29:49 -08:00
Marcus Moore
f346c55cf1 Migrate form labels on localization settings page 2025-02-05 14:29:49 -08:00
Marcus Moore
e797705dad Migrate form labels on google settings page 2025-02-05 14:29:49 -08:00
Marcus Moore
a331e14ef2 Migrate form labels on general settings page 2025-02-05 14:19:34 -08:00
Marcus Moore
d6b4c27302 Migrate form label on branding settings page 2025-02-05 14:14:50 -08:00
Marcus Moore
f8d7291923 Migrate form labels on asset tag settings page 2025-02-05 14:11:36 -08:00
Marcus Moore
b59674ab77 Migrate form labels on settings alert page 2025-02-05 13:48:50 -08:00
Marcus Moore
0620b8b163 Migrate form label in checkout select partial 2025-02-05 13:44:00 -08:00
Marcus Moore
f639d82693 Migrate form label in user select partial 2025-02-05 13:40:27 -08:00
Marcus Moore
13d2d41f0c Migrate form label in supplier select partial 2025-02-05 13:39:03 -08:00
Marcus Moore
015cd44136 Migrate form label in status select partial 2025-02-05 13:34:07 -08:00
Marcus Moore
4834f60a44 Migrate form label in phone input partial 2025-02-05 13:32:06 -08:00
Marcus Moore
3327e1d8f2 Migrate form label in asset model select partial 2025-02-05 13:30:14 -08:00
Marcus Moore
40e002911c Migrate form label in manufacturer select partial 2025-02-05 13:29:06 -08:00
Marcus Moore
03bcc3b73f Migrate form label in location select partial 2025-02-05 13:27:29 -08:00
Marcus Moore
f963df0658 Migrate form label in location profile select partial 2025-02-05 13:26:08 -08:00
Marcus Moore
0aa77d281f Replace calls to Form::label in license-select partial 2025-02-05 13:24:02 -08:00
Marcus Moore
0988255693 Replace calls to Form::label in (unused?) kit select 2025-02-05 13:23:10 -08:00
Marcus Moore
fb9e7cf5e1 Migrate form label in fax input partial 2025-02-05 13:19:22 -08:00
Marcus Moore
ecc1bd69b9 Migrate form label in department select partial 2025-02-05 13:19:16 -08:00
Marcus Moore
830f095a6e Migrate form label in datepicker partial 2025-02-05 13:16:28 -08:00
Marcus Moore
288f7e4e93 Migrate form label on consumable select 2025-02-05 13:12:52 -08:00
Marcus Moore
a205ae12a4 Migrate form label on (unsed?) company select partial 2025-02-05 13:11:49 -08:00
Marcus Moore
1866426f11 Migrate form label in category select partial 2025-02-05 13:02:36 -08:00
Marcus Moore
e4ab6c0c24 Migrate form label on asset select partial 2025-02-05 12:59:00 -08:00
Marcus Moore
189c148761 Migrate labels on address partial 2025-02-05 12:47:06 -08:00
Marcus Moore
8b7c1a195c Migrate label on accessory select partial 2025-02-05 12:41:35 -08:00
Marcus Moore
d77547aecf Migrate labels on slack component 2025-02-05 12:40:00 -08:00
Marcus Moore
478a5c0e1a Migrate labels on bulk audit pag 2025-02-05 12:12:43 -08:00
Marcus Moore
5c6757ecf6 Migrate labels on quick checkin page 2025-02-05 12:07:17 -08:00
Godfrey M
f2981cf12b adds translations to label settings 2025-02-05 10:55:05 -08:00
Godfrey M
c3310a0772 adds translations to LDAP settings page 2025-02-05 10:38:16 -08:00
Marcus Moore
fe485acd4a Swap Form::radio in bulk model edit view 2025-02-04 16:18:49 -08:00
Marcus Moore
fbe19738cb Swap Form::radio in bulk hardware edit view 2025-02-04 15:49:46 -08:00
Marcus Moore
d29a62a335 Simplify @checked 2025-02-04 13:50:08 -08:00
snipe
6cc2013102 Merge remote-tracking branch 'origin/develop' 2025-02-04 21:39:27 +00:00
snipe
39ce7b75ca Merge pull request #16175 from Godmartinz/channel-not-found-warning-added 2025-02-04 21:38:15 +00:00
Marcus Moore
f3959323ff Add required attribute to name field 2025-02-04 13:33:16 -08:00
Marcus Moore
0d62ab2ad4 Fix call to @checked 2025-02-04 13:31:28 -08:00
Godfrey M
cbf9239d86 adds channel not found warning 2025-02-04 11:21:56 -08:00
Marcus Moore
295875c45e Fix and replace remaining radios on bulk user edit page 2025-02-04 11:02:40 -08:00
snipe
5e363f7dd4 Merge pull request #16166 from Godmartinz/rollbar_none-qr-code 2025-02-04 16:16:00 +00:00
Godfrey M
6bb0927f26 remove unrelated change 2025-02-03 12:30:21 -08:00
Godfrey M
24bb679305 adds check that asset has asset status before checking archived 2025-02-03 12:24:22 -08:00
Godfrey M
ddc22b4d6b adds a check to see that qr code type is not none 2025-02-03 10:38:49 -08:00
Godfrey M
9a75131a98 removed old label artifact 2025-02-03 10:18:13 -08:00
Marcus Moore
26b4063435 Convert section items 2025-01-30 16:07:46 -08:00
Marcus Moore
8dd432c3a2 Convert section headings 2025-01-30 15:56:08 -08:00
Marcus Moore
0e390f1a9b Temporarily order properties 2025-01-30 15:54:27 -08:00
Marcus Moore
6fb83d66a2 Revert "Re-order parameters"
This reverts commit bf96688aef.
2025-01-30 15:46:22 -08:00
Marcus Moore
bf96688aef Re-order parameters 2025-01-30 15:37:05 -08:00
Marcus Moore
eb4aeb47c1 Replace Form::radio in top section of group permissions page 2025-01-30 15:36:38 -08:00
Marcus Moore
7cbb3f7e07 Add assertion 2025-01-30 11:48:55 -08:00
Marcus Moore
7e9c564d0b Simplify test 2025-01-30 11:47:43 -08:00
Marcus Moore
fc88b2487f Extract method 2025-01-30 11:44:37 -08:00
Marcus Moore
e94ee48f74 Extract helper 2025-01-30 10:37:11 -08:00
Marcus Moore
6a4a5d1380 Add translation 2025-01-30 10:35:31 -08:00
Marcus Moore
ab9e9b66d2 Reduce complexity 2025-01-29 16:27:18 -08:00
Marcus Moore
c15c338ffd Merge if/else 2025-01-29 16:25:37 -08:00
Marcus Moore
d1197d015c Add another case scenario 2025-01-29 16:24:43 -08:00
Marcus Moore
ce31ce477e Inline additional variables 2025-01-29 16:16:47 -08:00
Marcus Moore
78f9292555 Inline variable 2025-01-29 16:15:27 -08:00
Marcus Moore
4e7c6bd2cf Fix relationship 2025-01-29 16:14:09 -08:00
Marcus Moore
70aed45bfe Improve naming 2025-01-29 15:56:20 -08:00
Marcus Moore
e2805f4033 Add "Reminder" to subject line 2025-01-29 15:36:45 -08:00
Marcus Moore
d254a40e0a Scaffold tests 2025-01-29 15:21:10 -08:00
Marcus Moore
fdcb891cbb Improve test case 2025-01-29 15:20:56 -08:00
snipe
d906f3cf62 Merge pull request #16148 from spencerrlongg/bug/sc-27619 2025-01-29 21:05:08 +00:00
Godfrey M
16d322d70e fix translation 2025-01-29 10:38:30 -08:00
Godfrey M
2163312997 adds translations for branding and general settings 2025-01-29 10:35:26 -08:00
spencerrlongg
0defed9abe add nullsafe 2025-01-29 11:27:02 -06:00
Godfrey M
0dfb71cfe5 added some translations to branding and general setrting 2025-01-28 11:56:10 -08:00
Marcus Moore
ac925af3d0 Replace a few radio inputs on bulk user edit page 2025-01-27 13:50:22 -08:00
Marcus Moore
4f08b2360c Migrate radios on custom report page 2025-01-27 13:36:59 -08:00
Godfrey M
1c67d6802d added testing to Api check in, renamed other test method 2025-01-27 12:18:24 -08:00
snipe
fd60ce1198 Merge pull request #16140 from marcusmoore/chore/sc-28233 2025-01-27 19:28:41 +00:00
Marcus Moore
00cdb13803 Convert remaining Form:hidden in labels view 2025-01-27 11:23:01 -08:00
Marcus Moore
ef6d747b37 Convert some Form:hidden in labels view 2025-01-27 11:15:09 -08:00
Marcus Moore
e26abb8684 Replace Form::hidden with @csrf 2025-01-27 11:07:19 -08:00
Tobias Regnery
4e0bcac1a1 Furhter validation for scoped locations
There is a new validator introduced that checks on object update (assets, users, etc.) if the company matches the locations company.
In case of the creation of a new location it must be checked that the parent matches the own company.
On updating a location a check for every related object must be made to see if the company matches the location.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2025-01-24 11:12:11 +01:00
Tobias Regnery
6921df9334 Check for inconsistencies before activating scoped locations
Before activating scoped location all locations and their related objects will be checked.
If there are locations with different companies than the related objects error out.

Because this operation is quite slow, bail out on the first inconsistent entry.
There is a new artisan command introduced that checks every location.

Depending on the size of the database, this will take very long.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2025-01-23 15:26:04 +01:00
Marcus Moore
82801242d3 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/alerts.blade.php
2025-01-22 14:54:53 -08:00
snipe
e53ed2319c Merge pull request #16118 from marcusmoore/fixes/undefined-key-in-asset-observer 2025-01-22 22:30:55 +00:00
Marcus Moore
8f512e5941 Replace isset with the more appropriate array_key_exists 2025-01-22 14:28:35 -08:00
Marcus Moore
8a1b6b0684 Add isset check 2025-01-22 14:15:35 -08:00
snipe
5ac6caf257 Merge remote-tracking branch 'origin/develop' 2025-01-22 21:49:55 +00:00
snipe
36f460d32b Default to localStorage for bootstap table cookies
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 21:48:03 +00:00
Godfrey M
5da8c86ec7 fix license query for bulk licenses checkin for assets 2025-01-22 10:55:41 -08:00
snipe
802fcbafa0 Merge pull request #16116 from marcusmoore/bug/sc-20259 2025-01-22 18:50:12 +00:00
Godfrey Martinez
10a2d59ec1 Merge pull request #27 from Godmartinz/checkin_non_reassignable_license_cleanup
adds bulk check in of unreassinable licenses, cleans up methods used for counting.
2025-01-22 10:49:47 -08:00
Godfrey M
34e8360b10 moves counts to licenses, allows bulk check in of unreassignable licenses 2025-01-22 10:46:28 -08:00
Marcus Moore
1098b8cd9d Avoid trying to divide by zero 2025-01-22 10:21:30 -08:00
Marcus Moore
da8999f59a Add failing test 2025-01-22 10:21:18 -08:00
snipe
bebc1f4d0d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-01-22 17:31:17 +00:00
snipe
1212267da3 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 17:30:41 +00:00
snipe
d696ed8a5a Merge pull request #16107 from marcusmoore/chore/migrate-password-helper 2025-01-22 17:28:23 +00:00
Marcus Moore
c3d17c5727 Remove value for readonly 2025-01-22 09:27:40 -08:00
snipe
cb25d0f2f3 Merge pull request #16115 from snipe/localization/2025-01-22 2025-01-22 17:21:54 +00:00
snipe
be535671bc Updated language files
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 17:09:41 +00:00
snipe
63838f6e74 Merge pull request #16108 from marcusmoore/chore/migrate-form-submit-helper 2025-01-22 13:16:24 +00:00
Marcus Moore
5ddf0dd789 Migrate form submit helper 2025-01-21 16:36:22 -08:00
Marcus Moore
b003890dd2 Migrate password helpers 2025-01-21 16:14:20 -08:00
Godfrey Martinez
ca259ee4c3 Merge pull request #26 from Godmartinz/checkin_non_reassignable_license_cleanup
moved methods to licenseSeat model, clean up code, removed unused namespaces etc
2025-01-21 11:47:42 -08:00
Godfrey M
2143952a1e removed unused models, castged unreassignable_seat, clean up in general 2025-01-21 11:43:47 -08:00
Marcus Moore
31097bdc37 Formatting 2025-01-21 10:25:53 -08:00
Marcus Moore
e733d2a5d0 Backfill test 2025-01-21 10:24:15 -08:00
Marcus Moore
6a35fa7ba3 Account for missing asset model 2025-01-21 10:14:27 -08:00
Marcus Moore
370666b5bd Fix indenting 2025-01-21 10:12:56 -08:00
snipe
8db8d4beba Merge pull request #16105 from snipe/use_url_fragment_for_file_uploads 2025-01-21 18:10:10 +00:00
snipe
d5309c7d94 Added fragment to uploads for redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-01-21 18:06:00 +00:00
snipe
fb857ccf56 Merge remote-tracking branch 'origin/develop' 2025-01-20 21:07:04 +00:00
snipe
2668960bb9 Merge pull request #16102 from snipe/added_serial_search_to_activity_report 2025-01-20 21:06:23 +00:00
snipe
8e4878fac0 Added serial as relation search
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 21:00:01 +00:00
snipe
d4ef0f8aa8 Merge remote-tracking branch 'origin/develop' 2025-01-20 20:26:33 +00:00
snipe
752d89d177 Merge pull request #16101 from snipe/standarize_modelfile_api 2025-01-20 20:23:50 +00:00
snipe
0d7304eb8b Use transformer for model files
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 20:20:35 +00:00
snipe
48ff7cdbe8 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 17:00:02 +00:00
snipe
ca446ad7df Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-01-20 16:59:55 +00:00
snipe
5afcd8ddb3 Merge pull request #16099 from snipe/add_id_to_locations_importer
Fixed #16097 - added location ID to location importer
2025-01-20 16:58:24 +00:00
snipe
5273408631 Check for matching ID
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:53:48 +00:00
snipe
713c9fdd6f Derp
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:46:22 +00:00
snipe
0a5c41ce23 Log error
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:42:53 +00:00
snipe
48a916ab77 Check that the ID has a value
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:38:31 +00:00
snipe
67ab602e3b Merge pull request #16090 from snipe/fixes/s3_support_for_eulas
Fixed #16000 - add S3 support for eula PDF downloads
2025-01-20 16:26:11 +00:00
snipe
801328ec42 Fixed #16097 - allow location update by ID in importer
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:23:13 +00:00
snipe
4fe83467ee Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:20:31 +00:00
Brady Wetherington
dd34f07989 Fix custom translator for new Laravel 11 syntax 2025-01-20 15:24:06 +00:00
snipe
27a7a89990 Updated bootstrap tables to 1.24.0
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 15:06:00 +00:00
snipe
5dafa3c5c9 Merge remote-tracking branch 'origin/develop' 2025-01-20 15:00:01 +00:00
Brady Wetherington
6b242f47e4 Initial work at putting together a v8 branch 2025-01-20 14:54:28 +00:00
snipe
446c7fb483 Merge pull request #16096 from uberbrady/detect_csv_encodings_v2 2025-01-20 14:42:07 +00:00
Brady Wetherington
17c9c93456 Made composer changes for v8 2025-01-20 14:04:57 +00:00
Brady Wetherington
bbb2af7f53 remove log messages 2025-01-20 13:52:26 +00:00
Brady Wetherington
d65206c7fe Move tests to UI-side 2025-01-20 13:49:42 +00:00
snipe
954ffbfcaf Merge remote-tracking branch 'origin/develop' 2025-01-17 19:11:18 +00:00
snipe
327491c3a4 Merge pull request #16091 from snipe/hide_password_reset_if_ldap 2025-01-17 19:09:23 +00:00
snipe
02eeb7f916 Added extrab option in bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 19:04:23 +00:00
snipe
e9ad43afbe Better hide reset password functionality for LDAP users
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 18:51:08 +00:00
snipe
434068a2ed Fixes #16000 - add S3 support for eula PDF downloads
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 17:49:19 +00:00
snipe
b6f05bff1f Merge branch 'develop' into feature/locations_with_companies 2025-01-17 17:18:17 +00:00
snipe
7f5ea30904 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 17:09:00 +00:00
snipe
53b6ccbac0 Merge remote-tracking branch 'origin/develop' 2025-01-17 17:07:44 +00:00
snipe
7e65d68392 Merge pull request #16089 from snipe/fixes/15017_card_view
Fixes #15017 - card view for mobile
2025-01-17 17:04:04 +00:00
snipe
b3d35beeb9 Fixes #15017 - card view for mobile
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:58:30 +00:00
snipe
eaa0e9d1fa Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:38:46 +00:00
snipe
fed7c2dc16 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:38:04 +00:00
snipe
79951c3f17 Set support footer to on in reset demo script
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:37:00 +00:00
snipe
221ffb446c Fixed #15946 - added comtent type to webhook test
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:36:43 +00:00
Godfrey M
0eb34cb979 adds period to translation 2025-01-16 13:24:32 -08:00
Godfrey M
79a4c83879 add spaces 2025-01-16 13:23:16 -08:00
snipe
57f80290a1 Merge pull request #16081 from marcusmoore/fixes/zerofill-count-on-setup 2025-01-16 21:22:02 +00:00
Godfrey M
6bab6e7151 remove unintended change 2025-01-16 12:27:01 -08:00
Godfrey M
d217c2e295 last rename 2025-01-16 12:24:32 -08:00
Marcus Moore
4b2ede7a71 Use 0 for zerofill_count if nothing provided 2025-01-16 12:20:14 -08:00
Godfrey M
52bf0faaa5 renamed unassignable to reassignable_seat 2025-01-16 12:19:59 -08:00
Godfrey M
3f3f2bfc61 fixed factory and test 2025-01-16 12:14:03 -08:00
Godfrey M
f050864fb4 renamed dead to unassigned, replaced 0 and 1 with true and flase 2025-01-16 12:12:14 -08:00
Godfrey M
db11fc35f4 fixed typo, fixed variable name 2025-01-16 12:00:49 -08:00
Godfrey M
f47a2b10c0 updated column name, updated Api license checkin and out 2025-01-16 11:53:15 -08:00
snipe
5e465fa417 Merge remote-tracking branch 'origin/master' into develop 2025-01-16 19:06:02 +00:00
snipe
de5d66f5d2 Comment out ad-hoc note button for now
Signed-off-by: snipe <snipe@snipe.net>
2025-01-16 19:05:52 +00:00
Godfrey M
344b4e7d60 fixes test to check if checked in licenses is unavailable 2025-01-16 09:46:03 -08:00
Brady Wetherington
a50c8c6269 Automatically detect character encoding of CSV files when processsing them
to handle non-UTF-8 file types. Added a new test case and enhanced the test
rigs to be able to write non-UTF-8 files.

Final cleanup
2025-01-16 17:03:37 +00:00
Marcus Moore
cb56f89954 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/alerts.blade.php
2025-01-15 16:54:10 -08:00
Marcus Moore
96379d0a62 Use provided zerofill_count 2025-01-15 16:39:50 -08:00
Marcus Moore
68988524d6 Replace Form::text in certain views 2025-01-15 16:31:16 -08:00
Marcus Moore
c278900581 Replace Form::text in certain views 2025-01-15 15:58:33 -08:00
Godfrey M
7a23372489 adds migration for column unavailable, changes logic to utlize value 2025-01-15 15:36:12 -08:00
snipe
bbc9ed5778 Fixed audit date default on bulk audit
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:28:50 +00:00
snipe
1d0c156d2e Increased due for checkin warning
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:12:18 +00:00
snipe
7de5e2e7ef One more audot field increase
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:11:22 +00:00
snipe
8d935b34eb Fixed audit interval input width
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:07:53 +00:00
snipe
9830959f11 Fixed input width on audit interval
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:07:15 +00:00
Marcus Moore
8e790fdc47 Replace Form::text in certain views 2025-01-15 13:37:00 -08:00
Marcus Moore
0ef20c524f Replace Form::text in certain views 2025-01-15 13:01:32 -08:00
Marcus Moore
5ccaf2c23e Replace Form::text in certain views 2025-01-15 12:23:43 -08:00
Marcus Moore
bec9511df1 Add more spacing for input values to be displayed 2025-01-15 12:10:05 -08:00
Marcus Moore
017948c3bb Replace Form::text in certain views 2025-01-15 12:07:33 -08:00
Marcus Moore
1cb72e3e9c Replace Form::text in certain views 2025-01-15 11:53:22 -08:00
Marcus Moore
e45f563b50 Convert Form::textareas to blade component 2025-01-14 13:16:31 -08:00
Godfrey M
69d255f584 adds validation rules for label names 2025-01-14 12:07:59 -08:00
Godfrey Martinez
dd08642a7c Merge pull request #25 from Godmartinz/template_validate_error_p2
remove try catch, add validation rules for label template
2025-01-14 09:52:09 -08:00
Godfrey M
3ac0877418 remove try/catch, add rules for template 2025-01-14 09:50:43 -08:00
snipe
37b39956b5 Merge pull request #16071 from snipe/bug/sc-28149 2025-01-14 14:35:24 +00:00
snipe
9a4fd81c70 Use correct icon for ad-hoc notes on assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-14 14:34:17 +00:00
snipe
0bb2e98af3 Built assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-14 12:33:59 +00:00
snipe
1c8d94c953 Merge pull request #15525 from akemidx/updated_ad_hoc_notes 2025-01-14 11:33:21 +00:00
Marcus Moore
9573428201 Introduce textarea component 2025-01-13 16:34:12 -08:00
Marcus Moore
abb50fcd09 Delete unused partials 2025-01-13 16:21:19 -08:00
Marcus Moore
3fadeebd82 Convert additional Form::select to blade component 2025-01-13 16:20:02 -08:00
Marcus Moore
9a043da005 Convert additional Form::select to blade component 2025-01-13 16:16:49 -08:00
Marcus Moore
3eb307a019 Convert additional Form::select to blade component 2025-01-13 15:58:15 -08:00
Marcus Moore
888c96718c Convert additional Form::select to blade component 2025-01-13 15:38:51 -08:00
Marcus Moore
bc3f236b86 Weaken comparsion so string and int keys match 2025-01-13 15:38:45 -08:00
Marcus Moore
1f4cc0a4b4 Convert additional Form::select to blade component 2025-01-13 15:23:43 -08:00
Godfrey M
9da15a8e58 get button color correct 2025-01-13 14:44:26 -08:00
Godfrey M
50e0e4a07b remove unrelated change 2025-01-13 14:37:03 -08:00
Godfrey M
5e1562ae4c adds count on tabs and reports and index 2025-01-13 14:31:54 -08:00
snipe
ca11efd3ee Merge pull request #16036 from Godmartinz/unaccepted_assets_reports_memory_fix 2025-01-13 22:23:30 +00:00
snipe
4a6a94a50e Merge pull request #16010 from AnouarTouati/dev-container-fixes 2025-01-13 22:23:13 +00:00
Godfrey M
8a0ed49623 allows checkin of unreassignable license seats 2025-01-13 13:35:48 -08:00
Marcus Moore
589ec3a564 Convert additional Form::select to blade component 2025-01-13 13:08:59 -08:00
snipe
2d65b38155 Merge pull request #16011 from AnouarTouati/dev-docker-improv 2025-01-13 21:00:04 +00:00
Marcus Moore
2206b0a699 Convert additional Form::select to blade component 2025-01-13 12:50:18 -08:00
Marcus Moore
d74454620a Convert Form::select to blade component 2025-01-13 12:45:49 -08:00
Marcus Moore
ed0cec5ba6 Introduce select component 2025-01-13 12:17:01 -08:00
snipe
99526cfc2c Remove mcrypt and legacy recrypter
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 19:54:00 +00:00
snipe
587449ef97 Merge pull request #15981 from akemidx/bug/sc-27551 2025-01-13 17:35:58 +00:00
snipe
06ffac9d7d Merge pull request #16046 from uberbrady/ldap_asset_location_switch_fix 2025-01-13 17:33:13 +00:00
snipe
e32ed03f66 Merge pull request #16061 from snipe/moved_keywords_on_admin_settings 2025-01-13 17:10:01 +00:00
snipe
a7543b407f Added a few more words
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 17:07:22 +00:00
snipe
98b1ba1e39 Moved keywords in lang file
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 17:04:48 +00:00
snipe
e03ed7567a Merge pull request #15747 from NebelKreis/feature/custom-data-options-for-2d-barcode 2025-01-13 15:20:56 +00:00
Nebel
9f0581275b Merge branch 'develop' into feature/custom-data-options-for-2d-barcode 2025-01-13 15:49:32 +01:00
snipe
3f5c166417 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-01-13 13:59:41 +00:00
snipe
cf091377b6 Add @brlin-tw as a contributor 2025-01-13 13:59:34 +00:00
snipe
0cc7a7014f Merge pull request #16053 from brlin-tw/patch-1
Fixed #16054: fix incorrect compose service name in the APP_KEY generation command of the Docker env file
2025-01-13 13:59:05 +00:00
snipe
4790ad53e3 Updated font-awesome to 6.7.2
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 13:57:45 +00:00
snipe
62dc075834 Add @aHVzY2g as a contributor 2025-01-13 13:55:28 +00:00
snipe
41da04cd22 Merge pull request #16018 from aHVzY2g/patch-3 2025-01-13 13:55:04 +00:00
Marlon Spangenberg
0c4fc56b80 increased label/field size to 2.5, reduced supported fields to 3 2025-01-13 12:20:56 +01:00
Marlon Spangenberg
907f0553d4 moved label value into the same line, changed label font to freemono 2025-01-13 12:14:30 +01:00
snipe
224f04db6c Merge pull request #16050 from Godmartinz/inactive-slack-hook
Adds try/catch around notification failing with an inactive webhook for better user experience
2025-01-10 11:23:41 +00:00
snipe
f0bcf78941 Merge pull request #16051 from marcusmoore/testing/checkoutable-acceptance-factory-fix
Update related asset when checkout acceptance created via factory
2025-01-10 11:22:50 +00:00
林博仁 Buo-ren Lin
c08a4a2b0a Fixed #16054: fix incorrect compose service name in the APP_KEY generation command of the Docker env file
This resolves the following error:

```
$ docker compose run --rm snipe-it php artisan key:generate --show
no such service: snipe-it
```

and is also how it is done in the documentation.

Fixes #16054.

Refer-to: APP_KEY | Docker | Snipe-IT documentation <https://snipe-it.readme.io/docs/docker#app_key>
Signed-off-by: Buo-ren Lin (OSSII) <buoren.lin@ossii.com.tw>
2025-01-10 11:29:49 +08:00
Marcus Moore
8597984787 Update asset's assigned_to and assigned_type after creating 2025-01-09 15:09:57 -08:00
Godfrey M
001ccf1ce9 adds translation string instead of hardcoded message 2025-01-09 14:47:07 -08:00
Godfrey M
082a974ee3 changed from redirect with error to with warning 2025-01-09 14:26:54 -08:00
Godfrey M
152c23b8f3 changed log from warning to error 2025-01-09 12:55:25 -08:00
Godfrey M
b635822a85 add try/catch around notification failing for inactive slack hooks 2025-01-09 12:51:54 -08:00
snipe
ec85e4b5b0 Upgrade less from 4.2.0 to 4.2.1 #15996
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 20:42:04 +00:00
snipe
1acb7e0fe4 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-01-09 20:38:47 +00:00
snipe
5914004a57 Add @AnouarTouati as a contributor 2025-01-09 16:13:05 +00:00
snipe
c5afc66d46 Merge pull request #16009 from AnouarTouati/prod-docker-fixes 2025-01-09 16:12:37 +00:00
snipe
bc69660247 Merge pull request #16049 from snipe/localization/update_strings-2025-01-09 2025-01-09 16:02:03 +00:00
snipe
71c7c64fde Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 15:54:51 +00:00
snipe
c284ac5287 Merge pull request #16047 from snipe/bug/sc-28054 2025-01-09 15:19:13 +00:00
snipe
639afe5b9b Check for blank OR null on formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 15:11:22 +00:00
Brady Wetherington
049b9c542b Conditionally update assets when user's location moves via LDAP 2025-01-09 13:43:59 +00:00
Godfrey M
0118504cd3 adds redirect to render and save if template is null 2025-01-08 15:32:23 -08:00
Godfrey M
f4e69679ca add a try catch around template validation 2025-01-08 12:13:31 -08:00
Godfrey M
ce7a8ad808 add a space 2025-01-08 09:48:45 -08:00
Godfrey M
c17c011488 checks if template is null, adds return types for validation methods 2025-01-08 09:47:20 -08:00
Godfrey M
92762896ef moar removal 2025-01-07 15:10:46 -08:00
Godfrey M
c699baf519 removed commented out code, and unrelated crap 2025-01-07 15:10:00 -08:00
Godfrey M
97b765b5cc improved reports query, could be further optimized 2025-01-07 15:06:09 -08:00
snipe
40b41e646d Merge pull request #16033 from Godmartinz/barcode-fix 2025-01-07 19:59:30 +00:00
snipe
63853db450 Merge pull request #16035 from marcusmoore/fixes/unaccepted-assets-reminder 2025-01-07 19:58:23 +00:00
Marcus Moore
48dd3252cb Fix parameter order 2025-01-07 11:47:16 -08:00
snipe
ee6f60e63c Merge pull request #16034 from Godmartinz/fix-locale-check 2025-01-07 19:00:32 +00:00
Godfrey M
f6abf90ba0 fix locale check 2025-01-07 10:51:48 -08:00
Godfrey M
83ee0e0fb6 untangled code visibility from each label engine 2025-01-07 10:37:59 -08:00
Godfrey M
94f44d1b77 fix label type values in db and defaults. update help text 2025-01-07 10:00:52 -08:00
Godfrey M
e12c7473f8 tinkering with the polymorphic eager load 2025-01-07 09:08:36 -08:00
snipe
407d69b370 Merge pull request #16031 from snipe/make_backups_more_configurable 2025-01-07 11:25:17 +00:00
snipe
774e795d97 Pull backup:clean settings into config
Signed-off-by: snipe <snipe@snipe.net>
2025-01-07 11:17:43 +00:00
snipe
f698f74d3e Merge pull request #16028 from marcusmoore/fixes/report-template-column
Fixed migration causing issues with mariadb
2025-01-06 22:58:30 +00:00
Marcus Moore
80f9159f4d Change options to text type 2025-01-06 14:29:18 -08:00
Godfrey M
0ec25d55a0 Merge branch 'develop' into unaccepted_assets_reports_memory_fix 2025-01-06 12:28:17 -08:00
Godfrey M
bb03e00279 fix deprecation on asset obs get unaccept report to populate 2025-01-06 11:26:45 -08:00
snipe
4d3db2ab44 Merge pull request #15919 from Godmartinz/table_dropdownmenu-fix
Removed the `table-responsive` div from several index blades
2025-01-06 18:11:19 +00:00
snipe
c3d52af546 Merge pull request #16024 from snipe/fixes/#15977
Fixed  #15977 - Set order by on companies
2025-01-06 16:12:42 +00:00
snipe
9672a13402 Set order by on companies
Signed-off-by: snipe <snipe@snipe.net>
2025-01-06 16:11:18 +00:00
snipe
9564f7fdb8 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-06 12:46:17 +00:00
aHVzY2g
eba1f03363 Added: TZe_24mm_D.php modified TZe_24mm_A that includes 1D code
New label format for TZe_24mm that includes all fields of TZe_24mm_A with the addition of the 1D code at the bottom of the label.
2025-01-03 11:10:44 +01:00
snipe
c7ca4d061f Merge pull request #16013 from ubc-cpsc/bugfix/CVE-2024-56521-tcpdf
Fixes tecnickcom/tcpdf security CVEs
2024-12-30 23:22:32 +00:00
Joël Pittet
115f08ee49 Fixes tecnickcom/tcpdf security CVES: CVE-2024-56522, CVE-2024-56527, CVE-2024-56519, CVE-2024-56521 2024-12-30 13:59:03 -08:00
Anouar Touati
e33c680679 Improvement: Change the logging channel to storage/logs/laravel.log file in dev container 2024-12-29 11:13:47 -05:00
Anouar Touati
1e8ec783b4 following docs for prod docker without specifying APP_VERSION will now get latest version as doc says 2024-12-29 11:05:02 -05:00
Anouar Touati
a6ed958687 Fixed: dev dependencies are not installed in dev container 2024-12-29 11:02:09 -05:00
Anouar Touati
4354f50168 Fixed: Debug mode is not enabled in dev container 2024-12-29 11:02:09 -05:00
snipe
8fc1227974 Merge pull request #16003 from snipe/asset_maintenance_api_fix
Check for valid asset before accessing properties
2024-12-26 10:31:47 +00:00
snipe
d410f168bd Removed extra checks, since we already check higher up
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:28:27 +00:00
snipe
b38f9ad33c Updated return types
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:18:00 +00:00
snipe
f8311815ee Check for valid asset before accessing properties
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:17:45 +00:00
snipe
3edb501973 Fixed typo sanitze to sanitize
Signed-off-by: snipe <snipe@snipe.net>
2024-12-25 20:45:19 +00:00
snipe
49918d3302 Merge pull request #15992 from marcusmoore/fixes/reset-demo-command
Fixed reset demo command
2024-12-19 23:24:37 +00:00
Marcus Moore
876ab44a16 Update settings property keys 2024-12-19 15:18:27 -08:00
snipe
15296d2b1c Merge pull request #15714 from akemidx/saving_custom_report_template
Saved Custom Report Templates
2024-12-19 22:43:59 +00:00
snipe
1434522149 Merge pull request #15912 from marcusmoore/bug/harden-checkout-validation-v2
Harden asset checkout validation
2024-12-19 22:42:06 +00:00
snipe
23af5fb06e Merge pull request #15964 from marcusmoore/testing/accessories-ui
Added Accessory UI tests
2024-12-19 22:40:34 +00:00
snipe
6b8c1eb523 Merge branch 'develop' into testing/accessories-ui 2024-12-19 22:38:04 +00:00
snipe
0984194ec6 Merge pull request #15965 from marcusmoore/testing/consumable-ui
Added Consumable UI tests
2024-12-19 22:36:47 +00:00
snipe
26264e1d55 Merge branch 'develop' into testing/consumable-ui 2024-12-19 22:34:10 +00:00
snipe
dc5dedd5a3 Merge pull request #15975 from marcusmoore/testing/license-checkin
Added tests around license checkin
2024-12-19 22:33:03 +00:00
snipe
d49bfb562a Merge branch 'develop' into testing/license-checkin 2024-12-19 22:29:31 +00:00
snipe
f90dd9d74d Merge pull request #15976 from marcusmoore/testing/ui-render
Added simple front end render tests
2024-12-19 22:27:35 +00:00
snipe
8d24c0af0d Merge pull request #15982 from spencerrlongg/bug/sc-27228
Update Checkout Button Permission for Predefined Kits
2024-12-19 22:25:51 +00:00
snipe
174a01cb6b Merge pull request #15991 from snipe/added_some_sorting_on_audit_report
Added a few order options on audit report
2024-12-19 22:24:57 +00:00
snipe
360e0ff534 Added a few order options on audit report
Signed-off-by: snipe <snipe@snipe.net>
2024-12-19 22:19:33 +00:00
snipe
4f2721e93f Merge pull request #15986 from Godmartinz/fix-settings-seeder
Renames variables to match columns for label settings
2024-12-19 19:06:28 +00:00
snipe
0dce3b8b8c Merge pull request #15987 from spencerrlongg/bug/sc-27192
Add `string` to Password Reset Username Rules
2024-12-18 20:09:14 +00:00
spencerrlongg
5042c2b30a oops, rm dump 2024-12-18 13:58:18 -06:00
spencerrlongg
b45cf6124f add note 2024-12-18 13:57:18 -06:00
Godfrey M
c8f280ac90 change barcode column names in seeder 2024-12-18 09:50:55 -08:00
spencerrlongg
7eb936883a rm note 2024-12-17 16:38:29 -06:00
akemidx
c3b5a92a48 added builder 2024-12-17 17:11:52 -05:00
spencerrlongg
eb054897d6 Remove leftover testing logic and fix checkout permissions
Removed console logs and temporary testing code from the bootstrap-table view. Updated the transformer to correctly check checkout permissions against the Asset class instead of PredefinedKit.
2024-12-17 16:06:10 -06:00
akemidx
f6dbda4056 fixing count to not used trashed 2024-12-17 17:03:46 -05:00
akemidx
5992d2a1d2 adding to controller 2024-12-17 15:43:13 -05:00
Marcus Moore
a53976967a Use correct id 2024-12-17 10:31:35 -08:00
Marcus Moore
1be7508340 Add simple tests to ensure views render 2024-12-16 17:45:10 -08:00
Marcus Moore
af135fa42c Add permissions property to group factory 2024-12-16 17:37:58 -08:00
Marcus Moore
7aa5195e87 Add tests for license checkin 2024-12-16 14:39:24 -08:00
snipe
04c3481734 Merge pull request #15973 from uberbrady/next_try_accessories_to_locations_rebased
Next try accessories to locations rebased
2024-12-16 20:25:25 +00:00
Brady Wetherington
582b462326 Removed inadvertently added files. 2024-12-16 16:55:54 +00:00
snipe
b233715796 Fixed property
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
b93fc80011 Fixed admin -> adminuser property
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
41a6b34768 Added new test
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
17a6a871ae Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
5fceef1dc3 Updated routes with new endpoints
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
9b04d2e51c Updated route in view
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
51b426f0b4 Added accessory transformer to assets transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
021c4f2598 Added assets endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
ac96b8d4ae Added assignedAccessories method
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
bc8719e336 Specify created_by in the API call as well
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
bd38d64e66 Removed create() method
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
74b5d6d12b Updated transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
ddd11939a5 No need to include assigned_to
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
3caa5f2042 Fixed user_id to created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
5226d507d4 Updated route
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
274b659905 Added new route
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
a0b9714d72 Updated user_id to created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
36aea52ae0 Fixed variable in test
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe
e0643cd744 Added currency and history icons
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:30 +00:00
snipe
27fab0f573 Use history icon
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:34:51 +00:00
snipe
183a4d49d8 Refactor of #15235 - added accessory checkout to locations, assets
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:34:49 +00:00
snipe
edacc4eb54 Merge pull request #15446 from Godmartinz/barcode_settings_hide
Refactored Barcode Settings into Label Settings
2024-12-16 16:09:34 +00:00
snipe
1e7d7a147b Merge pull request #15972 from snipe/upgrade_fontawesome
Updated font awesome
2024-12-16 15:55:14 +00:00
snipe
8ee549efbf Bumped font-awesome to 6.7.0
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 15:51:23 +00:00
Marcus Moore
699476da90 Scaffold and implement some license checkin tests 2024-12-12 17:33:34 -08:00
Marcus Moore
d763feb803 Add consumable ui tests 2024-12-12 16:41:46 -08:00
Marcus Moore
d3bfa75251 Add accessory ui tests 2024-12-12 14:30:58 -08:00
Godfrey M
833af55806 Merge branch 'develop' into barcode_settings_hide 2024-12-12 12:05:29 -08:00
snipe
d1246c65bd Merge pull request #15963 from snipe/localization/updated_strings_2024-12-12 2024-12-12 19:24:09 +00:00
snipe
38db890660 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 19:22:56 +00:00
snipe
01c18f6303 Merge pull request #15962 from snipe/fixes_rb-18772 2024-12-12 17:40:40 +00:00
snipe
c5e2aed164 Check for assigned (not assigned_to) before trying to present() the name on bulk delete assets
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 17:37:08 +00:00
snipe
4d1d2fedb7 Merge pull request #15960 from uberbrady/improve_restore_cleaner_utf8 2024-12-12 17:05:10 +00:00
snipe
ab6363a124 Merge pull request #15959 from snipe/remove_settings_api_endpoints 2024-12-12 16:53:15 +00:00
Brady Wetherington
a0e7dcf4ff Fixes to 'clean' mode to better handle character sets and zero-values 2024-12-12 16:50:36 +00:00
snipe
da33f1815a Removed index and destroy settinga API endpoints
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 16:46:19 +00:00
snipe
f089d1f0a4 Merge pull request #15944 from marcusmoore/bug/required-display-for-selects 2024-12-12 01:42:26 +00:00
spencerrlongg
72f58b0405 leaving this here for notes etc 2024-12-11 19:13:51 -06:00
snipe
4bd6c2171c Merge pull request #15957 from Godmartinz/fix-checkout-notif-parameters 2024-12-12 00:38:21 +00:00
Marcus Moore
67494c1b0b Fix validation messages for select2 inputs 2024-12-11 16:26:23 -08:00
Godfrey M
3264149a2c fix other mailables 2024-12-11 16:26:18 -08:00
Marcus Moore
8417fcb604 Revert "Show frontend "required" validation for model and status selects"
This reverts commit 10a7ae8d47.
2024-12-11 16:25:45 -08:00
Godfrey M
331fbb66bd fix other mailables 2024-12-11 16:25:04 -08:00
Godfrey M
400833f834 reversed order of the acceptance and note paramter 2024-12-11 16:14:06 -08:00
snipe
a7e6b8ea3f Merge pull request #15956 from marcusmoore/bug/sc-27731 2024-12-11 23:52:33 +00:00
Marcus Moore
6e31d0f2c3 Use appropriate category for licenses when seeding 2024-12-11 15:39:41 -08:00
snipe
b9a660683c Merge pull request #15955 from ubc-cpsc/bugfix/GHSA-c2pc-g5qf-rfrf 2024-12-11 20:42:13 +00:00
Joël Pittet
014350a26b Fix league/commonmark's quadratic complexity bugs may lead to a denial of service 2024-12-11 12:04:45 -08:00
snipe
06a0ac895d Fixed #15928 - updated method name to setCreatedBy from SetUserId
Signed-off-by: snipe <snipe@snipe.net>
2024-12-11 18:34:18 +00:00
snipe
34a47e9e44 Add @sgross-emlix as a contributor 2024-12-11 18:09:53 +00:00
snipe
f5a9e4bafa Fixes #15952 - fixed typo in content-type
Signed-off-by: snipe <snipe@snipe.net>
2024-12-11 18:09:19 +00:00
snipe
66339481cf Merge pull request #15954 from Godmartinz/null_fix-for-reminder-command 2024-12-11 17:38:59 +00:00
Godfrey M
2e97b56deb add null safe operator to acceptance reminder 2024-12-11 09:27:27 -08:00
akemidx
8adb62fd3a width fix 2024-12-10 19:17:01 -05:00
akemidx
43537d414b removed redundancy. 2024-12-10 16:42:55 -05:00
snipe
5014a95d9a Updated supported versions
Signed-off-by: snipe <snipe@snipe.net>
2024-12-10 13:27:59 +00:00
akemidx
f2fab57187 cancel button pull to left.
added pull right to save
2024-12-09 19:28:57 -05:00
Marcus Moore
10a7ae8d47 Show frontend "required" validation for model and status selects 2024-12-09 16:09:51 -08:00
snipe
5f0efd8cdb Merge pull request #15940 from snipe/reove_gh_templates 2024-12-09 19:35:31 +00:00
spencerrlongg
03c90d7b60 note, will come back to this once question is answered 2024-12-09 13:29:06 -06:00
snipe
31155b5351 Removed issue/PR templates
Signed-off-by: snipe <snipe@snipe.net>
2024-12-09 19:28:51 +00:00
snipe
cc8f72c3f9 Merge pull request #15914 from Godmartinz/send_reminder_emails 2024-12-09 19:23:13 +00:00
snipe
a0bab70def Merge pull request #15939 from uberbrady/fix_ldap_asset_location_updater 2024-12-09 17:56:23 +00:00
Brady Wetherington
b5c8251539 Only update asset locations to assets checked out to users. 2024-12-09 17:40:10 +00:00
snipe
0149ed75fd Merge pull request #15565 from spencerrlongg/bug/sc-25921 2024-12-09 17:00:10 +00:00
snipe
f72635955d Merge pull request #15925 from Godmartinz/refactor-unaccepted-assets-reminder-notif 2024-12-09 16:40:21 +00:00
Godfrey M
5120cddda4 delete notification version of reminder 2024-12-05 16:02:55 -08:00
Godfrey M
97398f1e68 adds testing to unaccepted reminder command 2024-12-05 12:41:33 -08:00
Godfrey M
281ff6ad5d wrap comment 2024-12-05 11:52:34 -08:00
Godfrey M
9d49b01958 cleans up the Unaccepted Asset reminder variables 2024-12-05 11:46:56 -08:00
Godfrey M
3f8916ea2e fix duplicate emails being sent in unaccepted reminder command 2024-12-05 11:37:03 -08:00
Godfrey M
f6b9ae6aee missed a spot 2024-12-05 10:18:35 -08:00
Godfrey M
de41def2b3 fixed conditionals 2024-12-05 10:15:57 -08:00
Godfrey M
52b051e940 add mail class for unaccepted assets reminders 2024-12-05 10:08:39 -08:00
snipe
a137e31797 Merge pull request #15920 from akemidx/asset-category-in-emails 2024-12-04 21:46:43 +00:00
spencerrlongg
513c78a09f Refactor CheckoutRequest actions for consistency
Renamed CheckoutRequest action classes to include "Action" in their names for consistency and clarity. Enhanced error handling in controllers to standardize error responses with translations. Updated usage of the renamed action classes throughout the code to ensure proper integration.
2024-12-03 17:51:12 -06:00
spencerrlongg
0103f20193 Merge branch 'develop' into feature/sc-24347 2024-12-03 16:05:39 -06:00
akemidx
ca0f8ace99 fixed 2024-12-03 16:57:28 -05:00
akemidx
6252f0ac5e layout / added category id 2024-12-03 16:10:42 -05:00
Godfrey M
b85b4b1e1b remove table-responsive div from several index bladees 2024-12-03 10:26:14 -08:00
snipe
43d66a8fcc Merge pull request #15918 from Godmartinz/mail_name_fix
Adds `MAIL_FROM_NAME` to mail envelope
2024-12-03 17:17:26 +00:00
Godfrey M
e5284c03e2 fix typo 2024-12-03 09:10:50 -08:00
Godfrey M
16283b8fc0 adds mail from name to mail envelope 2024-12-03 09:08:39 -08:00
Godfrey M
983b78edd9 add property check 2024-12-02 14:27:04 -08:00
snipe
2ad1407d51 Merge pull request #15909 from Godmartinz/checkin-out-notifications
Fixed general webhook option notifications not firing
2024-12-02 22:03:32 +00:00
Godfrey M
ab67c48352 fix unaccepted assets report resend acceptance 2024-12-02 13:03:09 -08:00
Marcus Moore
1d0d14876c Harden asset checkout validation 2024-12-02 12:49:02 -08:00
Fiala06
bdb0e6c2a3 Update LdapSync.php
Fix for duplicate entries preventing the sync from continuing. 

  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '13178-6' for key 'PRIMARY' (Connection: mysql, SQL: insert into users_groups (group_id, user_id) values (6, 13178))
2024-12-02 11:07:37 -08:00
snipe
14730184c9 Fixed sr-only blank text
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 18:48:02 +00:00
snipe
8ff099e802 Merge pull request #15910 from marcusmoore/chore/include-testing-variable
Included MAIL_FROM_ADDR in phpunit configuration
2024-12-02 18:34:08 +00:00
Marcus Moore
ea1f8328b9 Include MAIL_FROM_ADDR in phpunit configuration 2024-12-02 10:23:02 -08:00
Godfrey M
99464fcd86 fixes general webhook not firing 2024-12-02 10:19:24 -08:00
snipe
93d4d24194 Fixed funky layout in importer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:56:15 +00:00
snipe
1bbe9bf6c9 Merge remote-tracking branch 'origin/develop' 2024-12-02 17:43:03 +00:00
snipe
6874f703bf Some CSS twiddling
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:42:26 +00:00
snipe
a7d5b3944e Merge pull request #15908 from snipe/revert-15892-bug/harden-checkout-validation
Revert "Hardened asset checkout validation by requiring integer"
2024-12-02 17:42:02 +00:00
Marcus Moore
b5e83899c6 Revert "Hardened asset checkout validation by requiring integer" 2024-12-02 09:37:21 -08:00
snipe
dcd586e3cd Merge remote-tracking branch 'origin/develop' 2024-12-02 17:17:20 +00:00
snipe
1246ab1de7 Fixed bulk user form in user detail view
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:14:36 +00:00
Brady Wetherington
eccdcc373e parent 2220828b00
author Brady Wetherington <bwetherington@grokability.com> 1728320853 +0100
committer Brady Wetherington <bwetherington@grokability.com> 1733158021 +0000

Prevent setting assigned_to without setting assigned_type

Fixed tests to include assigned_type when setting assigned_to

Add new tests for assigned_to without assigned_type

Added tighter validation to assigned_to and assigned_type, new tests

Fixed wrong comment

Fixed tests to include assigned_type when setting assigned_to

Add new tests for assigned_to without assigned_type

Fixed wrong comment
2024-12-02 16:53:08 +00:00
snipe
5a4a3aa8f3 Merge remote-tracking branch 'origin/develop' 2024-12-02 15:59:25 +00:00
snipe
2220828b00 Merge pull request #15904 from snipe/fixes/#15901
Fixed #15901 - re-added required indicator on text and select custom fields
2024-12-02 15:51:32 +00:00
snipe
716c67d4b8 Fixed #15901 - re-added required indicator on text and select custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 15:45:07 +00:00
snipe
ee4a54be24 Fixed order by notes for users
Signed-off-by: snipe <snipe@snipe.net>
2024-11-27 15:48:13 +00:00
snipe
46be1ada60 Merge pull request #15892 from marcusmoore/bug/harden-checkout-validation
Hardened asset checkout validation by requiring integer
2024-11-27 14:55:11 +00:00
snipe
e1c0a80c20 Merge remote-tracking branch 'origin/develop' 2024-11-27 13:52:03 +00:00
snipe
2cb1b6d462 Use transformer on API update
Signed-off-by: snipe <snipe@snipe.net>
2024-11-27 13:51:53 +00:00
snipe
37ac7fe25c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-11-26 20:38:46 +00:00
snipe
11f83b4cd9 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-11-26 20:12:14 +00:00
snipe
0f1d10bd69 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-26 20:12:09 +00:00
snipe
82108f8a18 Merge pull request #15208 from akemidx/feature/sc-26415
FEATURE: Option for Notes to be Required on Asset Checkin/Checkout
2024-11-26 20:11:04 +00:00
akemidx
a7dae10a82 fixing line 2024-11-26 15:06:25 -05:00
akemidx
2727210c78 requested changes from pr 2024-11-26 15:04:54 -05:00
Marcus Moore
fcbd5dcae5 Harden asset checkout validation by requiring ints 2024-11-26 11:33:17 -08:00
snipe
fa80716320 Merge pull request #15890 from Godmartinz/mobile-view-fix
Mobile view fix
2024-11-26 19:13:39 +00:00
Godfrey M
15c9df0ab1 fix mobile view for asset and user 2024-11-26 10:59:31 -08:00
snipe
6ee0c93c87 Merge remote-tracking branch 'origin/develop' 2024-11-26 18:47:22 +00:00
snipe
37e091adbb Merge pull request #15889 from Godmartinz/Fix-user-API-location-update
Fixed Users API `update` from clearing `location_id` unnecessarily
2024-11-26 18:45:20 +00:00
Godfrey M
021e82927e fixed mobile view of assets 2024-11-26 10:42:59 -08:00
Godfrey M
60642cd902 fix user api update from clearing location_id unnecessarily 2024-11-26 09:58:17 -08:00
snipe
fd07550803 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-11-25 14:19:05 +00:00
snipe
30b481bc93 Updated version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-25 14:18:31 +00:00
snipe
25bfd3e845 Merge remote-tracking branch 'origin/develop' 2024-11-25 13:05:28 +00:00
snipe
0f18ee86f7 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-11-25 13:05:05 +00:00
snipe
4a5f65616f Merge remote-tracking branch 'origin/develop' 2024-11-25 12:56:08 +00:00
snipe
f125c90c94 Merge pull request #15870 from marcusmoore/bug/sc-26857
Always call resizeCanvas
2024-11-22 00:59:36 +00:00
akemidx
0d608552ef orange bar for requirednessness 2024-11-21 19:09:54 -05:00
akemidx
dd223fc215 commit for testing 2024-11-21 19:01:27 -05:00
Marcus Moore
87756cac66 Remove debugging 2024-11-21 14:30:17 -08:00
Marcus Moore
9f49c25401 WIP: move signature pad creation up and add debugging 2024-11-21 13:12:13 -08:00
Marcus Moore
d0378070c8 Always call resizeCanvas 2024-11-21 12:38:53 -08:00
snipe
9f395d1f6a Merge remote-tracking branch 'origin/develop' 2024-11-21 19:58:49 +00:00
snipe
feba860a90 Merge pull request #15850 from akemidx/bug/sc-27448
Adding colon to password translation string
2024-11-21 19:58:04 +00:00
akemidx
424316df9f fixing colon placements 2024-11-21 14:32:22 -05:00
snipe
b7aedb7dcb Merge pull request #15818 from spencerrlongg/bug/sc-27213
Resolves Validation for Encrypted Numeric and Alpha Custom Fields
2024-11-21 19:25:27 +00:00
snipe
8b38dc83f6 Merge pull request #15851 from marcusmoore/testing/api-component-checkin
Fixed bug in component checkins via api
2024-11-21 19:24:12 +00:00
snipe
ad2b85393b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-11-21 19:23:10 +00:00
snipe
85c1b0ec57 [Snyk] Upgrade jquery-ui from 1.14.0 to 1.14.1 #15868
Signed-off-by: snipe <snipe@snipe.net>
2024-11-21 19:22:08 +00:00
snipe
b99b56b32b Merge remote-tracking branch 'origin/develop' 2024-11-21 14:41:42 +00:00
snipe
2a21cce4f5 Merge pull request #15839 from Godmartinz/fix-mail-envelope-variable
replace env with config variable for from address
2024-11-21 14:41:04 +00:00
snipe
3a683d84a7 Merge pull request #15859 from Godmartinz/remove_name_null_warning
Adds a ternary for blank emails for mail notifications
2024-11-21 14:38:03 +00:00
snipe
e05f443886 Merge pull request #15864 from marcusmoore/testing/api-component-checkout
Added tests for component checkout api endpoint
2024-11-21 14:37:45 +00:00
Marcus Moore
d65254c4ec Add tests for component checkout api endpoint 2024-11-20 15:34:08 -08:00
Godfrey M
6969b8be47 remove the changes to mail.from.address default 2024-11-20 14:25:57 -08:00
snipe
0a3bca078c Merge pull request #15860 from marcusmoore/tests/switch-to-file-for-sqlite-in-action
Improved speed of sqlite tests in GitHub Actions
2024-11-20 22:09:11 +00:00
Marcus Moore
9bbd802fce Use database file for sqlite in GitHub Action for tests 2024-11-20 12:33:58 -08:00
Marcus Moore
f932a4fc76 Always run validation on checkin 2024-11-20 12:25:06 -08:00
Godfrey M
f7c1fc852d no checked out to email doesnt trigger a 500 2024-11-20 08:29:28 -08:00
snipe
5522def054 Merge pull request #15854 from NebelKreis/feature/add-category-to-asset-mails
Added #15803: Category Field to Asset Related Mails
2024-11-20 13:51:34 +00:00
snipe
8cd4b3303e Merge pull request #15847 from NebelKreis/feature/hardware-label-generation-api
Added #15677: API Route for Generating Asset Labels
2024-11-20 11:14:28 +00:00
NebelKreis
d5c141dc59 Fix: Removed setting validation as it is not strictly necessary 2024-11-20 11:55:48 +01:00
NebelKreis
7618169d79 Feature: Added category to asset requested email 2024-11-20 11:22:19 +01:00
NebelKreis
eb026248a8 Feature: Added category to asset acceptance/decline email 2024-11-20 10:59:59 +01:00
NebelKreis
4304af0508 Feature: Added category to asset checkin email 2024-11-20 10:27:37 +01:00
NebelKreis
61eff02fcb Feature: Added category to asset checkout email 2024-11-20 10:27:22 +01:00
snipe
cca76005a2 Merge pull request #15852 from marcusmoore/testing/ui-delete-component
Added tests around deleting component via ui
2024-11-20 01:27:19 +00:00
Marcus Moore
54f5f46e31 Improve check for image existence 2024-11-19 16:44:42 -08:00
Marcus Moore
51a0767be9 Add tests around deleting component via ui 2024-11-19 16:44:19 -08:00
Marcus Moore
da4c877ed8 Use === over == 2024-11-19 16:13:53 -08:00
Marcus Moore
e8cad0df69 Formatting 2024-11-19 16:13:30 -08:00
Marcus Moore
59fe53842d Add tests around component check ins via api 2024-11-19 16:11:23 -08:00
akemidx
1e513312eb adding colon to password translation 2024-11-19 16:58:10 -05:00
Godfrey M
99de639be4 fix mail.from.address variables in config, simplify envelop[ variable 2024-11-19 09:32:11 -08:00
Godfrey M
b513575643 add testing example var MAIL_FROM_ADDR 2024-11-19 09:10:52 -08:00
spencerrlongg
22602c7997 use existing validation strings 2024-11-19 08:59:47 -06:00
snipe
d10f118128 Merge remote-tracking branch 'origin/develop' 2024-11-19 13:55:55 +00:00
snipe
5a5f1082fb Merge pull request #15848 from snipe/chore/sc-27531
Indicate requiredness on status select on bulk user checkin+delete
2024-11-19 13:55:22 +00:00
snipe
30a6a678d4 Indicate requiredness on status select on bulk user checkin+delete
Signed-off-by: snipe <snipe@snipe.net>
2024-11-19 13:50:18 +00:00
snipe
4384f8dcbb Merge remote-tracking branch 'origin/develop' 2024-11-19 13:32:02 +00:00
snipe
d576016a1c Merge pull request #15845 from snipe/bug/sc-27523
Fixed variable name to correctly log created_by and date for bulk user delete/checkin
2024-11-19 13:29:21 +00:00
snipe
15a31bd141 Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-19 13:22:44 +00:00
NebelKreis
5639a84d90 Feature: Added API route for asset label generation 2024-11-19 14:16:58 +01:00
NebelKreis
66d6b01307 Feature: Added translations for label generation API endpoint 2024-11-19 14:16:06 +01:00
NebelKreis
889aff43c2 Feature: Added API endpoint for generating asset labels 2024-11-19 14:13:05 +01:00
snipe
8f7223128f Merge pull request #15757 from akemidx/bug/sc-26944
FIXED: Bulk Delete page not showing full information
2024-11-19 12:34:57 +00:00
snipe
53cfcb7143 Merge pull request #15843 from snipe/viclou-patch-1
Update README.md - small typo
2024-11-19 10:50:28 +00:00
snipe
d60ac0c78d Merge pull request #15840 from marcusmoore/fixes/migration-rollbacks
Fixed a couple migrate:rollback issues
2024-11-19 10:20:58 +00:00
victoria
a328c7a64c Update README.md
typo mosrt to most under Join our Community links
2024-11-18 23:03:31 -10:00
Godfrey M
f533cdc07a update default from address to alternate config variable 2024-11-18 12:39:28 -08:00
Marcus Moore
f5206078d4 Fix rollback for webhook_endpoint by using correct column type 2024-11-18 12:25:02 -08:00
Marcus Moore
0209d27081 Fix rollback for created_by 2024-11-18 12:24:47 -08:00
Godfrey M
d14f43fbbe replace env with config variable for from address 2024-11-18 10:54:03 -08:00
spencerrlongg
b71a90a3c5 this should be all it takes to fix this, i think 2024-11-18 12:44:24 -06:00
snipe
8d321edca8 Merge remote-tracking branch 'origin/develop' 2024-11-15 18:59:40 +00:00
snipe
3fb543bf03 Merge pull request #15828 from snipe/bug/sc-27500
Fixed admin user not showing in download all activity report
2024-11-15 18:59:07 +00:00
snipe
e8d1093376 Fixed admin user not showing in download all activity report
Signed-off-by: snipe <snipe@snipe.net>
2024-11-15 18:51:45 +00:00
snipe
66e82a345a Merge remote-tracking branch 'origin/develop' 2024-11-15 13:18:25 +00:00
snipe
187e231c0e Fixed #15825
Signed-off-by: snipe <snipe@snipe.net>
2024-11-15 13:18:15 +00:00
snipe
caf92748fc Merge remote-tracking branch 'origin/develop' 2024-11-14 20:57:18 +00:00
snipe
09b7db5103 Additional fix for #15817
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 20:57:09 +00:00
snipe
5381c4e1e3 Merge remote-tracking branch 'origin/develop' 2024-11-14 20:53:17 +00:00
snipe
add3edba20 Merge pull request #15822 from snipe/add_model_number_to_view_assets
Fixed #15820 - added model number to view-assets
2024-11-14 20:52:44 +00:00
snipe
b4a2a4e1ec Fixed #15820 - added model number to view-assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 20:51:18 +00:00
snipe
f2faf58786 Merge pull request #15817 from Godmartinz/label_fix
Removes asset tag if 2D code is not present
2024-11-14 20:49:31 +00:00
spencerrlongg
124f9c84c2 oops, something went wrong translation 2024-11-14 13:45:47 -06:00
snipe
96a4391d5c Merge remote-tracking branch 'origin/develop' 2024-11-14 19:05:08 +00:00
snipe
7b7a848a43 Merge pull request #15819 from snipe/fixes_asset_file_deletion
Corrected route name for delete action on filestable on assets
2024-11-14 18:01:56 +00:00
snipe
636e466b8a Fixed delete model file route
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 17:58:20 +00:00
snipe
838a6d03bd Corrected route name for filestable on assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 17:51:49 +00:00
spencerrlongg
8465806536 rm unnecessary imports 2024-11-14 11:51:41 -06:00
Godfrey M
0f1f6bc6a5 fixed rest of dymos 2024-11-14 09:45:52 -08:00
spencerrlongg
95cd779334 translations and attribute names 2024-11-14 11:42:35 -06:00
snipe
0a7d1a27ee Merge remote-tracking branch 'origin/develop' 2024-11-14 17:10:16 +00:00
snipe
306c97b5b5 Merge pull request #15816 from Godmartinz/Teams_fix
replace the via() channel for MS Teams (deprecated)
2024-11-14 17:09:47 +00:00
Godfrey M
23038ab209 removes tag if qr code is not present 2024-11-14 08:54:12 -08:00
Godfrey M
702621ec57 replace the via channel class 2024-11-14 08:38:18 -08:00
snipe
0be123b115 Merge remote-tracking branch 'origin/develop' 2024-11-14 14:47:18 +00:00
snipe
c093b4531d Fixed anchor links
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:47:09 +00:00
snipe
517e923f70 Merge remote-tracking branch 'origin/develop' 2024-11-14 14:42:44 +00:00
snipe
a0b8483878 Removed extra sort
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:41:11 +00:00
snipe
075e3503b1 Removed Twitter links
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:38:51 +00:00
snipe
d427d9e5af Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 12:25:10 +00:00
snipe
940f1c2ecc Fixed #15812 - regression in action_type search
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 12:24:15 +00:00
snipe
3e131d515d Add @maciej-poleszczyk as a contributor 2024-11-14 11:06:55 +00:00
snipe
364410a586 Merge pull request #15558 from maciej-poleszczyk/develop
Fixing #15064 - to not fail ldap sync on single data issue with ldap …
2024-11-14 11:06:18 +00:00
snipe
70d9ef428c Merge pull request #15811 from snipe/small_fix_for_embiguous_created_by
Specify table name in select for models controller
2024-11-14 10:20:16 +00:00
snipe
4e28650ca9 Specify table name in select
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 10:18:39 +00:00
spencerrlongg
8c6869fd34 note and rm dump and comment 2024-11-13 21:59:32 -06:00
spencerrlongg
7e7cbc4cc8 seems to work just fine now, needs translations 2024-11-13 21:54:25 -06:00
spencerrlongg
25163d1756 working except for null 🤔 2024-11-13 21:46:23 -06:00
spencerrlongg
3982201d0e this should work in theory - local is screwy though 2024-11-13 21:38:09 -06:00
snipe
647ef6a4b7 Versioning stuff is hard - fixed v7.0.14 to v7.1.14
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 01:11:29 +00:00
snipe
a060f603b5 Versioning stuff is hard - fixed v7.0.14 to v7.1.14
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 01:11:01 +00:00
snipe
a89e17212e Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 23:46:30 +00:00
snipe
f7dcfca66c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 23:46:04 +00:00
akemidx
efeef5cdc4 removing || parts of if else 2024-11-13 18:29:58 -05:00
akemidx
9cb411c500 removing required form div container 2024-11-13 18:06:04 -05:00
snipe
eb57652548 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2024-11-13 22:57:00 +00:00
snipe
cb7e47a3a3 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:55:33 +00:00
Marcus Moore
92f33c08f7 Merge branch 'develop' into saving_custom_report_template 2024-11-13 14:54:00 -08:00
snipe
0ba861920f Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:51:20 +00:00
snipe
e185b2b781 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:50:13 +00:00
snipe
3bf33aa682 Merge remote-tracking branch 'origin/develop' 2024-11-13 22:39:01 +00:00
snipe
5084843f9d Merge pull request #15809 from marcusmoore/fixes/teams
Fixed Microsoft Teams notifications
2024-11-13 22:38:24 +00:00
Marcus Moore
e80a456e04 Remove duplicate method 2024-11-13 14:35:20 -08:00
Marcus Moore
c399d797b4 Add conditional for microsoft team integration version 2024-11-13 14:29:01 -08:00
Marcus Moore
ac3ae651b1 Remove incorrect typehint 2024-11-13 14:15:43 -08:00
snipe
73383c688e Merge pull request #15782 from Toreg87/fixes/indentation_userscontroller
Fix Indentation in UsersController
2024-11-13 21:21:40 +00:00
snipe
24456f723b Merge remote-tracking branch 'origin/develop' 2024-11-13 21:21:08 +00:00
snipe
9d2cbc4bb9 Add @DarrenRainey as a contributor 2024-11-13 21:20:45 +00:00
snipe
796a397d08 Merge pull request #15807 from DarrenRainey/develop
Patch for whitespace causing HTTP 500 errors.
2024-11-13 21:20:26 +00:00
snipe
19bf549450 Merge remote-tracking branch 'origin/develop' 2024-11-13 21:17:40 +00:00
snipe
381c6e05bb Merge pull request #15808 from Godmartinz/check-license-for-email-boolean
Fixed checkin/checkout email boolean check for Licenses
2024-11-13 21:17:08 +00:00
snipe
ada8e77b85 Added location to asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 21:16:08 +00:00
Godfrey M
1061df8c8b fix user checkout license category email check 2024-11-13 13:07:28 -08:00
Darren Rainey
823af33d1f Patch for whitespace causing HTTP 500 errors.
Patch for whitespace causing HTTP 500 errors.
Patch that adds qoutes around MAIL_FROM_NAME and MAIL_REPLYTO_NAME as current script will generate a .env file which causes an 500 error preventing the site from loading.

Log File: /var/log/apache2/error.log:
The environment file is invalid!
Failed to parse dotenv file. Encountered unexpected whitespace at [Asset Management System].
2024-11-13 20:58:36 +00:00
snipe
02ba13be26 Merge pull request #15730 from akemidx/bug/sc-26974-2
FIXED: Login button can disappear under some circumstances
2024-11-13 20:47:20 +00:00
snipe
0a87b0b790 Merge pull request #15784 from Godmartinz/Fieldset_table_borders
Fixed dark background to fieldsets and right border
2024-11-13 20:40:25 +00:00
snipe
8feb9c49b0 Merge remote-tracking branch 'origin/develop' 2024-11-13 20:39:45 +00:00
snipe
f2fc11035f Merge pull request #15806 from Godmartinz/improved-checkoutable-logging
improved logging in checkoutable listener
2024-11-13 20:39:21 +00:00
snipe
3c08760aeb Merge pull request #15802 from snipe/features/import_models
Ability to import asset models (separate from assets)
2024-11-13 20:37:31 +00:00
Godfrey M
8389c03450 improved logging in checkoutable listener 2024-11-13 12:19:16 -08:00
snipe
ab2e7a315a Merge pull request #15805 from Godmartinz/license-markdown-fix
Fixed license serial gate in markdown
2024-11-13 20:13:28 +00:00
Godfrey M
d7b60b3482 fix serial check in markdown 2024-11-13 11:59:22 -08:00
snipe
52dceda5a2 Merge pull request #15804 from snipe/update_laravel
Updated laravel, additional packages for CVE-2024-52301
2024-11-13 19:49:12 +00:00
snipe
92ae7267d0 Updated laravel, additional packages
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:43:39 +00:00
snipe
7ccbc60ec0 Chaneg to ucfirst for Assetmodel -> AssetModel
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:35:56 +00:00
snipe
2e340f9a23 Two more case fixes
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:18:38 +00:00
snipe
304fddb1d1 Removed unused test
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:59:32 +00:00
snipe
1caf73f9da Fixed casing, fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:58:30 +00:00
spencerrlongg
4841b89109 scratch code for this issue 2024-11-13 12:45:39 -06:00
snipe
6f700ccc95 Added relationship for adminuser
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:44 +00:00
snipe
6fee533283 Updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:35 +00:00
snipe
4a18946dd7 Added created by to imports
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:27 +00:00
snipe
7c3f9ba6af Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:03 +00:00
snipe
d3602c0595 Allow sorting on admin name in API
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:23:26 +00:00
snipe
1aef7edc43 Added created by to the import itself
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:23:11 +00:00
snipe
d4018a2834 Added created_by to models API
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:57 +00:00
snipe
0c3b8cb114 Moved created by to create only
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:46 +00:00
snipe
b6dbb8879a Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:30 +00:00
snipe
3a1fb615e7 Added admin sort scope
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:05 +00:00
snipe
8c3b50dbf2 Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:36 +00:00
snipe
54f7917fbe Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:27 +00:00
snipe
d7e5fe50eb Use auth facade
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:19 +00:00
snipe
0a6096e528 Updated method name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:00 +00:00
snipe
0ae1db6fe3 Added created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:20:47 +00:00
snipe
4d3137e15a Added $accessory->created_by = auth()->id();
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:18:46 +00:00
snipe
66aaafc4f2 Updated variable name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 17:08:20 +00:00
snipe
85dbbdbbcb wtf
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:53:19 +00:00
snipe
813b304a01 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:49:58 +00:00
snipe
2f943bc052 Better error messaging for bad fields
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:44:09 +00:00
snipe
74ca561ab0 Fixed welcome email toggle
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:43:57 +00:00
snipe
69e36738fe Updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:28:10 +00:00
snipe
4afe873f24 Fixed tests, updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:21:40 +00:00
snipe
220902a8b4 Merge branch 'develop' into features/import_models 2024-11-13 15:51:36 +00:00
snipe
3740b58580 Re-added assetmodel import factory
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:46:25 +00:00
snipe
3d3e3a9557 Squashed commit of the following:
commit c012bf0ece
Merge: 787340b98 947351af6
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 13 00:55:53 2024 +0000

    Merge pull request #15799 from Godmartinz/update_deprecated_trigger_for_ms_teams

    Updated deprecated trigger for ms teams

commit 947351af67
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 16:49:02 2024 -0800

    removed unused variabl

commit 4e0d70e0b8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 15:44:14 2024 -0800

    checkin notif was missing

commit 832ccc6aa3
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 15:35:09 2024 -0800

    updated deprecated trigger for ms teams

commit 787340b987
Merge: 6bec57395 c62a02225
Author: snipe <snipe@snipe.net>
Date:   Tue Nov 12 22:35:11 2024 +0000

    Merge pull request #14441 from Godmartinz/ldap_location-resync

    Fixes Assets location not being resynced when Users location is updated via LDAP

commit 6bec573956
Merge: b6ad69fac 1fc5bb54e
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:54:09 2024 +0000

    Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance

    Check that the file exists before trying to download stored EULA

commit 1fc5bb54e1
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:50:53 2024 +0000

    Check that the file exists before trying to download

    Signed-off-by: snipe <snipe@snipe.net>

commit b6ad69fac2
Merge: 357ef7e37 47b2cdb84
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:05:20 2024 +0000

    Merge pull request #15793 from snipe/allow_eol_explicit

    Allow user to specify null for calculation or explicit on bulk edit

commit 47b2cdb846
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:04:13 2024 +0000

    Allow user to specify null for calculation or explicit on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 357ef7e375
Merge: 000f3171e 6928b1b27
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:48:25 2024 +0000

    Merge pull request #15792 from snipe/edit_eol_from_bulk

    Added EOL date to bulk asset edit

commit 6928b1b273
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:47:10 2024 +0000

    Added eol date to bulk asset edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 000f3171e3
Author: snipe <snipe@snipe.net>
Date:   Fri Nov 8 10:28:01 2024 +0000

    Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ef3183a52
Merge: a41529dbc 050831868
Author: snipe <snipe@snipe.net>
Date:   Thu Nov 7 11:44:06 2024 +0000

    Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes

    Improved indexes on manager_id for locations and users, including del…

commit 050831868e
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Nov 7 11:39:27 2024 +0000

    Improved indexes on manager_id for locations and users, including deleted_at

commit a41529dbc4
Merge: aa168fcb5 4fcf5ac7d
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 21:22:45 2024 +0000

    Merge pull request #15780 from uberbrady/add_manager_indexes

    Add new indexes to locations and users for faster manager lookups

commit 4fcf5ac7da
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Nov 6 21:19:41 2024 +0000

    Add new indexes to locations and users for faster manager lookups

commit aa168fcb5b
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:41:52 2024 +0000

    Updated BS table to 1.23.5

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c1c93ad52
Merge: b96a31253 ad99b8b45
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:40:35 2024 +0000

    Merge pull request #15774 from marcusmoore/feature/sc-27350

    Added Checkout ID column to user accessory table

commit ad99b8b456
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Nov 6 10:37:31 2024 -0800

    Use generic ID translation

commit b96a312539
Merge: 654f67b6a bab1e58ea
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:29:22 2024 +0000

    Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345

    Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736

commit bab1e58ea4
Author: Joël Pittet <pittet@cs.ubc.ca>
Date:   Wed Nov 6 09:46:11 2024 -0800

    symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736

commit 654f67b6ac
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:05:42 2024 +0000

    Updated webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit 3965bcd7c1
Merge: 287f4addf 2362cb5e5
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:02:44 2024 +0000

    Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests

    Fixed notifications for licenses and asset to asset checkoutables

commit 2362cb5e52
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 16:32:46 2024 -0800

    refactor to getNotifiables

commit e7cb4a75eb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 15:56:53 2024 -0800

    Show accessory checkout id in user accessory table

commit 93494ac554
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:17:58 2024 -0800

    put dataprovider back in for tests

commit 0d707a1851
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:13:10 2024 -0800

    fixes notifications for licenses and asset to asset checkouables

commit 287f4addf0
Merge: f32ebdc7a 2e96d478f
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 4 20:06:24 2024 +0000

    Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit 2e96d478f1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 11:04:17 2024 -0800

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit f32ebdc7ac
Merge: 5897d37fc d6c7dc8e1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 22:39:58 2024 +0000

    Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file

    Added missing Livewire file

commit d6c7dc8e1c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 31 15:37:01 2024 -0700

    Add missing livewire file

commit 5897d37fcf
Merge: 49de07045 21a27dcac
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 20:54:01 2024 +0000

    Merge pull request #15763 from Godmartinz/no_to_email_check

    Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.

commit 21a27dcac1
Merge: 379138076 49de07045
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:55:46 2024 -0700

    fixed conflicts

commit 3791380764
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:52:47 2024 -0700

    remove unused uses

commit 7a0f79ecd2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:51:22 2024 -0700

    remove test route

commit 97a449e80e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:50:13 2024 -0700

    removes instanceof User check

commit e65942064e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:45:29 2024 -0700

    send emails even if target has no email

commit 49de07045a
Merge: 7e996c40f 73772a013
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 17:53:17 2024 +0000

    Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs

    Fixed MS Team Notifications to utilize workflows after deprecation

commit 7e996c40f5
Merge: 73e8f160c 69e74bbdd
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 02:51:42 2024 +0000

    Merge pull request #15758 from snipe/jerm/fix-deprecation-warning

    Fix ${var} deprecation warning in License model

commit 69e74bbdd3
Author: Jeremy Price <jeremy@grokability.com>
Date:   Wed Oct 30 19:43:54 2024 -0700

    Fix ${var} deprecation warning in License model

    When upgrading to php8.3 i started getting deprecation warning about
    using ${var} instead of {$var} in 2 places in License.php

    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

    This simple fix switches the offending statements to {$var} syntax.

commit 73e8f160cf
Merge: f68df1fa0 bd23772fe
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 19:29:09 2024 +0000

    Merge pull request #15756 from Godmartinz/cc-email-array

    changes `admin_cc_email` validation to allow an array

commit bd23772fe9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:42:15 2024 -0700

    changes cc_email validation to allow array

commit 73772a0138
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:12:31 2024 -0700

    change button text

commit b26cae372c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:40:23 2024 -0700

    merged in develop

commit d6ba303f39
Merge: 9a0eee8f0 f68df1fa0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:27:45 2024 -0700

    Merge branch 'develop' into refacto_ms_teams_notifs

    # Conflicts:
    #	app/Listeners/CheckoutableListener.php

commit f68df1fa06
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 13:21:13 2024 +0000

    Made type searchable in action logs

    Signed-off-by: snipe <snipe@snipe.net>

commit f0813e03bf
Merge: 05875ebd1 58ff641f8
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 12:18:41 2024 +0000

    Merge pull request #15681 from Godmartinz/seperating_notification_n_mail

    Separated Notifications and Emails: Check ins and Check outs

commit 05875ebd1f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 22:04:35 2024 +0000

    Updated translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 9a0eee8f03
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:43 2024 -0700

    revert testing variables

commit 6128765d1f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:03 2024 -0700

    change wording on notification button

commit c24f79c025
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:58:43 2024 -0700

    update method comment

commit e7c4343c90
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:56:48 2024 -0700

    readd checkin accessory format

commit c0620c27ff
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:30:34 2024 -0700

    adds back laravels channel formats

commit ed81973fe6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 13:57:42 2024 -0700

    adds notifications for deprecation

commit 2d318b394c
Merge: 86d784bd5 5c4971612
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 18:41:49 2024 +0000

    Merge pull request #15744 from marcusmoore/chore/action-tests-debugging

    Added the display of logs when tests fail in GitHub Actions

commit b987b3dc00
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 10:57:48 2024 -0700

    adds back the laravel channels package and applies a deprecated check

commit 5c49716129
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 28 10:24:35 2024 -0700

    Dump logs on test failure

commit 86d784bd59
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 13:37:59 2024 +0000

    Fixed #15740 - use non-translated strings for icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 589f9cccdf
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 12:04:10 2024 +0000

    Fixed  #15732

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d848e45e6
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 11:55:24 2024 +0000

    Fixed #15736

    Signed-off-by: snipe <snipe@snipe.net>

commit 58ff641f82
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 22:53:53 2024 -0700

    removed unused variables

commit ce68f550d8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 16:01:17 2024 -0700

    remove alert emails from cc

commit 6f0c1b12b1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 15:04:54 2024 -0700

    this adds check out message for consumables

commit 278bc5e52a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:59:10 2024 -0700

    ads check in and checkout message for license seats

commit cce75a8185
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:48:23 2024 -0700

    adds check in and checkout messag for accessories

commit e27ff13377
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:39:40 2024 -0700

    adds check in and checkout message for assets

commit 56365495a1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:26:42 2024 -0700

    remove unnecessary fields in accessory checkout mail

commit 18da80e6de
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:24:00 2024 -0700

    fix checkoutable listener for microsoft teams

commit 18760e3fa1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 12:21:51 2024 -0700

    replaces teams notification package, passes integration test

commit 57107c487c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 09:40:10 2024 -0700

    fixed last test, definetly the last test

commit dfc63641dc
Merge: 07a51ec8b b6340532d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 11:40:50 2024 +0100

    Merge pull request #15550 from uberbrady/fix_multi_create_partial_failure

    Fix multi create partial failure (fixes: [RB-18591])

commit 07a51ec8b1
Merge: e0ec6795b 727c0e458
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 10:03:10 2024 +0100

    Merge pull request #15712 from Godmartinz/fix_import-progress-bar

    Upgraded `livewire v3.5.9 => v3.5.12`

commit 6329f5b87e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:33:23 2024 -0700

    removed unused variable from test

commit e0ec6795b5
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:27:50 2024 +0100

    Use crucial for seeded data

    Signed-off-by: snipe <snipe@snipe.net>

commit 15073a0d38
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:27:37 2024 -0700

    last test to fix

commit a80c09c16d
Merge: ab3b9c451 5509d756b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:23:55 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

commit 5509d756b7
Merge: 55ba6279a b16a978f1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:12:11 2024 +0100

    Merge pull request #15722 from Godmartinz/fix_component_factory

    Fixed Component Factory: use manufacturer factory for `manufactuer_id`

commit b16a978f1b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:25:51 2024 -0700

    uses manufacturer factory for manufactuer_id

commit ab3b9c4510
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:24:01 2024 -0700

    remove unnecessary code from checkinasset notification

commit 2cc2b2b1df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:06:27 2024 -0700

    apply array_filter to cc emails to prevent errors

commit 62d06b44d6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:43:42 2024 -0700

    set fallback from email address to service.snipe-it.io

commit f29a383179
Merge: fd74c3510 55ba6279a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:15:14 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

    # Conflicts:
    #	app/Notifications/CheckoutConsumableNotification.php

commit fd74c35102
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:08:29 2024 -0700

    remove old notify by mail from consumable notification

commit c681946b1d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:05:39 2024 -0700

    added component markdown changes

commit 257d25bd9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:56:54 2024 -0700

    removed import notification from test, feature is not present in project

commit 6c34a5c52c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:54:21 2024 -0700

    conditionally check cc emails, initiate variables

commit 1b5f4415ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:44:45 2024 -0700

    corrected cc email behavior

commit 55ba6279a4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:14:17 2024 +0100

    Use trans_choice on alert menu

    Signed-off-by: snipe <snipe@snipe.net>

commit a9eea830e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:05:34 2024 +0100

    Added manufacturer and model number to component seeders

    Signed-off-by: snipe <snipe@snipe.net>

commit af564935d5
Merge: d58f87862 3ee76be7e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:56:04 2024 +0100

    Merge pull request #15720 from snipe/15695_adds_manufacturer_and_model_number_to_components

    Fixed #15695 - Added manufacturer and model_number to components

commit 3ee76be7e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:50:22 2024 +0100

    Added manufacturer and model_number to components

    Signed-off-by: snipe <snipe@snipe.net>

commit d58f87862c
Merge: 5da3ce356 0b6859c49
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:09:50 2024 +0100

    Merge pull request #15719 from snipe/#15717_adds_qty_to_consumable

    Fixed #15717 - Added ability to checkout consumables in variable qty via API

commit 0b6859c491
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:05:35 2024 +0100

    Added ability to checkout consumables in variable qty

    Signed-off-by: snipe <snipe@snipe.net>

commit 1e9922a0b0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 16:14:36 2024 -0700

    fix moar tests

commit ead27accac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 15:45:52 2024 -0700

    fixed accessory tests and notifiable target

commit 727c0e458c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:34:39 2024 -0700

    remove translation

commit 870dc747db
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:27:32 2024 -0700

    oops

commit 0fb3d83fac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:26:54 2024 -0700

    revert controller change

commit 0d59ccd6a6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:23:26 2024 -0700

    upgraded livewire v3.5.9 => v3.5.12

commit 5da3ce3564
Merge: c3bbca30a 5ecd2b629
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:10:20 2024 +0100

    Merge pull request #15711 from marcusmoore/fixes/custom-fieldset-checkboxes

    Fixed custom field checkboxes on asset edit page

commit c3bbca30ad
Merge: dccb788a8 37f14fff3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:50 2024 +0100

    Merge pull request #15710 from snipe/fixes_lightbox_for_avif

    Fixes #15701 - load avif files properly in lightbox

commit 37f14fff3b
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:28 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit eb6c51fabd
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:04:57 2024 +0100

    Fixes #15701 - load avif files properly in lightbox

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ecd2b6293
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 14:04:05 2024 -0700

    Default checkbox elements to an empty array

commit 1e31592c55
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 11:49:06 2024 -0700

    messing with the tests

commit dccb788a88
Merge: 5e1d792bb d10fe77ee
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 17:44:30 2024 +0100

    Merge pull request #15691 from marcusmoore/fixes/get-id-for-current-user

    Updated `Company::getIdForCurrentUser()` to return null in certain scenarios

commit d10fe77ee7
Merge: e1882ee6d 5e1d792bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 09:38:31 2024 -0700

    Merge branch 'develop' into fixes/get-id-for-current-user

commit 5e1d792bba
Merge: 9cf71976f 780ed91a1
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:52:28 2024 +0100

    Merge pull request #15687 from NebelKreis/fix/dashboard-title-casing

    Fixed #15686: Corrected capitalization for dashboard section titles by removing strtolower()

commit 9cf71976f6
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:51:42 2024 +0100

    Fixed #15706 - Removed purchase order number from asset import

    Signed-off-by: snipe <snipe@snipe.net>

commit 15745d9737
Merge: bd97955b9 3f74ff25d
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:39:44 2024 +0100

    Merge pull request #15566 from Godmartinz/status-label-error-message

    Fixed Status Labels Error Message

commit bd97955b9e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:38:46 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 252d99421c
Merge: 5767a98ad db8170162
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:48 2024 +0100

    Merge pull request #15689 from snipe/better_handle_inline_files

    Better handle inline files in file listing

commit 5767a98ad8
Merge: 0c820cbc0 524a44272
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:23 2024 +0100

    Merge pull request #15649 from bryanlopezinc/ImproveImporting

    Improve import performance

commit 0c820cbc0d
Merge: 147fcfb8e 3153bbb13
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:56:12 2024 +0100

    Merge pull request #15598 from spencerrlongg/bug/custom_field_validation_issue

    Custom Field Existence Validation Issue

commit db81701621
Merge: a05c33feb 147fcfb8e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:44:24 2024 +0100

    Merge branch 'develop' into better_handle_inline_files

commit a05c33febf
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:43:19 2024 +0100

    Squashed commit of the following:

    commit 147fcfb8eb
    Merge: 58a3d09b5 fdcc17ca2
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 15:12:55 2024 +0100

        Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

        Fix user creation with FullMultipleCompanySupport enabled over API

    commit 58a3d09b5f
    Merge: 30a06a594 867fa2f36
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 14:55:42 2024 +0100

        Merge pull request #15703 from marcusmoore/bug/sc-27188

        Linked accessory files in activity report

    commit 30a06a5942
    Merge: 6c6af78e0 ce3086317
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:47:06 2024 +0100

        Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

        Removed brianium/paratest

    commit 6c6af78e08
    Merge: 9b06bbb6c 3f79fd7ea
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:46:04 2024 +0100

        Merge pull request #15705 from marcusmoore/tests/icon-component-test

        Added test to ensure icon component does not end in newline

    commit 3f79fd7ea7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 17:07:40 2024 -0700

        Add test to ensure icon component does not end in newline

    commit 9b06bbb6c3
    Merge: 46ad1d072 d7f70146f
    Author: snipe <snipe@snipe.net>
    Date:   Mon Oct 21 22:38:26 2024 +0100

        Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

        Removed second icon in accessory file list

    commit ce30863177
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:57:04 2024 -0700

        Remove brianium/paratest dependency

    commit d7f70146f4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:48:25 2024 -0700

        Remove extra icon in accessory file upload list

    commit 867fa2f36e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 12:40:24 2024 -0700

        Display file in activity report for accessories

    commit 0933a2d4ea
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Oct 17 18:01:48 2024 -0700

        Remove --parallel flag

    commit 46ad1d072f
    Merge: bcb4bd9eb 3cf746d7d
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 15:29:47 2024 +0100

        Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

        Bulk checkout to bulk actions

    commit bcb4bd9eb4
    Merge: 250037540 f50ccbcc4
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 10:20:13 2024 +0100

        Merge pull request #15683 from Toreg87/fixes/outdated_comment

        Fix outdated comment in CompanyableTrait

    commit f50ccbcc49
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Thu Oct 17 11:07:28 2024 +0200

        Fix outdated comment in CompanyableTrait

        As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

    commit 3cf746d7df
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Oct 16 23:13:32 2024 +0100

        Rework the bulk checkout to not change how all checkouts work

    commit 6b7af802af
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Thu Oct 10 13:28:23 2024 +0100

        Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

    commit fdcc17ca2c
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Wed Oct 16 11:18:24 2024 +0200

        Fix user creation with FullMultipleCompanySupport enabled over API

        It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
        Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

        Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

    Signed-off-by: snipe <snipe@snipe.net>

commit 147fcfb8eb
Merge: 58a3d09b5 fdcc17ca2
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:12:55 2024 +0100

    Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

    Fix user creation with FullMultipleCompanySupport enabled over API

commit 58a3d09b5f
Merge: 30a06a594 867fa2f36
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 14:55:42 2024 +0100

    Merge pull request #15703 from marcusmoore/bug/sc-27188

    Linked accessory files in activity report

commit 30a06a5942
Merge: 6c6af78e0 ce3086317
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:47:06 2024 +0100

    Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

    Removed brianium/paratest

commit 6c6af78e08
Merge: 9b06bbb6c 3f79fd7ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:46:04 2024 +0100

    Merge pull request #15705 from marcusmoore/tests/icon-component-test

    Added test to ensure icon component does not end in newline

commit 3f79fd7ea7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 17:07:40 2024 -0700

    Add test to ensure icon component does not end in newline

commit 9b06bbb6c3
Merge: 46ad1d072 d7f70146f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 22:38:26 2024 +0100

    Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

    Removed second icon in accessory file list

commit ce30863177
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:57:04 2024 -0700

    Remove brianium/paratest dependency

commit d7f70146f4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:48:25 2024 -0700

    Remove extra icon in accessory file upload list

commit 867fa2f36e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:40:24 2024 -0700

    Display file in activity report for accessories

commit e1882ee6d2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:21:45 2024 -0700

    Add comment

commit 7eee239378
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:20:28 2024 -0700

    use is_numeric instead of is_int

commit 4188849ae1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:19:48 2024 -0700

    Add failing test case

commit 787e651778
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:52:21 2024 +0100

    Fixed todos with log message

    Signed-off-by: snipe <snipe@snipe.net>

commit ef9b6e3b07
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:54 2024 +0100

    Code cleanup

    Signed-off-by: snipe <snipe@snipe.net>

commit 06c599cc17
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:03 2024 +0100

    Added method to show or download file

    Signed-off-by: snipe <snipe@snipe.net>

commit 6105323877
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 14:11:20 2024 +0100

    Use plural class name for src

    Signed-off-by: snipe <snipe@snipe.net>

commit 0933a2d4ea
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 18:01:48 2024 -0700

    Remove --parallel flag

commit a8d853c44a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:26:27 2024 -0700

    Remove focus group tags

commit 7e1b47708e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:18:41 2024 -0700

    Fix failing test ensuring company id is an integer

commit 979e4502ff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:14:39 2024 -0700

    Have getIdForCurrentUser method return null if FMCS enabled, user is not super admin, and does not have company

commit ff113ef523
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 14:56:58 2024 -0700

    typo fix

commit 99dd51a965
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:53:18 2024 -0700

    Improve name

commit 15c2169477
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:31:05 2024 -0700

    Scaffold additional tests

commit 50fa6ce335
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:12:22 2024 -0700

    Scaffold tests

commit 7ae76e7db9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:55:03 2024 -0700

    remove viewdata array from 3 tests

commit b98058ca98
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:48:26 2024 -0700

    fix tests pt 3

commit 83e8186d9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:39:56 2024 -0700

    fix assertSent to AssertNotSent on some test

commit cdd4fef7df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:34:55 2024 -0700

    attempt to fix tests p2

commit dceb8e305f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:11:39 2024 -0700

    attempt to fix tests

commit 123cdeb858
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:39:48 2024 -0700

    add email check to listener

commit 496b44e887
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:28:57 2024 -0700

    merged composer lock from dev

commit a690cc3582
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:26:55 2024 -0700

    removing my composer stuff again..for the last time

commit ceb3f5cea6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:19:50 2024 -0700

    added mail-gun and http-client to 8.1

commit 65735a31f1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:18:34 2024 -0700

    removed symfony/mailgun-mailer symfony/http-client

commit 285d6897cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:05:36 2024 -0700

    added a coulple test adjustments and moved mail send logic to listener

commit 159a1d3f43
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 11:48:55 2024 -0700

    Be more explicit

commit d1149730be
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 16:31:17 2024 +0100

    Apply blade component to files views

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ad1d072f
Merge: bcb4bd9eb 3cf746d7d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 15:29:47 2024 +0100

    Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

    Bulk checkout to bulk actions

commit 780ed91a10
Author: NebelKreis <leipold.johannes@web.de>
Date:   Thu Oct 17 16:09:25 2024 +0200

    Fix: Removed strtolower() from dashboard titles

    This fix ensures the correct capitalization in different languages.

commit bcb4bd9eb4
Merge: 250037540 f50ccbcc4
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 10:20:13 2024 +0100

    Merge pull request #15683 from Toreg87/fixes/outdated_comment

    Fix outdated comment in CompanyableTrait

commit f50ccbcc49
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Thu Oct 17 11:07:28 2024 +0200

    Fix outdated comment in CompanyableTrait

    As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

commit 9a79483375
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:59:18 2024 -0700

    removed namespaces from routing

commit ed6034065b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:47:36 2024 -0700

    removed test route

commit a7754c1a7f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:46:52 2024 -0700

    fixed asset checkout markdown, and notifiable variable

commit 0e9b3c9119
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:39 2024 +0100

    Check for existence before trying to get the icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 4933aa5784
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:04 2024 +0100

    Add StorageHelper to app config

    Signed-off-by: snipe <snipe@snipe.net>

commit d67addc69e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:21:43 2024 +0100

    Removed filetype column - it’s dumb

    Signed-off-by: snipe <snipe@snipe.net>

commit 02c80ff18a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:40 2024 +0100

    Added comment

    Signed-off-by: snipe <snipe@snipe.net>

commit c01190fac2
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:34 2024 +0100

    Conditionally add content-type

    Signed-off-by: snipe <snipe@snipe.net>

commit 017884f843
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:09:09 2024 +0100

    Added checks and filetype display

    Signed-off-by: snipe <snipe@snipe.net>

commit c49921f50f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:54 2024 +0100

    Removed unused (maybe?) API endpoint

    Signed-off-by: snipe <snipe@snipe.net>

commit c49abb6aea
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:38 2024 +0100

    Refactor the UserFilesController show method for simpler inlining

    Signed-off-by: snipe <snipe@snipe.net>

commit ccd2019448
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:04 2024 +0100

    Removed unusded use statements

    Signed-off-by: snipe <snipe@snipe.net>

commit 96191a5e93
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:54 2024 +0100

    Added method to decide if the file should be inlinable

    Signed-off-by: snipe <snipe@snipe.net>

commit c56affd663
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:37 2024 +0100

    Added SVG icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 02bda3cd95
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:53:05 2024 -0700

    adds Checkout Consumable mailable and slackwebhook channel to notifs

commit 02ff646da4
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:44:45 2024 -0700

    adds checkin license mailable

commit 4becdca8aa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:39:20 2024 -0700

    removes toMail from license notificaqtion

commit 2584d60344
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:38:49 2024 -0700

    adds Licenses seat checkout Mailable

commit f1d83a3f28
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:30:53 2024 -0700

    forgot to add asset checkout markdown to projet

commit c39df34bdf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:29:50 2024 -0700

    forgot to add accessory mail to project

commit dcdf600b78
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:27:34 2024 -0700

    adds Checkin and Checkout mailables and listner logic

commit 3cf746d7df
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 16 23:13:32 2024 +0100

    Rework the bulk checkout to not change how all checkouts work

commit 6b7af802af
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 10 13:28:23 2024 +0100

    Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

commit 9710436d54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 13:12:07 2024 -0700

    adds Mailables for asset checkin and out

commit 16cffe9a9d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:53:35 2024 -0700

    simplified checkout webhook call

commit 9e1b86f586
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:51:19 2024 -0700

    sends checkout notification via webhook

commit 3ab2521cb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:21:33 2024 -0700

    email comes through, no picture and html markup appear though.

commit 604a964462
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:52:24 2024 -0700

    Improve scenario descriptions

commit 2f72c66614
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:30:06 2024 -0700

    Add additional case

commit fdcc17ca2c
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Wed Oct 16 11:18:24 2024 +0200

    Fix user creation with FullMultipleCompanySupport enabled over API

    It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
    Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

    Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

commit cba1a56040
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:38:11 2024 -0700

    Improve readability?

commit d9afde4610
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:00:22 2024 -0700

    Write failing test

commit 9f06a0e441
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 14:01:28 2024 -0700

    handle some edge cases, null values clean up variable names

commit 42095c0167
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 13:02:22 2024 -0700

    Add reference link

commit f8476f7133
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 12:49:52 2024 -0700

    finished the construct and mail call in the listner

commit b29d032bf0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 11:28:27 2024 -0700

    adds checkoutAssetMail class, and content method

commit 2500375400
Merge: 16c8264e7 e4e1d0d50
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 17:34:35 2024 +0100

    Merge pull request #15672 from uberbrady/ldap_location_fixes

    Clean up how we use the '$location' in LDAP sync command

commit e4e1d0d50a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Oct 15 17:26:31 2024 +0100

    Clean up how we use the '$location' in LDAP sync command

commit 16c8264e76
Merge: 914a64720 0ae9ce0aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:42:34 2024 +0100

    Merge pull request #15671 from snipe/bug/sc-27147

    Bug/sc 27147

commit 0ae9ce0aa9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:45 2024 +0100

    Cannot sort by updated at on Users [sc-27147]

    Signed-off-by: snipe <snipe@snipe.net>

commit 50b8f180b3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:39 2024 +0100

    More logical grouping in allow_columns

    Signed-off-by: snipe <snipe@snipe.net>

commit 914a647204
Merge: 69b6080bd e9225ff3e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:47:15 2024 +0100

    Merge pull request #15669 from snipe/remlove_ou_requirenedess

    Fixed #15663 - remove requiredness for OU

commit e9225ff3ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:43:10 2024 +0100

    Switch to regular HTML for input form field

    Signed-off-by: snipe <snipe@snipe.net>

commit d0d4159088
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:42:09 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 69b6080bd8
Merge: ddead359d b997d728f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:31:29 2024 +0100

    Merge pull request #15666 from snipe/updated_readme_llm

    Added LLM note

commit b997d728fb
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:30:34 2024 +0100

    Added LLM note

    Signed-off-by: snipe <snipe@snipe.net>

commit ddead359d0
Merge: 0d35335da f3c4e5566
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 14 14:29:34 2024 +0100

    Merge pull request #15660 from Toreg87/fixes/api_asset_create_fmcs2

    Refactor asset creation with API

commit f3c4e55667
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Mon Oct 14 15:14:41 2024 +0200

    Refactor asset creation with API

    Commit fb4fe3004 restored the previous behaviour to check the company_id in case of FullMultipleCompanySupport.
    But after rereading the code and the laravel documentation, the check is already there where it belongs in AssetStoreRequest::prepareForValidation()
    The bug is the is_int-check of the request input in prepareForValidation(). Is is of type string even if it is a numeric value, so the call to getIdForCurrentUser() never happend.
    Fix this by removing the check and the now redundant call to getIdForCurrentUser().
    Wrong values will get caught by the model-level validation rules.

commit 0d35335da7
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 16:06:17 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit feaa714304
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 14:23:57 2024 +0100

    Nicer disabled button

    Signed-off-by: snipe <snipe@snipe.net>

commit e1a70023b1
Merge: de62359c6 fb4fe3004
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:45:48 2024 +0100

    Merge pull request #15655 from Toreg87/fixes/api_asset_create_fmcs

    Fixes #15654 Fix asset creation with API and FullMultipleCompanySupport

commit de62359c67
Merge: 12bda8fc7 3dc64cc5e
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:29:34 2024 +0100

    Merge pull request #15533 from marcusmoore/testing/fmcs-accessories

    Added tests for accessory api controller

commit 12bda8fc7b
Merge: 8aa298f6b b054017c9
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:27:18 2024 +0100

    Merge pull request #15653 from snipe/15651_admin_user_on_maintenances

    Fixed #15651 - admin user now displaying on maintenances page

commit fb4fe30049
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Fri Oct 11 12:09:09 2024 +0200

    Fix asset creation with API and FullMultipleCompanySupport

    It is currently possible to create an asset with arbitrary company without being superuser and FullMultipleCompanySupport enabled.
    This bug goes back to 75ac7f80b9 which is part of version 6.3.0.
    Fix this by restoring the previous behaviour to check the company_id with getIdForCurrentUser().

commit b054017c9f
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:16:24 2024 +0100

    Fixed #15651 - admin user now displaying on maintenances page

    Signed-off-by: snipe <snipe@snipe.net>

commit 524a442724
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Thu Oct 10 23:32:07 2024 +0100

    Improved import performance

commit 8aa298f6b0
Merge: 1f3465773 b5b93fdd3
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:53 2024 +0100

    Merge pull request #15644 from snipe/form_requests_for_settings

    Form requests for settings

commit 1f34657734
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:35 2024 +0100

    Fixed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 0856ee648e
Merge: 94a074a19 1dafc970d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:23:14 2024 +0100

    Merge pull request #15648 from snipe/update_packages

    Updated livewire to 3.5.2

commit 1dafc970df
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:19:57 2024 +0100

    Updated livewire to 3.5.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 94a074a193
Merge: 2d49e1eff b34a7c8aa
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:11:10 2024 +0100

    Merge pull request #15601 from snipe/check_db_on_healthcheck

    Fixed #15439 - check database on healthcheck

commit 2d49e1eff2
Merge: 705bc6f0c c2663ea1e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:09:11 2024 +0100

    Merge pull request #15637 from akemidx/bug/sc-26614

    FIXED: Badge counter showing deleted assets on User page

commit 705bc6f0c0
Merge: 3ee571374 67a605c9a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:08:25 2024 +0100

    Merge pull request #15642 from uberbrady/fix_bulk_checkout

    Fix bulk checkout to users, assets, and locations

commit b5b93fdd3a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 00:27:00 2024 +0100

    Make ldap username required

    Signed-off-by: snipe <snipe@snipe.net>

commit d9432baf7a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 23:51:20 2024 +0100

    Mlore ldap style improvements

    Signed-off-by: snipe <snipe@snipe.net>

commit 90be2a4498
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:26:30 2024 +0100

    Use newer naming convention for errors

    Signed-off-by: snipe <snipe@snipe.net>

commit 3886da8941
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:49 2024 +0100

    Remove form request from get LDAP method

    Signed-off-by: snipe <snipe@snipe.net>

commit 130e0c6242
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:37 2024 +0100

    More validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 4361a10818
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:30 2024 +0100

    Added string

    Signed-off-by: snipe <snipe@snipe.net>

commit aa8048ac15
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:25 2024 +0100

    Blade changes for ldap

    Signed-off-by: snipe <snipe@snipe.net>

commit 710e738e8e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:16 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3705b91439
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:51:34 2024 +0100

    Added more validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 707bdad192
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:56 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit 242fe33f97
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:42 2024 +0100

    Switch to regular HTML input

    Signed-off-by: snipe <snipe@snipe.net>

commit ded79469c1
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:29 2024 +0100

    Remove unused controller method

    Signed-off-by: snipe <snipe@snipe.net>

commit d9fbf330e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:15 2024 +0100

    Fixed translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 2cb9ac26cd
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:57:04 2024 +0100

    Renamed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 185bc966e6
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:46:47 2024 +0100

    Cleaned up use statements in tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a7f7e4938f
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:31:56 2024 +0100

    Added form action

    Signed-off-by: snipe <snipe@snipe.net>

commit 2883e79193
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:55 2024 +0100

    Removed unecessary assets creation

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c4191ae0a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:42 2024 +0100

    Basic tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3a77b83e9c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:34 2024 +0100

    Added space

    Signed-off-by: snipe <snipe@snipe.net>

commit d9be2b5a5e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:25 2024 +0100

    Trying to use the email_array translation

    Signed-off-by: snipe <snipe@snipe.net>

commit 69c43c610c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:00 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 4f957bcf71
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:34:53 2024 +0100

    Required flag

    Signed-off-by: snipe <snipe@snipe.net>

commit 5cda7cce48
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:21:40 2024 +0100

    Only accept a positive number for thresholds

    Signed-off-by: snipe <snipe@snipe.net>

commit 41b94e7128
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:19:26 2024 +0100

    Fixed form input group

    Signed-off-by: snipe <snipe@snipe.net>

commit aa55fa6ff4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:16:34 2024 +0100

    Switch to form requests for settings

    Signed-off-by: snipe <snipe@snipe.net>

commit 67a605c9a5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 9 17:01:26 2024 +0100

    Fix bulk checkout to users, assets, and locations

commit c2663ea1e0
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Oct 8 16:38:33 2024 -0400

    withouttrashed

commit 3ee5713740
Merge: ab8a22f77 56e7ea667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 23:13:15 2024 +0100

    Merge pull request #15631 from snipe/test/importer-tests

    Add importer tests

commit ab8a22f77e
Merge: 26d7572bc 8c9132aff
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:56:23 2024 +0100

    Merge pull request #15630 from marcusmoore/bug/sc-27028

    Only show EULA when available on print users page

commit 56e7ea6677
Merge: 32551d55d 803532667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:29:35 2024 +0100

    Merge pull request #15616 from marcusmoore/test/importer-test-updates

    Improve importer tests

commit 26d7572bcc
Merge: 382ebef8c ee046a868
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:28:53 2024 +0100

    Merge pull request #15603 from marcusmoore/fixes/add-reguard

    Added `Model::reguard()` to importer

commit 8c9132aff9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 7 14:22:49 2024 -0700

    Hide EULA text and button when nothing will be displayed

commit 382ebef8ca
Merge: 2be88cb95 f76da4844
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 21:26:21 2024 +0100

    Merge pull request #15621 from sniff122/develop

    Docker Env: Change trusted proxies to RFC1918

commit 2be88cb955
Merge: 7fc498a59 3f36d5f9b
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:14:24 2024 +0100

    Merge pull request #15624 from snipe/fixed_line_break_on_print_all_for_users

    Removed duplicate JS and removed line break before user section

commit 3f36d5f9b3
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:08:02 2024 +0100

    Removed duplicate CSS and removed line break before user section

    Signed-off-by: snipe <snipe@snipe.net>

commit f76da48448
Author: Lewis Foster <lewis@sniff122.tech>
Date:   Sat Oct 5 18:27:42 2024 +0100

    Docker Env: Change trusted proxies to RFC1918

commit 8035326675
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 16:53:19 2024 -0700

    Add test

commit dfdd85abb1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:14:07 2024 -0700

    Remove unused imports

commit 063ea1892b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:02:03 2024 -0700

    Add trait to clean up files after test runs

commit e213053775
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:59:58 2024 -0700

    Swap factory syntax

commit 88d549e7c5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:40:37 2024 -0700

    Remove unused data provider method

commit 983a25aa5f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:39:54 2024 -0700

    Simplify permission tests

commit bde05d6ed9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:49 2024 -0700

    Use new() instead of times()

commit b5ffe54bd0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:02 2024 -0700

    Swap assertEquals parameter order

commit 863c0a8b60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 11:43:02 2024 -0700

    Fix import_type for accessory state

commit 32551d55d7
Merge: 7fc498a59 e807cfab8
Author: Marcus Moore <mmoore@grokability.com>
Date:   Thu Oct 3 11:39:21 2024 -0700

    Merge pull request #15579 from bryanlopezinc/ImportTests

    Add Import data tests

commit 7fc498a597
Merge: 78ca1026f cb281c640
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:39:18 2024 +0100

    Merge pull request #15613 from snipe/css_fixes_for_long_values

    Smarter word-wrapping on long text

commit cb281c6408
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:33:46 2024 +0100

    Tweaked line height

    Signed-off-by: snipe <snipe@snipe.net>

commit f483cd448f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:27:37 2024 +0100

    Smarter work-wrapping on long text

    Signed-off-by: snipe <snipe@snipe.net>

commit 78ca1026fd
Merge: 3699d7936 722d5a58e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:24:32 2024 +0100

    Merge pull request #15612 from snipe/fixes_print_assigned_in_profile

    Fixes print assigned in profile

commit 722d5a58e7
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:38 2024 +0100

    Added isset on users

    Signed-off-by: snipe <snipe@snipe.net>

commit 7461c3e0ca
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:27 2024 +0100

    Change controller to assume a collection. (This is dumb, but whatever)

    Signed-off-by: snipe <snipe@snipe.net>

commit 3c0f4181ae
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:06 2024 +0100

    Use the newer button style

    Signed-off-by: snipe <snipe@snipe.net>

commit 3699d79363
Merge: 54fbd0540 350b627ce
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 14:34:00 2024 +0100

    Merge pull request #15610 from uberbrady/fix_numeric_sort_bug

    Fix numeric sort 'ambiguous order clause' error

commit 350b627ce1
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 3 14:23:40 2024 +0100

    Fix numeric sort 'ambiguous order clause' error

commit ee046a8688
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 2 10:50:40 2024 -0700

    Add matching Model::reguard()

commit b34a7c8aad
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:48:35 2024 +0100

    Removed die()

    Signed-off-by: snipe <snipe@snipe.net>

commit f92bf5dc20
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:39:27 2024 +0100

    Updated language for failure

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d9e85026a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:36:01 2024 +0100

    Fixed #15439 - check database on healthcheck

    Signed-off-by: snipe <snipe@snipe.net>

commit 54fbd0540d
Merge: b483bb163 4db735808
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:49 2024 +0100

    Merge branch 'develop' of https://github.com/snipe/snipe-it into develop

commit b483bb1633
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:45 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4db7358086
Merge: 0dd6f41f6 b9cfdf2e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:38:46 2024 +0100

    Merge pull request #15593 from Godmartinz/Fixed-divide-by-zero-bug

    Fixed divide by zero bug in depreciation transformer

commit 0dd6f41f66
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:04:55 2024 +0100

    Simplified 2fa if/else

    Signed-off-by: snipe <snipe@snipe.net>

commit 684c20ae39
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:00:49 2024 +0100

    Fixed parenthasis

    Signed-off-by: snipe <snipe@snipe.net>

commit 3153bbb13f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 17:04:18 2024 -0500

    dumb fix

commit 3dc64cc5e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 13:35:39 2024 -0700

    Reference accessory checkout and not the accessory

commit c32f4e34b4
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:35:49 2024 +0100

    Minor formatting fix

    Signed-off-by: snipe <snipe@snipe.net>

commit ca1886cebc
Merge: 45ab49eea a79dfea40
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:31:38 2024 +0100

    Merge pull request #15594 from snipe/localizations/update-2024-10-01

    Updated strings

commit a79dfea40a
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:30:58 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit 45ab49eeab
Merge: 97d00e5aa 8232618a9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:26:42 2024 +0100

    Merge pull request #15592 from spencerrlongg/bug/catch_request_notify_errors

    Catch Errors Around Request Notifications

commit 8232618a9f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:26:32 2024 -0500

    change the other one too

commit 9a651b567d
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:24:03 2024 -0500

    change error to warning

commit 97d00e5aa8
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:08:54 2024 +0100

    Fixed erroneous form tag on anchor

    Signed-off-by: snipe <snipe@snipe.net>

commit 5b90d79494
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 11:50:48 2024 -0700

    Use created_by

commit b9cfdf2e54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:41:59 2024 -0700

    reworked monthly depreciation variable value

commit 1139acd9f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 13:36:47 2024 -0500

    catch errors around request notifications

commit b7ad80bd31
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:24:24 2024 -0700

    fix monthly depreciation value

commit 5ffd1b8daa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:02:39 2024 -0700

    fixes if statement in transformer

commit 9a2117466e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:40 2024 +0100

    Removed placeholder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7e3a062984
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:07 2024 +0100

    Use <th> for table header in bulk interstitial

    Signed-off-by: snipe <snipe@snipe.net>

commit d274fb6963
Merge: cfc04a1d1 27ba641aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:32:48 2024 +0100

    Merge pull request #15589 from snipe/adds_checkin_action_on_asset_delete

    Adds checkin action on asset delete via View UI

commit 27ba641aa5
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:30:34 2024 +0100

    Added checkin on delete to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 5823197e6f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:29:02 2024 +0100

    Added checkin action on delete for checked out assets

    Signed-off-by: snipe <snipe@snipe.net>

commit cfc04a1d12
Merge: 12da43303 cae8aa784
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:08:58 2024 +0100

    Merge pull request #15588 from snipe/added_more_maxlengths

    Added maxlengths to additional fields

commit cae8aa7840
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:02:54 2024 +0100

    Added maxlengths to additional fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 12da43303f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 01:44:05 2024 +0100

    Fixed #15584 - regression with required css change

    Signed-off-by: snipe <snipe@snipe.net>

commit fdfea390fb
Merge: d609ed50a 5689e940b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 30 12:59:27 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b04afbbc85
Merge: b964ce102 3f311ba2f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:26:08 2024 +0100

    Merge pull request #15564 from uberbrady/improve_autoclose

    Get us better debugging output for new Github Stale Action

commit b964ce1025
Merge: 6217cba20 68e3f375f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:25:05 2024 +0100

    Merge pull request #15583 from Godmartinz/remove-sortable-from-depreciations

    Removed sortablity for current value column in depreciations report

commit 6217cba201
Merge: 5689e940b b32ab6a06
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:24:19 2024 +0100

    Merge pull request #15524 from Godmartinz/double-notif-bug

    Fixed double webhook notifications // Separated email and webhook notifications.

commit 68e3f375fc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 30 11:15:49 2024 -0700

    removes sortablity from current value column

commit 5689e940b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 18:23:12 2024 +0100

    Fixed #15581 - missing bracker

    Signed-off-by: snipe <snipe@snipe.net>

commit e807cfab86
Merge: 0b3f45856 001348c63
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:47:52 2024 +0100

    Merge branch 'develop' into importTests

commit 0b3f458561
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:42:41 2024 +0100

    Added tests for Import feature

commit 001348c638
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 14:33:42 2024 +0100

    Unset required on checkout select :(

    Related to the discussion at #15552

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b041af862
Merge: 260b15368 d120585f9
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 11:25:01 2024 +0100

    Merge remote-tracking branch 'origin/master' into develop

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 260b153689
Merge: 36b27fcda 05d74f7a9
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 16:09:51 2024 +0100

    Merge pull request #15573 from snipe/fixed_requiredness_indicator

    Fixes for requiredness indicator in UI

commit 05d74f7a92
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:42:03 2024 +0100

    Covered setup pages too

    Signed-off-by: snipe <snipe@snipe.net>

commit dc85588d7f
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:31:44 2024 +0100

    Don’t show password as required if editing

    Signed-off-by: snipe <snipe@snipe.net>

commit 585f998cae
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:28:06 2024 +0100

    Fixes for requiredness display

    Signed-off-by: snipe <snipe@snipe.net>

commit d120585f94
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 14:07:30 2024 +0100

    Check for valid eula for license, consumable

    Signed-off-by: snipe <snipe@snipe.net>

commit 166a700342
Merge: 6c85ba349 36b27fcda
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 36b27fcda3
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:14 2024 +0100

    Check for valid category before getting the eula

    Signed-off-by: snipe <snipe@snipe.net>

commit a44490e448
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:07:24 2024 +0100

    Nowrap on files column

    Signed-off-by: snipe <snipe@snipe.net>

commit 9aada2ec70
Merge: ac6411743 ef82f954e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 26 09:09:35 2024 +0100

    Merge pull request #15498 from Godmartinz/Modal_fix

    Refactoring modals with partials and fixing misalignments

commit 3f74ff25d2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 16:19:09 2024 -0700

    fixed error message

commit ef82f954e5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 15:47:57 2024 -0700

    fixed required css, and user input lengths

commit 3f311ba2fb
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 25 21:27:45 2024 +0100

    Get us better debugging output for new Github Stale Action

commit 96953aa2ed
Merge: e609b3976 b797c37ac
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:50:01 2024 -0700

    Merge pull request #23 from Godmartinz/Modal_fix_p3

    replace duplicate code with partials

commit b797c37acb
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:48:05 2024 -0700

    replace duplicate code with partials

commit 6c85ba3495
Merge: 9f8473e25 ac6411743
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:45:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ac6411743b
Merge: 9b03f4649 3f0245f88
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:35:58 2024 +0100

    Merge pull request #15563 from snipe/refined_gates_on_user_bulk

    Update for #15534 - Refined gates on user bulk

commit 3f0245f88f
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:33:00 2024 +0100

    Make controller gate match dropdown gate

    Signed-off-by: snipe <snipe@snipe.net>

commit c02647a0fa
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:32:03 2024 +0100

    Moved merge into delete gate, since they do technically delete

    Signed-off-by: snipe <snipe@snipe.net>

commit edca3f432c
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:30:58 2024 +0100

    Removed gate for delete

    Signed-off-by: snipe <snipe@snipe.net>

commit 2218c94aa3
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:29:23 2024 +0100

    Gates the dropdown based on user permissions

    Signed-off-by: snipe <snipe@snipe.net>

commit e609b39760
Merge: 0bc98e971 12522a379
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:09:26 2024 -0700

    Merge pull request #22 from Godmartinz/Modal_fix_p2

    Modal fix p2

commit 12522a3791
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:07:15 2024 -0700

    fix spacing issues

commit f6d7ea19e4
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:44:39 2024 +0100

    Set view as base permission, drill down for more intrusive actions

    Signed-off-by: snipe <snipe@snipe.net>

commit 18ddffe8f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:42:16 2024 -0700

    fix partial variable intialization, fix width of input fields

commit 9b03f46490
Merge: cb6e5042d fac4833b5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:32:01 2024 +0100

    Merge pull request #15534 from marcusmoore/bulk-print-users

    Added the ability to bulk print users

commit 926a319552
Merge: 0bc98e971 cb6e5042d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:10:24 2024 -0700

    Merge branch 'develop' into Modal_fix_p2

commit 9f8473e254
Merge: 0e61d0b19 cb6e5042d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:36:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb6e5042d9
Merge: c1a887b48 ba69259f2
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:59 2024 +0100

    Merge pull request #15547 from snipe/disallow_checkout_with_nondeployable_status

    Fixed #13396 - do not allow checkout to undeployable status types

commit c1a887b48b
Merge: ba1220484 658c94ad8
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:21 2024 +0100

    Merge pull request #15561 from snipe/fixes/adds_action_date_to_sorting

    Changed `action_date` to `created_at` in activity report

commit 658c94ad8b
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 17:25:15 2024 +0100

    Changed action_date to created_at

    Signed-off-by: snipe <snipe@snipe.net>

commit 0e61d0b195
Merge: abdddbec4 ba1220484
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ba12204842
Merge: eeabc8dc9 1c3babaca
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:14 2024 +0100

    Merge pull request #15555 from snipe/fixes/user_file_upload

    Fixed case on `$logAction` for user file upload

commit 1c3babacaf
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:46:57 2024 +0100

    Fixed case on logAction for usewr file upload

    Signed-off-by: snipe <snipe@snipe.net>

commit abdddbec44
Merge: a425c2b76 eeabc8dc9
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:58:25 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit eeabc8dc9d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:33:45 2024 +0100

    Dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 21f8ac8e52
Merge: c38222e95 2a2666be0
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:31:23 2024 +0100

    Merge pull request #15552 from Godmartinz/ragged-form-inputs

    Fixed input field misalignments

commit a425c2b765
Merge: 34eb10ff7 c38222e95
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 10:52:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 2a2666be0b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 24 13:24:50 2024 -0700

    makes required a pseudo field

commit c38222e956
Merge: 8cf1e4dce 0ce5832b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 18:10:53 2024 +0100

    Merge pull request #15549 from snipe/fixes/#15548_unify_audit_api_endpoints

    Fixes #15548 - unify audit api endpoints

commit 0ce5832b6c
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 17:29:40 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit b6340532d7
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 17:15:39 2024 +0100

    Improve the error and success messages and linking

commit 5fb43dd159
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:55:56 2024 +0100

    Handle `audit` *and* `audits` for urls

    Signed-off-by: snipe <snipe@snipe.net>

commit de57d71bf1
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:30:24 2024 +0100

    Fixed #15548 - unify audit due/overdue APIs

    Signed-off-by: snipe <snipe@snipe.net>

commit ba69259f2d
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 15:35:00 2024 +0100

    Fixed #13396 - do not allow checkout to undeployable status types

    Signed-off-by: snipe <snipe@snipe.net>

commit c71411465a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 15:17:35 2024 +0100

    First pass at better-handling those annoying Rollbars we keep getting

commit 8cf1e4dceb
Merge: ab0c009c0 66249a37e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:10:20 2024 +0100

    Merge pull request #15544 from snipe/bug/sc-26855

    Fixed app settings view on mobile

commit 66249a37ed
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:08:31 2024 +0100

    Tweaked styles

    Signed-off-by: snipe <snipe@snipe.net>

commit 96712cb398
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 10:55:26 2024 +0100

    Fixed app settings view on mobile

    Signed-off-by: snipe <snipe@snipe.net>

commit fac4833b58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 17:15:16 2024 -0700

    Remove unused import

commit a12c9d053f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:44:25 2024 -0700

    Hide label when printing

commit 8b3b68b308
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:43:14 2024 -0700

    Show or hide all eulas at once when printing multiple users

commit 4b02db5031
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:26:22 2024 -0700

    Add authorization check in bulk users controller

commit ab90c0cf05
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:40 2024 -0700

    Add missing eager load in bulk users controller

commit cef7ddc719
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:21 2024 -0700

    Add eager loads to userscontroller

commit 3870095a28
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:50:24 2024 -0700

    Fix Cannot read properties of undefined error by removing snipe-table class from eula table

commit a02e250b22
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:26:15 2024 -0700

    Add page breaks for each user

commit 8ac5c0e471
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 14:05:47 2024 -0700

    Re-combine layout and view

commit a2d4dcf6e8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 12:49:36 2024 -0700

    Use bulk actions menu

commit 54044bfa5e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:57:57 2024 -0700

    Add eager loads

commit e493cc964d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:48:07 2024 -0700

    Remove AssetCountForSidebar middleware from print view

commit 29af210f4f
Merge: 5128fd49e ab0c009c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:26:20 2024 -0700

    Merge branch 'develop' into bulk-print-users

commit 34eb10ff73
Merge: 7d7d58769 ab0c009c0
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab0c009c0d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:10 2024 +0100

    Fixed seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7d7d58769c
Merge: 245d5dc46 b68805cf8
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:13:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b68805cf83
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:11:52 2024 +0100

    Small fix for notifications checkout

    Signed-off-by: snipe <snipe@snipe.net>

commit 245d5dc469
Merge: 4ab478bb9 7d858129d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 17:28:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 7d858129d9
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:44:19 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 65ce63bc9b
Merge: 5eea9d195 54fba2f54
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:42:07 2024 +0100

    Merge pull request #15537 from snipe/snyk/updated_jspdf_autotable

    Updated jspdf autotable

commit 54fba2f547
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:40:41 2024 +0100

    Update jspdf autotable

    Signed-off-by: snipe <snipe@snipe.net>

commit 5eea9d1950
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:56 2024 +0100

    Corrected text warning translation

    Signed-off-by: snipe <snipe@snipe.net>

commit b84a634ec7
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:35 2024 +0100

    Corrected comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2fc88a0e08
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:26 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit bc540b6564
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:02:28 2024 +0100

    Requestable status not saving with manual [sc-26848]

    Signed-off-by: snipe <snipe@snipe.net>

commit f53b852dff
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:53:52 2024 +0100

    Make created_by equal one in the seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit b83d1a043f
Merge: cdb7ccb8f b21c303e5
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:47:31 2024 +0100

    Merge pull request #15519 from snipe/features/add_created_at_created_by

    Change `user_id` to `created_by`

commit 4ab478bb97
Merge: d96c5e1ba cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:44:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b21c303e56
Merge: b88f2054d cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:43:50 2024 +0100

    Merge remote-tracking branch 'origin/develop' into features/add_created_at_created_by

commit 5128fd49e6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:27:25 2024 -0700

    Allow printing all users

commit 2d2d5bdc7e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:23:47 2024 -0700

    Pass user in array

commit 8364d26c9b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:18:26 2024 -0700

    Extract parent layout

commit efd6d7625f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:16:05 2024 -0700

    Remove bad closing tag

commit bdf5708bfc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:43 2024 -0700

    Remove accidental line

commit e95703cb18
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:07 2024 -0700

    Use eager load

commit 7ad4a29970
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 16:54:39 2024 -0700

    Add eager loading

commit cdb7ccb8f3
Merge: 8270947ed d446773fd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:54:03 2024 +0100

    Merge pull request #15532 from spencerrlongg/bug/15253

    Catch Exceptions on Checkout Notification

commit 8270947ed2
Merge: 4f7c8e0c3 8e1111c68
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:49:27 2024 +0100

    Merge pull request #13291 from akemidx/eol_date_range_for_reports

    Added date range for EOL in custom reports

commit 4f7c8e0c3d
Merge: d7bde3784 3ea5d4ee4
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:36:09 2024 +0100

    Merge pull request #14671 from Robert-Azelis/patch-6

    [FIX] Update EOL date when used bulk update of purchase date

commit d609ed50a4
Merge: d639d6fbc d7bde3784
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 13:20:55 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b88f2054dd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:38:34 2024 +0100

    Refactor isDeletable on companies

    Signed-off-by: snipe <snipe@snipe.net>

commit d7914e238d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:34:54 2024 +0100

    Added created by to company on save

    Signed-off-by: snipe <snipe@snipe.net>

commit d7bde37842
Merge: 454796e52 4facc4007
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:33:10 2024 +0100

    Merge pull request #15507 from setpill/setpill/feat/use_explicit_attributes_in_ldap_sync

    Added #15506: Explicitly request used LDAP attributes

commit 454796e52a
Merge: eef487d61 7c85ad54e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:32:03 2024 +0100

    Merge pull request #15518 from snipe/sort_by_numeric_custom_fields

    Fixed #11634 - Sort by numeric columns for numeric custom fields

commit eef487d61b
Merge: dddbf27d7 71dbc7abb
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:31:02 2024 +0100

    Merge pull request #15531 from Godmartinz/status-doesnt-update-in-email

    Fixed mail notification field `status label` not updating

commit 71dbc7abb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 19 12:23:07 2024 -0700

    refreshed the assetstatus relationship

commit d639d6fbc1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:21:54 2024 -0700

    Add tests for accessory select list endpoint

commit 74088ea581
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:13:38 2024 +0100

    Optimize isDeletable counts

    Signed-off-by: snipe <snipe@snipe.net>

commit fff069824b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:11:03 2024 -0700

    Add tests for update accessory endpoint

commit d446773fdd
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Thu Sep 19 14:05:48 2024 -0500

    catch exceptions on notification

commit f283b5fbe8
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:56:39 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit a5be18bb14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:55:15 2024 -0700

    Add test for limit and offset

commit eb6f05faf7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:46 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit 118183ff58
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:39 2024 +0100

    Removed footer

    Signed-off-by: snipe <snipe@snipe.net>

commit 2137890496
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:33:20 2024 -0700

    Remove dead code

commit ebf6ce6980
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:27:10 2024 +0100

    Refactor for fewer queries

    Signed-off-by: snipe <snipe@snipe.net>

commit 9b22d6d493
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:24:01 2024 -0700

    Add tests for accessory checkouts endpoint

commit 5ebf0ed2b2
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:19:14 2024 +0100

    Updated variable

    Signed-off-by: snipe <snipe@snipe.net>

commit 836893cba5
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:35:00 2024 +0100

    Added id to report

    Signed-off-by: snipe <snipe@snipe.net>

commit cd98b3817d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:26:08 2024 +0100

    Removed duplicate line

    Signed-off-by: snipe <snipe@snipe.net>

commit 727806372c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:22:11 2024 +0100

    Added created_by to status label

    Signed-off-by: snipe <snipe@snipe.net>

commit 5e1c736d49
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:04:50 2024 +0100

    Added created_by for manufacturers

    Signed-off-by: snipe <snipe@snipe.net>

commit 6579fa72da
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:56:05 2024 +0100

    Added scoping for categories and companies

    Signed-off-by: snipe <snipe@snipe.net>

commit 82d6e1510f
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:41:05 2024 +0100

    Order by created_by for depreciations

    Signed-off-by: snipe <snipe@snipe.net>

commit 822ea96dfd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:31:46 2024 +0100

    Use auth()->id() instead of Auth::id()

    Signed-off-by: snipe <snipe@snipe.net>

commit b247fc33b9
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:28:01 2024 +0100

    Added legacy comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2dcae780c0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:26:21 2024 +0100

    Reapply deleted code

    Signed-off-by: snipe <snipe@snipe.net>

commit 5c3180ffa0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:25:09 2024 +0100

    Removed duplicate code

    Signed-off-by: snipe <snipe@snipe.net>

commit 65eba30038
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:23:34 2024 +0100

    Fixed markdown in acceptance reminder

    Signed-off-by: snipe <snipe@snipe.net>

commit bbce7b40ca
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:20:56 2024 +0100

    Additional consistencies

    Signed-off-by: snipe <snipe@snipe.net>

commit 02a29c71ef
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:48 2024 +0100

    Added created_by

    Signed-off-by: snipe <snipe@snipe.net>

commit 6699995972
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:36 2024 +0100

    Added created_by to components

    Signed-off-by: snipe <snipe@snipe.net>

commit 951f03094a
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:17 2024 +0100

    Added created_by to kits

    Signed-off-by: snipe <snipe@snipe.net>

commit 354b00ef15
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:51 2024 +0100

    Made method name consistent

    Signed-off-by: snipe <snipe@snipe.net>

commit c93229179b
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:39 2024 +0100

    Added order by created_by to accessories

    Signed-off-by: snipe <snipe@snipe.net>

commit a77a7065d7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:34:10 2024 +0100

    Added order by admin to assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 4363e8b34c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:20:42 2024 +0100

    Updated importer

    Signed-off-by: snipe <snipe@snipe.net>

commit 9adb2c24f3
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:06:36 2024 +0100

    Squashed commit of the following:

    commit dddbf27d78
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 14:18:52 2024 +0100

        Updated language strings

        Signed-off-by: snipe <snipe@snipe.net>

    commit fcefcc8184
    Merge: 04bb3eec8 3519a82dd
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:44:44 2024 +0100

        Merge pull request #15512 from marcusmoore/testing/fmcs

        Added tests for delete methods in api

    commit 04bb3eec83
    Merge: 154d5d8d9 f963b9a19
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:41:37 2024 +0100

        Merge pull request #15521 from uberbrady/improve_country_selector

        Fix selected-index of Countries drop-down [fd-44144]

    commit f963b9a19f
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 18 13:24:26 2024 +0100

        Fix selected-index of Countries drop-down

    commit 154d5d8d91
    Merge: 6c996b775 9e5f6d656
    Author: snipe <snipe@snipe.net>
    Date:   Tue Sep 17 23:40:25 2024 +0100

        Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

        [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

    commit 3519a82ddd
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 16:55:20 2024 -0700

        Fix name: TestsFullMultipleCompaniesSupport

    commit a629df07bf
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:49:08 2024 -0700

        Implement interfaces on existing test classes

    commit 9a13fcab23
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:38:38 2024 -0700

        Pluralize

    commit f5705a1dde
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:34:55 2024 -0700

        More unification

    commit f325c4afdb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:32:38 2024 -0700

        Unify assertion method

    commit 1fddacd7d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:25:11 2024 -0700

        Re-order test methods

    commit 4af893df61
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:20:24 2024 -0700

        Improve assertions

    commit b8b3f91ce4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:55:18 2024 -0700

        Formatting

    commit 7f40f55343
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:52:02 2024 -0700

        Add tests for delete supplier endpoint

    commit b06e8d442d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:37:08 2024 -0700

        Add tests for delete status label endpoint

    commit c269184c60
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:29:41 2024 -0700

        Add tests for delete predefined kit endpoint

    commit 53c673dee2
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:13:12 2024 -0700

        Add tests for delete manufacturer endpoint

    commit 50730fc4fb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:37:18 2024 -0700

        Add tests for delete location endpoint

    commit 60a54cee79
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:33:30 2024 -0700

        Add tests for delete license endpoint

    commit 446e962a50
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:38:51 2024 -0700

        Add tests for delete group endpoint

    commit 79a4bb7316
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:35:44 2024 -0700

        Add tests for delete depreciation endpoint

    commit 2f76c1bc5b
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:33:21 2024 -0700

        Add assertion

    commit 38b9f4a438
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:29:20 2024 -0700

        Add tests for delete departments endpoint

    commit 3105f53aff
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:54:29 2024 -0700

        Add tests for delete custom fieldsets endpoint

    commit 2047cfed09
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:20:32 2024 -0700

        Add tests for delete custom fields endpoint

    commit e3268d32df
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:00:02 2024 -0700

        Add tests for delete consumable endpoint

    commit 6df8b0ac0e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:52:07 2024 -0700

        Add tests for delete component endpoint

    commit 910f13c1f7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:38:30 2024 -0700

        Add tests for delete companies endpoint

    commit 8ce2512f55
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:54:44 2024 -0700

        Add tests for delete category endpoint

    commit 0ec415d4d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:46:22 2024 -0700

        Clean up

    commit 2044570e95
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:39:36 2024 -0700

        Add tests for delete asset model endpoint

    commit b336c6273d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:32:42 2024 -0700

        Pluralize test classes

    commit 5299b3e9f0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:44 2024 -0700

        Remove code handled by CompanyableChildTrait

    commit 872b76b45f
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:10 2024 -0700

        Add tests for delete asset maintenance endpoint

    commit 275cf4630e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:16:37 2024 -0700

        Add tests for delete asset endpoint

    commit 5c2660bd34
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:02:32 2024 -0700

        Introduce interface

    commit c7ae9d9dfa
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 12:58:47 2024 -0700

        Add tests for delete accessory endpoint

    commit 9e5f6d656a
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 11 15:45:01 2024 +0100

        Improve multi-asset create when using numeric prefixes to asset_tags

    Signed-off-by: snipe <snipe@snipe.net>

commit 634a4afa75
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:04:54 2024 +0100

    Fixed 1001 query on license

    Signed-off-by: snipe <snipe@snipe.net>

commit 7650628d30
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:00:59 2024 +0100

    Removed free seat count from fillable

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f690a6238
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 15:58:32 2024 +0100

    Fixed variable name

    Signed-off-by: snipe <snipe@snipe.net>

commit b32ab6a06c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:36:24 2024 -0700

    import User model

commit 4ff5fc1ff9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:19:35 2024 -0700

    clean up variables

commit 86f13a9735
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 16:13:34 2024 -0700

    Add index test

commit c40209f500
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 15:23:44 2024 -0700

    seperates emails and webhook notifications

commit a071fff954
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 12:32:14 2024 -0700

    Implement tests

commit 8b50ef077d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:58:33 2024 -0700

    Implement test

commit 607f29030f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:53:27 2024 -0700

    Stub out test

commit a6bcd3c0c2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:47:59 2024 -0700

    Add validation test

commit 9b293afaac
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:28:29 2024 -0700

    Remove more dead code

commit 636c776620
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:37 2024 -0700

    Remove dead code

commit d5f659024c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:09 2024 -0700

    Add test for logging

commit 832e50a71e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:19:41 2024 -0700

    Implement test

commit fa19686248
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:18:21 2024 -0700

    Implement test

commit c021609c13
Merge: 7b31df7c1 dddbf27d7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 10:42:58 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit 655abe8be5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:32:59 2024 +0100

    Fixed requestable user_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d96c5e1ba4
Merge: a807646d3 dddbf27d7
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:20:55 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit dddbf27d78
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:52 2024 +0100

    Updated language strings

    Signed-off-by: snipe <snipe@snipe.net>

commit bae9982833
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:14 2024 +0100

    Updated request methods

    Signed-off-by: snipe <snipe@snipe.net>

commit a807646d39
Merge: 83b4bf9cf fcefcc818
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:48:09 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit abe79df6dc
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:47:30 2024 +0100

    Added translation

    Signed-off-by: snipe <snipe@snipe.net>

commit fcefcc8184
Merge: 04bb3eec8 3519a82dd
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:44:44 2024 +0100

    Merge pull request #15512 from marcusmoore/testing/fmcs

    Added tests for delete methods in api

commit 04bb3eec83
Merge: 154d5d8d9 f963b9a19
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:41:37 2024 +0100

    Merge pull request #15521 from uberbrady/improve_country_selector

    Fix selected-index of Countries drop-down [fd-44144]

commit f963b9a19f
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 18 13:24:26 2024 +0100

    Fix selected-index of Countries drop-down

commit 154d5d8d91
Merge: 6c996b775 9e5f6d656
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 23:40:25 2024 +0100

    Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

    [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

commit 1582d81e5b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 22:16:41 2024 +0100

    Change `user_id` to `created_by`

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c85ad54eb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 19:44:03 2024 +0100

    Sort by numeric columns for numeric custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b31df7c14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 17 09:11:58 2024 -0700

    Begin additional test case

commit 83b4bf9cf8
Merge: 9ff211105 6c996b775
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c996b7759
Merge: fe5fc6e0c 9e957baeb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:11 2024 +0100

    Merge pull request #15516 from snipe/fixes/fmcs_edit_user

    Fixed check for outside assets on user update validation

commit 9e957baeb5
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:46:45 2024 +0100

    Fixed check for outside assets on user update validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 12fd9cd97a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 17:00:08 2024 -0700

    Update interface name

commit 9e03c4ba6f
Merge: 8eb1c487b 3519a82dd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:58:46 2024 -0700

    Merge branch 'testing/fmcs' into testing/fmcs-accessories

commit 3519a82ddd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:55:20 2024 -0700

    Fix name: TestsFullMultipleCompaniesSupport

commit 8eb1c487bc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:52:10 2024 -0700

    implement FMCS test for accessory index

commit e835637ef0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:40:10 2024 -0700

    Add accessory checkin test

commit eb35608bb5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:33 2024 -0700

    Remove call handled by form request

commit 3f07f682de
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:21 2024 -0700

    Migrate existing tests to TestsPermissionsRequirement

commit a629df07bf
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:49:08 2024 -0700

    Implement interfaces on existing test classes

commit 9a13fcab23
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:38:38 2024 -0700

    Pluralize

commit f5705a1dde
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:34:55 2024 -0700

    More unification

commit f325c4afdb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:32:38 2024 -0700

    Unify assertion method

commit 1fddacd7d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:25:11 2024 -0700

    Re-order test methods

commit 4af893df61
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:20:24 2024 -0700

    Improve assertions

commit b8b3f91ce4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:55:18 2024 -0700

    Formatting

commit 7f40f55343
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:52:02 2024 -0700

    Add tests for delete supplier endpoint

commit b06e8d442d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:37:08 2024 -0700

    Add tests for delete status label endpoint

commit c269184c60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:29:41 2024 -0700

    Add tests for delete predefined kit endpoint

commit 53c673dee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:13:12 2024 -0700

    Add tests for delete manufacturer endpoint

commit 50730fc4fb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:37:18 2024 -0700

    Add tests for delete location endpoint

commit 60a54cee79
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:33:30 2024 -0700

    Add tests for delete license endpoint

commit 446e962a50
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:38:51 2024 -0700

    Add tests for delete group endpoint

commit 79a4bb7316
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:35:44 2024 -0700

    Add tests for delete depreciation endpoint

commit 2f76c1bc5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:33:21 2024 -0700

    Add assertion

commit 38b9f4a438
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:29:20 2024 -0700

    Add tests for delete departments endpoint

commit fe5fc6e0ce
Merge: 62747a009 15183c482
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:56:31 2024 +0100

    Merge pull request #15471 from Godmartinz/Edit_side-panel

    Fixes margin for the sidebar menus while using rtl languages

commit 62747a0090
Merge: b465cc98d c6c5cb73c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:02:55 2024 +0100

    Merge pull request #15493 from Godmartinz/fix_consumables_media_sizing

    Fixed misalignment of consumables with smaller media

commit 9ff2111055
Merge: 1328366a4 b465cc98d
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:52:48 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b465cc98d8
Merge: 8774da392 4debaaea3
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:45:06 2024 +0100

    Merge pull request #15510 from snipe/bulk_users_locale_fix

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

commit 4debaaea39
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:31:10 2024 +0100

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 1328366a48
Merge: 7e14f8c6d 8774da392
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 12:38:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4facc4007e
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:48 2024 +0200

    feat: Explicitly request LDAP attributes during sync

commit 31da47e046
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:28 2024 +0200

    refactor: Put LDAP attribute mapping in array

commit 3105f53aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:54:29 2024 -0700

    Add tests for delete custom fieldsets endpoint

commit 2047cfed09
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:20:32 2024 -0700

    Add tests for delete custom fields endpoint

commit e3268d32df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:00:02 2024 -0700

    Add tests for delete consumable endpoint

commit 6df8b0ac0e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:52:07 2024 -0700

    Add tests for delete component endpoint

commit 910f13c1f7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:38:30 2024 -0700

    Add tests for delete companies endpoint

commit 8ce2512f55
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:54:44 2024 -0700

    Add tests for delete category endpoint

commit 0ec415d4d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:46:22 2024 -0700

    Clean up

commit 2044570e95
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:39:36 2024 -0700

    Add tests for delete asset model endpoint

commit b336c6273d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:32:42 2024 -0700

    Pluralize test classes

commit 5299b3e9f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:44 2024 -0700

    Remove code handled by CompanyableChildTrait

commit 872b76b45f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:10 2024 -0700

    Add tests for delete asset maintenance endpoint

commit 275cf4630e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:16:37 2024 -0700

    Add tests for delete asset endpoint

commit 5c2660bd34
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:02:32 2024 -0700

    Introduce interface

commit c7ae9d9dfa
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 12:58:47 2024 -0700

    Add tests for delete accessory endpoint

commit 0bc98e971f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 12 12:26:19 2024 -0700

    refactoring modals with partials and fixing misalignments

commit 8774da3921
Merge: ab3b65531 a97530367
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 12 16:08:44 2024 +0100

    Merge pull request #15492 from snipe/fixes/edit_to_archived_warning

    Fix - warn user on changing status to undeployable when editing

commit c6c5cb73cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 11 10:49:27 2024 -0700

    fixes consumables positioning with smaller media

commit a97530367d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:29:22 2024 +0100

    Fixed tests again

    Signed-off-by: snipe <snipe@snipe.net>

commit 43250ae881
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:04:09 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 04e96b8f20
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:41 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 98323185de
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:33 2024 +0100

    Null and warn if editing asset to a non-deployabe state

    Signed-off-by: snipe <snipe@snipe.net>

commit 9e5f6d656a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 11 15:45:01 2024 +0100

    Improve multi-asset create when using numeric prefixes to asset_tags

commit 7e14f8c6d6
Merge: fddbdafb9 ab3b65531
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab3b655312
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:09 2024 +0100

    Fixed #15483 - show EOL by default

    Signed-off-by: snipe <snipe@snipe.net>

commit 601d8d7e5f
Merge: 4f0f72b29 ca01261c1
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 09:46:58 2024 +0100

    Merge pull request #15486 from marcusmoore/fixes/custom-field-values

    Fixed a couple bugs in CustomFieldSetDefaultValuesForModel component

commit ca01261c1f
Merge: 6423df213 4f0f72b29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 10 16:05:39 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

commit 15183c4822
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 10 11:05:03 2024 -0700

    rephrased the ternary <-correctly spelled

commit fddbdafb99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:03:56 2024 +0100

    Fixed conflict

    Signed-off-by: snipe <snipe@snipe.net>

commit a5dbece1a9
Merge: 713bb104e 4f0f72b29
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:00:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 4f0f72b29e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:15:12 2024 +0100

    Fixed version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4183d1834f
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:14:03 2024 +0100

    Pre-release assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 713bb104ec
Merge: 7f2cae4f2 4998d60f3
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:46:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4998d60f39
Merge: f6bf2d03c 7cf30003b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:43:27 2024 +0100

    Merge pull request #15481 from snipe/localizations/2024-09-10

    Updated translations

commit 7cf30003b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:41:08 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit f6bf2d03c4
Merge: 6f44441a8 7c8955b12
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:58 2024 +0100

    Merge pull request #15445 from Godmartinz/eula_confusion

    Fixed priority for category eula vs default eula

commit 6f44441a8b
Merge: e7e5dfbdf 76c9015aa
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:23 2024 +0100

    Merge pull request #15469 from marcusmoore/accessory_tests

    Added UI tests for creating accessories

commit e7e5dfbdfa
Merge: d62315fbe 5d5f42129
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:08 2024 +0100

    Merge pull request #15470 from marcusmoore/company_tests

    Added UI tests for creating companies

commit d62315fbe4
Merge: 7f3f77dec 22a2cc025
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:55 2024 +0100

    Merge pull request #15472 from marcusmoore/testing/dashboard_counts

    Added test for dashboard counts

commit 7f3f77dec8
Merge: 82e56c683 0820dd9da
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:46 2024 +0100

    Merge pull request #15473 from marcusmoore/testing/accessory_api_tests

    Added some permission tests for accessory api endpoints

commit 82e56c6832
Merge: 549dec9f9 dc6a5bf99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 09:37:02 2024 +0100

    Merge pull request #15474 from marcusmoore/bug/sc-26730

    Fixed login success message not being displayed

commit 76c9015aa9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:51:40 2024 -0700

    Add test case

commit 5d5f421294
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:49:43 2024 -0700

    Add test case

commit 367f02af86
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:34:04 2024 -0700

    more partials and includes

commit 7a1c721eca
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:22:56 2024 -0700

    making modal partials for reuse

commit 6423df2133
Merge: 51d63d57c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:07:37 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

    # Conflicts:
    #	resources/views/livewire/custom-field-set-default-values-for-model.blade.php

commit dc6a5bf998
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:54:19 2024 -0700

    Reflash session so login message is displayed

commit 0820dd9da4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:36:32 2024 -0700

    Update test names

commit aa6ab2df60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:35:38 2024 -0700

    Add permission tests for some accessory api endpoints

commit 22a2cc0256
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 13:21:10 2024 -0700

    Add test for dashboard counts

commit 57fab0268b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 13:02:25 2024 -0700

    made it a terenary

commit ad5768d8b2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 12:45:11 2024 -0700

    fixes margin for the sidebar using rtl languages

commit 35533c39d5
Merge: d4426e468 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:18:02 2024 -0700

    Merge branch 'develop' into company_tests

commit de403f6e07
Merge: 010f66f4c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:17:53 2024 -0700

    Merge branch 'develop' into accessory_tests

commit 549dec9f9e
Merge: b2a634924 0e9f7153c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 20:13:01 2024 +0100

    Merge pull request #15468 from marcusmoore/coverage

    Added coverage commands for Herd users

commit d4426e4686
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 11:03:00 2024 -0700

    Add simple tests for company creation via UI

commit b2a6349243
Merge: ce97e2a30 c5dbc5f6b
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:06:42 2024 +0100

    Merge pull request #15465 from snipe/update_city_on_bulk_user_edit

    Correctly save user’s city on bulk edit

commit c5dbc5f6b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:01:07 2024 +0100

    Correctly save user’s city on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f2cae4f26
Merge: e34f549e4 ce97e2a30
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:56:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ce97e2a30f
Merge: e1fcfc8dc 7d9a0eba0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:54:28 2024 +0100

    Merge pull request #15463 from snipe/consumables_order_by_remaining

    Added ability to sort on qty and remaining for consumables

commit 7d9a0eba04
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:49:58 2024 +0100

    Added ability to sort on qty and remaining for consumables

    Signed-off-by: snipe <snipe@snipe.net>

commit 010f66f4c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:48:11 2024 -0700

    Add validation test

commit 9c6718b459
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:46:35 2024 -0700

    Organize

commit 9f832a93c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:44:52 2024 -0700

    Ensure user is stored

commit 487d88c012
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:43:01 2024 -0700

    Add some ui tests for accessories

commit 0e9f7153c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:13:45 2024 -0700

    Add composer commands for generating coverage reports via Herd

commit 7c8955b126
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:38:35 2024 -0700

    revert changes to label view

commit 20fa4c39f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:26:44 2024 -0700

    adds setEula to support\settings

commit f04a4a3cf5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:21:49 2024 -0700

    adds test

commit cf07186ae8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 3 12:23:23 2024 -0700

    gives priority to default eula being checked vs catregory eula

commit 51d63d57c6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 3 12:22:43 2024 -0700

    Hide the "Add default values" checkbox if no fieldset selected

commit e34f549e4c
Merge: a8813cca9 e1fcfc8dc
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:16:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e1fcfc8dc1
Merge: 13dbf9ee7 9fe8a866e
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:14:49 2024 +0100

    Merge pull request #15440 from snipe/fixes/user_api_put_patch

    Fixes  #15435 - user api put patch API route regression

commit 9fe8a866e0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:07:21 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit e8e3060a75
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:51:22 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 6aaf2f623f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:49:55 2024 +0100

    Removed extra route

    Signed-off-by: snipe <snipe@snipe.net>

commit dfbccf50e8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:48:09 2024 +0100

    Added patch/put back into resource routes

    Signed-off-by: snipe <snipe@snipe.net>

commit a8813cca94
Merge: 9fef27a44 13dbf9ee7
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 13dbf9ee74
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:42 2024 +0100

    Added icon for dept

    Signed-off-by: snipe <snipe@snipe.net>

commit f8bbb7ad9b
Merge: 12fa50597 3c7d455ee
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:47:25 2024 +0100

    Merge pull request #15431 from snipe/add_employee_num_to_asset_overview

    Added employee number to asset view

commit 3c7d455ee3
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:38:38 2024 +0100

    Added employee number to asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 9fef27a448
Merge: d2b88a510 12fa50597
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 12fa505972
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:30 2024 +0100

    Disabmiguate licenses company_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d2b88a5107
Merge: 4e35f389d 4e4930ba6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:02:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4e4930ba62
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:01:48 2024 +0100

    Check for array

    Signed-off-by: snipe <snipe@snipe.net>

commit 4e35f389df
Merge: e5b9d9a28 76301bc30
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:07:03 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 76301bc30d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:05:03 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 964e105cf9
Merge: 6fd24c7e1 abb422153
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 19:20:03 2024 +0100

    Merge pull request #15415 from snipe/rules/prevent_company_switch

    Validation rules to prevent switching user companies if items are assigned to them

commit 6fd24c7e14
Merge: e4ebabdab 231bc1e2d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:55:11 2024 +0100

    Merge pull request #15418 from snipe/added_multiple_for_custom_report

    Fixed #15416 - Added multiple selects for custom report

commit 231bc1e2de
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:31:34 2024 +0100

    Updated blade selectors

    Signed-off-by: snipe <snipe@snipe.net>

commit 37d04b7176
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:52:01 2024 +0100

    Some CSS tweaks for select2

    Signed-off-by: snipe <snipe@snipe.net>

commit e62a802926
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:44 2024 +0100

    Use whereIn instead of where =

    Signed-off-by: snipe <snipe@snipe.net>

commit 69e981364a
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:20 2024 +0100

    Made multiple select

    Signed-off-by: snipe <snipe@snipe.net>

commit e5b9d9a28b
Merge: 4111ef0d7 e4ebabdab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 15:04:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/build/vendor.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit abb4221539
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:55:18 2024 +0100

    Validation rules to prevent switchng user companies if assets are assigned

    Signed-off-by: snipe <snipe@snipe.net>

commit e4ebabdaba
Merge: b64ed254e da1e38329
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:19:51 2024 +0100

    Merge pull request #15414 from uberbrady/fix_create_user

    Use the null-safe property accessor for new-user creation

commit da1e383295
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 14:09:23 2024 +0100

    Use the null-safe property accessor for new-user creation

commit b64ed254e0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:49:09 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit ba291edc42
Merge: c197644ba ec2ea955d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:18:52 2024 +0100

    Merge pull request #15412 from uberbrady/ImprovePatchPurchasePrice

    Fix [FD-43836] PATCH of purchase_cost for assets for comma as decimal separator

commit ec2ea955d8
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 12:35:14 2024 +0100

    Fix PATCH of purchase_cost for assets for comma as decimal separator

commit c197644ba7
Merge: 29b30cc5d a8cd1027f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:38:15 2024 +0100

    Merge pull request #15284 from spencerrlongg/bug/sc-26584

    [Multi-Company] Fixes Users Being Moved With Items Still Assigned

commit 29b30cc5d3
Merge: a89f17a14 6af27516d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:44 2024 +0100

    Merge pull request #15411 from snipe/snyk/upgrade-webpack

    Upgraded webpack

commit 6af27516dc
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:00 2024 +0100

    Upgraded webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit a89f17a145
Merge: 68c708bde de0565f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:25:56 2024 +0100

    Merge pull request #15410 from snipe/snyk/upgrade-jquery-ui

    Updated jquery UI

commit de0565f5b3
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:24:06 2024 +0100

    Updated jquery UI

    Signed-off-by: snipe <snipe@snipe.net>

commit 4111ef0d78
Merge: cfa56e221 68c708bde
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:20:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 68c708bdef
Merge: 58e366a06 5581950fe
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:18:34 2024 +0100

    Merge pull request #15409 from snipe/fixes-string

    Corrected language string

commit 5581950fee
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:17:17 2024 +0100

    Corrected language string

    Signed-off-by: snipe <snipe@snipe.net>

commit cfa56e2219
Merge: 7f1dfcc93 58e366a06
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 58e366a063
Merge: 26f28a862 b06c52776
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:02 2024 +0100

    Merge pull request #15408 from snipe/redirect-on-print-if-user-invalid

    Check that the user exists before trying to print

commit b06c527767
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:06:30 2024 +0100

    Check that the user exists before trying to print

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f1dfcc935
Merge: 6f3fb21fe 26f28a862
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:29:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 26f28a862a
Merge: e8da7e2df 94c981e22
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:26:03 2024 +0100

    Merge pull request #15404 from snipe/bug/sc-26717-model-delete

    Set image to null if model is deleted

commit 94c981e22c
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:23:49 2024 +0100

    Set image to null if model is deleted

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f3fb21fef
Merge: a48e79a1f e8da7e2df
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:50:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e8da7e2df2
Merge: 7b5b559ba d635c86e0
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:48 2024 +0100

    Merge pull request #15403 from snipe/clean_up_depreciations

    Fixed #15392 - filter by depreciation when showing models

commit d635c86e00
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:30 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 406ff6984b
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:42:23 2024 +0100

    Added click to select on models table

    Signed-off-by: snipe <snipe@snipe.net>

commit c6ddc501c5
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:12 2024 +0100

    Filter by depreciation_id

    Signed-off-by: snipe <snipe@snipe.net>

commit 4839181beb
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:01 2024 +0100

    Added counts to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 63a05c89a7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:52 2024 +0100

    Added counts to show method

    Signed-off-by: snipe <snipe@snipe.net>

commit 385c4f69f7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:43 2024 +0100

    Added counts to depreciation transformer

    Signed-off-by: snipe <snipe@snipe.net>

commit 486cd8c8c9
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:09 2024 +0100

    Nicer formatting for searchableAttributes

    Signed-off-by: snipe <snipe@snipe.net>

commit eb5d93b3c2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:55 2024 +0100

    Added assets relationship

    Signed-off-by: snipe <snipe@snipe.net>

commit a5ff623484
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:43 2024 +0100

    Added asset, license, model count to API

    Signed-off-by: snipe <snipe@snipe.net>

commit b5a4389815
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:31 2024 +0100

    Added badge count, fixed model bulk edit menu

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b5b559baa
Merge: 64c4433b9 67a992974
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:57:29 2024 +0100

    Merge pull request #15401 from snipe/fixes-15397-new-window-for-label

    Opens label new window

commit 67a9929745
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:56:54 2024 +0100

    Opens label new window

    Signed-off-by: snipe <snipe@snipe.net>

commit a48e79a1fc
Merge: c207d4843 64c4433b9
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:37:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 64c4433b98
Merge: d3e8e0663 22bc088f6
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:36:37 2024 +0100

    Merge pull request #15396 from snipe/add_start_end_date_to_users_edit

    Added `start_date` and `end_date` to user bulk edit

commit 22bc088f6f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:21:19 2024 +0100

    Added start_date and end_date to user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit d3e8e06638
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:07:06 2024 +0100

    Add @swift2512 as a contributor

commit c207d48430
Merge: 991e48696 1b933f7ad
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:01:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1b933f7add
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 13:47:17 2024 +0100

    Added s to fa icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 991e48696a
Merge: 797488504 3fe891a05
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:26:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3fe891a05b
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:25:27 2024 +0100

    Removed a few more commas

    Signed-off-by: snipe <snipe@snipe.net>

commit 7974885041
Merge: 4ef85bd52 f4c5b712f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit f4c5b712f4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:07 2024 +0100

    Removed colons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4ef85bd529
Merge: 6eab83a85 4c8dc7818
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:58:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4c8dc7818d
Merge: aa86e07cd 5c43a1f87
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:57:00 2024 +0100

    Merge pull request #15389 from snipe/added_generate_label_to_button_stack

    Fixed #15388 - Moved generate label  button

commit 5c43a1f87c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:54:49 2024 +0100

    Use proper style for buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit d3b265de8e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:48:36 2024 +0100

    Moved button on hardware

    Signed-off-by: snipe <snipe@snipe.net>

commit 263151658f
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:44:09 2024 +0100

    Moved general label  button

    Signed-off-by: snipe <snipe@snipe.net>

commit 6eab83a85a
Merge: cce1f87da aa86e07cd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit aa86e07cd2
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:39 2024 +0100

    Fixed #15385 - small icon tweaks

    Signed-off-by: snipe <snipe@snipe.net>

commit cce1f87da6
Merge: b460e8dc8 d92fa5de6
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:18:30 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d92fa5de65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:17:25 2024 +0100

    fa-fw on settings icon

    Signed-off-by: snipe <snipe@snipe.net>

commit b460e8dc83
Merge: 50cb7e65c c589140ea
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit c589140ea0
Merge: cc2c8f76d 52894615c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:04 2024 +0100

    Merge pull request #15383 from snipe/re-adds-checkout-button

    Fixed #15378 - Corrected gate on checkin button on asset view

commit 52894615ce
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:40:41 2024 +0100

    More specific gate for checkin

    Signed-off-by: snipe <snipe@snipe.net>

commit 8546bbdd65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:38:47 2024 +0100

    Fixed gate for checkout button

    Signed-off-by: snipe <snipe@snipe.net>

commit 50cb7e65c9
Merge: 821dd158d cc2c8f76d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:32:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cc2c8f76d0
Merge: 1ffa69c43 3957d670d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:31:29 2024 +0100

    Merge pull request #15375 from Godmartinz/fix-acceptance-reminder-command

    Fixes the `acceptance-reminder` command

commit 1ffa69c43c
Merge: 78d355f13 f85ebd7ff
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:28:20 2024 +0100

    Merge pull request #15380 from snipe/fixed/fixed_nav_bracket

    Added pull-right to angle bracket

commit f85ebd7ffd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:27:39 2024 +0100

    Added pull-right to angle bracket

    Signed-off-by: snipe <snipe@snipe.net>

commit 78d355f136
Merge: ec0346e4a af0a95be1
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:20:23 2024 +0100

    Merge pull request #15377 from marcusmoore/fixes/custom-field-values-on-validation-error

    Fixed custom field defaults being prematurely updated

commit ec0346e4a8
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:19:08 2024 +0100

    Add @setpill as a contributor

commit fc5eb37776
Merge: 833dace2b 1d7853cbf
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:18:41 2024 +0100

    Merge pull request #15379 from setpill/fix/load-trustproxies-middleware

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 9a73311a99
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 17:04:04 2024 -0700

    Fix nested checkboxes being updated as a group

commit aec781e7df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 16:03:30 2024 -0700

    Be a little more explicit

commit 1d7853cbfe
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Thu Aug 22 19:45:53 2024 +0200

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 7f3c86165b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:58:31 2024 -0700

    Conditionally disable Add default values checkbox

commit 10b45812c4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:38:01 2024 -0700

    Improve id for checkboxes and radio buttons

commit c3165717ed
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:20:04 2024 -0700

    Handle old input

commit d0a351a132
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:59:03 2024 -0700

    Add comment

commit 68749e7e87
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:58:35 2024 -0700

    Simplify logic

commit 0abb5637e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:54:54 2024 -0700

    WIP: handle old input

commit af0a95be12
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit d67975cb62
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 663b2fd844
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit bcace9d019
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit b59bf3e7dc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 3957d670d0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Aug 22 10:04:46 2024 -0700

    fixes send acceptance reminder query

commit 821dd158d1
Merge: 6c9a40268 833dace2b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:50:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 833dace2b4
Merge: ec365b080 56e31d230
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:00:16 2024 +0100

    Merge pull request #15373 from snipe/fixes/#15366_custom_fields

    Fixed #15366 use the non-admin edit encrypted custom fields permissions

commit 56e31d2303
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:58:09 2024 +0100

    Fixed #15366 - use permission for encrypted custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit ec365b0804
Merge: ca8864c06 aef0ac68c
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:49:13 2024 +0100

    Merge pull request #15372 from StarlessNights/update-docker-compose-files

    Fixed #15371: docker-compose files updated.

commit aef0ac68c3
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 16:10:00 2024 +0300

    Need to use the long format for redis too in docker-compose file.

commit f12f9a816f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:47:12 2024 +0300

    Update the official docker-compose file too while at it.

commit a000d6454f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:46:40 2024 +0300

    Fix non-functional development docker-compose file.

commit ca8864c061
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:28:52 2024 +0100

    Fixed small layout quirks in asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 423f4f9126
Merge: 456c7d8d9 5fa0c87ab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:25:41 2024 +0100

    Merge pull request #14667 from Godmartinz/add_location_to_create_user_via_asset

    Adds location select to the create new user via asset checkout

commit 456c7d8d91
Merge: 54cfe3f6e d4d19569e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:56 2024 +0100

    Merge pull request #15065 from Godmartinz/explicit_eol_removal_command

    Adds `snipeit:remove-explicit-eols` command

commit 54cfe3f6e6
Merge: 5e0b18104 bb465dbfa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:10 2024 +0100

    Merge pull request #15156 from uberbrady/re-add-stalebot

    Re-add stalebot-esque github Action

commit 5e0b18104d
Merge: ec0b9b198 8b5d3f7fb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:59:20 2024 +0100

    Merge pull request #15369 from snipe/fixes/checkbox_on_restore

    Fixed checkbox layout on modal from #15296

commit 8b5d3f7fbd
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:56:32 2024 +0100

    Fixed extra closing p tag

    Signed-off-by: snipe <snipe@snipe.net>

commit 744f43676d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:53:16 2024 +0100

    Fixed checkbox layout on modal from #15296

    Signed-off-by: snipe <snipe@snipe.net>

commit ec0b9b198f
Merge: 94300d81d 738ef442f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:43:07 2024 +0100

    Merge pull request #15296 from uberbrady/expose_restore_sanitize

    Expose the 'sanitize' system for backup restores to the web GUI

commit 6c9a402685
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:52 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b310f3a24
Merge: c54bff0f8 94300d81d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 94300d81d6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:19:32 2024 +0100

    Updated dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit bc9ea5a2ec
Merge: 4635a6efc 963911f2e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:18:06 2024 +0100

    Merge pull request #15352 from Godmartinz/mobile_breakpoint

    Fixed Mobile misalignment of info on Assets and Users view pages

commit 4635a6efc3
Merge: 9608414ea d29b3bfb9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:17:49 2024 +0100

    Merge pull request #15360 from snipe/more_print_fixes

    More print fixes for asset view

commit 9608414eae
Merge: 47d8e2f8b 5efddf6f5
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:06:13 2024 +0100

    Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2

    Fixed #15344 - make select2 for countries freeform-ish

commit 5efddf6f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:39 2024 +0100

    Allow clear on country dropdown

    Signed-off-by: snipe <snipe@snipe.net>

commit 305dc049a4
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:28 2024 +0100

    Added asterisk help text

    Signed-off-by: snipe <snipe@snipe.net>

commit 3ac0702094
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 10:13:22 2024 +0100

    Fixed #15344 - make select2 for countries freeform-ish

    Signed-off-by: snipe <snipe@snipe.net>

commit 47d8e2f8b9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 09:42:05 2024 +0100

    Add @Scarzy as a contributor

commit a2246b9645
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit 1d89759706
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 206f8fe605
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit 21d2217619
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit 833bcb282f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 83dd9ce20e
Merge: 6fdce3c53 a8eb76fd8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 23:15:24 2024 +0100

    Merge pull request #15362 from r-xyz/model-files-api

    Added #9413: AssetModel files endpoints to API

commit a8eb76fd8d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:25:41 2024 +0200

    Fixed model files API routes.

commit cd7db5c4a8
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:24:08 2024 +0200

    Fix some typos in models file handler.

commit da7313bc9d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 20:24:22 2024 +0200

    Fix models files API routes.

commit 4ec361c718
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 19:49:51 2024 +0200

    Add AssetModel files endpoints to API

commit 738ef442fd
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 13:16:51 2024 +0100

    Rename .env var to have DB_ prefix for sanitize-by-default setting

commit d29b3bfb9a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:06:16 2024 +0100

    Few more hidden-print classes

    Signed-off-by: snipe <snipe@snipe.net>

commit 6fdce3c536
Merge: 01c4fe611 1ab29ec3a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:50 2024 +0100

    Merge pull request #15358 from r-xyz/rename-docker-startup

    Renamed  docker startup scripts coherently.

commit 912bbf0e32
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:21 2024 +0100

    More print fixes

    Signed-off-by: snipe <snipe@snipe.net>

commit c54bff0f83
Merge: d3f30ced9 01c4fe611
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:24:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 01c4fe6113
Merge: 7e475a078 0fa9f5797
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:12:23 2024 +0100

    Merge pull request #15359 from uberbrady/improve_windows_upgrade

    Fixed #15190 - Improvements to upgrade.php script to improve Windows experience

commit 0fa9f57971
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 11:53:38 2024 +0100

    Improvements to upgrade.php script to improve Windows experience

commit 1ab29ec3a4
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 11:52:09 2024 +0200

    Rename  docker startup scripts coherently.

commit 7e475a0786
Merge: d0acf5b8a 26b3c62ab
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:41:17 2024 +0100

    Merge pull request #15357 from snipe/tighten_category_view_translations

    Fixed #15330 - Cleaned up category title

commit 26b3c62ab8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:29:51 2024 +0100

    Cleaned up category title

    Signed-off-by: snipe <snipe@snipe.net>

commit d3f30ced94
Merge: 973e2e575 d0acf5b8a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:13:57 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d0acf5b8a6
Merge: 09033b19a 74fbc2382
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:12:58 2024 +0100

    Merge pull request #15356 from snipe/validate_location_parent

    Fixed #15341 - validate parent ID

commit 74fbc23823
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:09:35 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a23dee52f2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:58:47 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d03f1e110
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:46:18 2024 +0100

    Fixed #15341 - validate parent ID

    Signed-off-by: snipe <snipe@snipe.net>

commit 963911f2e1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Aug 21 00:23:10 2024 -0700

    changed order of info stgack

commit 59832126cb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:52:51 2024 -0700

    Improve comment

commit 680cce3ee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:42:29 2024 -0700

    Align indents

commit 6c5ec6a16c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:41:24 2024 -0700

    Get datepicker working

commit 5d1f98bf93
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 15:38:43 2024 -0700

    Simplify by directly wire:modeling

commit 9d484077ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:24:37 2024 -0700

    missed a file

commit 9858b0f37f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:23:55 2024 -0700

    fixes info tab for users and assets

commit 973e2e5756
Merge: 46ed07642 09033b19a
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:45:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 09033b19a7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:44:13 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ed076428
Merge: d3a555ce9 5fdeb9c41
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 5fdeb9c413
Merge: 22d373407 6c450d133
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:08 2024 +0100

    Merge pull request #15351 from snipe/localizations/new_translations_2024-08-20

    Updated languages

commit 22d3734075
Merge: d99b306ae eca6b03f4
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:34:38 2024 +0100

    Merge pull request #15350 from marcusmoore/icon-component-updates

    Fixed icon not rotated and simplified component

commit eca6b03f44
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:08:53 2024 -0700

    Allow id to be rendered

commit bbdbec7197
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:00:39 2024 -0700

    Rely on $attributes behavior rendering passed attributes

commit 6c450d1338
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 18:18:17 2024 +0100

    Updated languages

    Signed-off-by: snipe <snipe@snipe.net>

commit a8cd1027f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 20 11:40:15 2024 -0500

    rm commented code

commit d3a555ce91
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:39 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 0f8e041809
Merge: e8a22f3c5 d99b306ae
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/css/dist/bootstrap-table.css
    #	public/js/dist/bootstrap-table.js
    #	public/mix-manifest.json

commit d99b306ae9
Merge: f597d6433 74136761d
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:46:55 2024 +0100

    Merge pull request #15345 from snipe/add_trim_strings_middleware

    Added TrimStrings middleware

commit 74136761df
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:45:13 2024 +0100

    Added TrimStrings middleware

    Signed-off-by: snipe <snipe@snipe.net>

commit f597d64339
Merge: 64bed01a9 0072f1500
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:17:26 2024 +0100

    Merge pull request #15342 from snipe/snyk/bs-tables

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

commit 0072f1500e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:16:27 2024 +0100

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 64bed01a91
Merge: f8c72fb0a f6319e11e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:13:43 2024 +0100

    Merge pull request #15327 from snipe/update_button_style

    Update icons to use blade components, standardize button colors and format

commit f6319e11e7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:11:27 2024 +0100

    Added fa-fw to sidebar elements

    Signed-off-by: snipe <snipe@snipe.net>

commit 5d9f988df3
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:01:49 2024 +0100

    Added fw class to topnav icons

    Signed-off-by: snipe <snipe@snipe.net>

commit f8c72fb0ac
Merge: 886514a25 fa765667f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 09:57:03 2024 +0100

    Merge pull request #15112 from marcusmoore/livewire-importer-improvements

    Improved handling attempted access of deleted files in importer

commit 8e1111c681
Merge: 697595d96 886514a25
Author: akemidx <kojotek.dx@gmail.com>
Date:   Mon Aug 19 19:33:44 2024 -0400

    Merge remote-tracking branch 'upstream/develop' into eol_date_range_for_reports

commit 886514a25f
Merge: cb40a82e7 434bdcd6d
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 22:46:08 2024 +0100

    Merge pull request #15336 from marcusmoore/fixes/remove-displayed-parentheses

    Fixed `)` being added to expected asset checkin report email header

commit fa765667f2
Merge: 94d8a547b cb40a82e7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:41:58 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 434bdcd6d4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:31:47 2024 -0700

    Add missing parentheses to conditional

commit be5f3f38f8
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:48:12 2024 +0100

    Settings pages

    Signed-off-by: snipe <snipe@snipe.net>

commit 08c3a25b39
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:16:57 2024 +0100

    Little more padding

    Signed-off-by: snipe <snipe@snipe.net>

commit 34cd4b6244
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:15:36 2024 +0100

    Added links to apple/google maps

    Signed-off-by: snipe <snipe@snipe.net>

commit d89c8682be
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:46:31 2024 +0100

    Reversed location button ordering

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f024849e9
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:39:24 2024 +0100

    Few more

    Signed-off-by: snipe <snipe@snipe.net>

commit e048f0955f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:27:21 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 479b2b4fd3
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:23:08 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 84f14a05bd
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:19 2024 +0100

    Fixed logging for asset model restore

    Signed-off-by: snipe <snipe@snipe.net>

commit 8d52fa51b1
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:06 2024 +0100

    Fixed suppliers buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit 229d8b9bf5
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:19:59 2024 +0100

    Added location restore

    Signed-off-by: snipe <snipe@snipe.net>

commit eb8d43a804
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 12:32:44 2024 +0100

    Updated buttons on models

    Signed-off-by: snipe <snipe@snipe.net>

commit f82266fade
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:31 2024 +0100

    Cleaned up presenters

    Signed-off-by: snipe <snipe@snipe.net>

commit b4b6f7a35f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:21 2024 +0100

    Added css-consumable to overrides for table headers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0bc995b87f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:05 2024 +0100

    Updated more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 59725f2031
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:57:40 2024 +0100

    Removed extra debugging in test

    Signed-off-by: snipe <snipe@snipe.net>

commit 00bc9ac806
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:39:14 2024 +0100

    Fixed spacing

    Signed-off-by: snipe <snipe@snipe.net>

commit f200960a57
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:26:57 2024 +0100

    Aaaand more

    Signed-off-by: snipe <snipe@snipe.net>

commit c700127f1a
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:09:00 2024 +0100

    Updated user view

    Signed-off-by: snipe <snipe@snipe.net>

commit ae2f9571b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 21:57:37 2024 +0100

    And still more

    Signed-off-by: snipe <snipe@snipe.net>

commit a77dcad336
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:53 2024 +0100

    More links

    Signed-off-by: snipe <snipe@snipe.net>

commit 7ace9324b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:22 2024 +0100

    Added padlock sound

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e889e927
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 19:21:59 2024 +0100

    Still more

    Signed-off-by: snipe <snipe@snipe.net>

commit 803bdb457c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:48:19 2024 +0100

    Added calendar

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c9b1f6e38
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:39:22 2024 +0100

    Added the plus icon

    Signed-off-by: snipe <snipe@snipe.net>

commit d545537a43
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:34:13 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d8904938d
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:24:26 2024 +0100

    Added calendar icon for datepickers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0c09f2b2c0
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:13:49 2024 +0100

    Moar icon replacement

    Signed-off-by: snipe <snipe@snipe.net>

commit bffba02511
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:26:44 2024 +0100

    Updated icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 901f4df7ee
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:03:36 2024 +0100

    Added more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 9337cba340
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:53:58 2024 +0100

    Added download

    Signed-off-by: snipe <snipe@snipe.net>

commit 2b0c67c263
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:51:00 2024 +0100

    Load the icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit da71f031f5
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:48:24 2024 +0100

    Use icon in hardware view

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e585baa7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:45 2024 +0100

    Added icon blade

    Signed-off-by: snipe <snipe@snipe.net>

commit a102c085df
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:37 2024 +0100

    Added icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit e8a22f3c5b
Merge: d843cf8dc cb40a82e7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:55:04 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb40a82e79
Merge: 7e6ff3cbe 4253acad4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:54:23 2024 +0100

    Merge pull request #15324 from snipe/jerk_prevention

    Prevent passing an array as login

commit 4253acad4c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:51:36 2024 +0100

    Prevent passing an array as login

    Signed-off-by: snipe <snipe@snipe.net>

commit d843cf8dcc
Merge: 1013dcae6 7e6ff3cbe
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:52:10 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1013dcae61
Merge: c30c649aa e7ef3bf51
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:38:44 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 70e5e0f9df
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:52:06 2024 -0500

    get rid of dd

commit dec4691c73
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:50:09 2024 -0500

    should be good to go now

commit c30c649aaa
Merge: bb1385369 ad6d09b6a
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:44:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit bb1385369c
Merge: c1caf6088 43b338d61
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:18:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit c1caf6088e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 13:12:13 2024 +0100

    Prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 12dfe71ea8
Merge: ca8926871 ea2b1b074
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 12:48:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ca89268716
Merge: ec5731353 3167ee91d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 11:02:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 94d8a547b8
Merge: 6521c0252 b39a7c6f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:47:49 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 43b109fac0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:20:22 2024 -0700

    Use cached values for textarea and radio input

commit 75c1e7658f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:43:41 2024 -0700

    Improve method name

commit e7c9c799bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:40:23 2024 -0700

    Add wire:keys

commit 6ab976f353
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:32:33 2024 -0700

    Use cached values for text input

commit ec5731353a
Merge: 3283704fe b39a7c6f0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 15:53:52 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3283704fe8
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:25:08 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 540df32046
Merge: 85486fa58 594f50664
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:24:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 85486fa58c
Merge: 3618df2ec 10dc1f136
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:53:54 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3618df2ec5
Merge: a201f22fd 8f7bce7aa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:44:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit a201f22fdb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:36:12 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 6070d530cf
Merge: 6c0cf9447 4d66f7c93
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:35:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c0cf94473
Merge: bf4b91516 381003eea
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:28:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 9622e05cf5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:41:06 2024 -0500

    correct api test

commit afaf53cdfc
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:14:21 2024 -0500

    failing ui test

commit f031309f8f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 16:09:15 2024 -0500

    set up api controller for route/model binding

commit 20ec420ba3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 13:53:29 2024 -0500

    not quite done, api side needs some work

commit ab63a19aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 14 11:01:51 2024 -0700

    Initialize concept of cached values

commit a70b94e707
Merge: 120cfd13c 3e2945709
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 11:36:19 2024 -0500

    Merge branch 'refs/heads/develop' into bug/sc-26584

commit 008bf036b5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 16:09:34 2024 +0100

    Got rid of weird namespace declaration and commented-out data-toggle line

commit cc5ad456e6
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 15:59:21 2024 +0100

    Expose the 'sanitize' system for backup restores to the web GUI

commit bf4b915168
Merge: 0a9c2e354 0f1e5181a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:45:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0a9c2e354f
Merge: 47f1b3b14 e54400718
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:02:43 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 038e86954b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:30:53 2024 -0700

    Improve property name

commit f6c1642bf2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:01:35 2024 -0700

    Use computed fields in CustomFieldSetDefaultValuesForModel component

commit 120cfd13c5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 14:07:40 2024 -0500

    translation

commit 09f2739298
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 13:45:41 2024 -0500

    works, un-reassignable licenses are an issue

commit 47f1b3b14e
Merge: 198b76ebc 3044af941
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 16:48:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 198b76ebc2
Merge: 5546f9676 6e84c29ce
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 15:47:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 5546f9676a
Merge: 46caa478d 9e73eaf95
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 13:51:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ec863df007
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:53 2024 -0500

    rm conditional that might be unnecessary

commit cc3b8e0681
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:21 2024 -0500

    this should more or less work, but i need to determine if this is the best way

commit ff145abbe7
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:13:03 2024 -0500

    use array for eager loading, makes ide prettier

commit 46caa478d2
Merge: 4d8569e75 e6106aa7c
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 20:47:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4d8569e754
Merge: 4dc57f95e c9f8a84d4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 18:01:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4dc57f95e2
Merge: 316ee6f81 9d354ca65
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:38:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 316ee6f810
Merge: 509cc812e 3f2139349
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:30:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 509cc812ea
Merge: d5f66bc0d e7fb29fce
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 15:58:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d5f66bc0dd
Merge: 1e213c31e ce5be8ac2
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 10:10:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1e213c31ef
Merge: 91874dfe0 1777bb4b9
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 11 10:26:16 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 91874dfe0b
Merge: 0e6eda5e8 5c6c655cd
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 19:37:37 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0e6eda5e8a
Merge: 24560b936 60eb60215
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:29:41 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 24560b9362
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:24:49 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 6521c02526
Merge: 8d1cc22c5 9350a2018
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 7 15:20:39 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

    # Conflicts:
    #	resources/views/livewire/importer.blade.php

commit bb465dbfaa
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 15:09:23 2024 +0100

    Cut down run number to 100 from 1000

commit 8cbcc237c0
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 13:27:31 2024 +0100

    Cleanup of Stale workflow for GH - set to debug-mode to start

commit 97e3af8fc9
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Sat Jun 29 00:59:47 2024 +0100

    WIP on new GitHub-backed stalebot settings

commit 914e29210a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jun 26 18:53:01 2024 +0100

    Initial rough stab at re-implementing stalebot

commit 8d1cc22c58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 18 12:00:01 2024 -0700

    Turn on legacy binding since other components still use it

commit 7685de45f2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:12:14 2024 -0700

    Turn off legacy binding

commit 199e68ff29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:10:12 2024 -0700

    Simplify computed propery

commit 81bffccf01
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:28:26 2024 -0700

    Use better error message

commit cfca1514c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:22:44 2024 -0700

    Swap file_id for activeFileId

commit b4ed01243b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:40:41 2024 -0700

    Add more details

commit 3772a21a51
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:37:24 2024 -0700

    Move comment up

commit 04b6cb763f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 10:58:48 2024 -0700

    Add todo

commit dd32341502
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:21:18 2024 -0700

    Display message if attempting to delete non-existent file

commit f58e3114a2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:17:45 2024 -0700

    Simplify destroy method and update list

commit eba494ad8c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:03:42 2024 -0700

    Make $activeFile a computed property

commit 7e89b58746
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 16:08:42 2024 -0700

    Move files to computed property

commit b7744105a0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 14:20:41 2024 -0700

    Migrate import type to component

commit 69263f0e5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 13:30:29 2024 -0700

    Migrate header row to component

commit 017530ba4b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 12:02:50 2024 -0700

    Make updating hook more specific

commit c8dad528a8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 16:15:58 2024 -0700

    Migrate a couple items out of mount

commit 256e989ba1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 15:49:18 2024 -0700

    Add test for importer

commit 9793016603
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:32:16 2024 -0700

    Remove unneeded AuthorizesRequests

commit 9e06f2d17f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:22:10 2024 -0700

    Remove commented code

commit d4d19569ee
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:52:47 2024 -0700

    adds execution timer

commit 43c7504f89
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:03:51 2024 -0700

    adds an all option, adds help context for all, seperates logic

commit 1fa6a763bc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 11:09:57 2024 -0700

    updated description

commit 726308bfd5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:58:45 2024 -0700

    removed typo

commit 22ddb695f2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:57:47 2024 -0700

    better description

commit 09b2feac54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:56:44 2024 -0700

    updates assets with selected model to inherit asset model eol

commit 57e1df86c8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:21:24 2024 -0700

    finds model and collects assets with such model

commit 3ea5d4ee40
Author: Robert-Azelis <82208283+Robert-Azelis@users.noreply.github.com>
Date:   Thu May 2 12:55:17 2024 +0200

    Update BulkAssetsController.php

    Fix for bulk updarte of purchase date to calculate new EOL

commit 5fa0c87ab0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 12:02:11 2024 -0700

    null debugbar

commit 75aa01791a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 11:54:33 2024 -0700

    adds location select to the create new user vice asset checkout

commit c62a022252
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Mar 21 14:34:47 2024 -0700

    replaced for loop with eloquent query update

commit 866f0a9f56
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Mar 19 11:58:49 2024 -0700

    syncs assets location to users location

commit 05a8d3030b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Sat Mar 16 19:54:48 2024 -0700

    correct column name

commit 595dad0f18
Author: Godfrey M <godmartinz@gmail.com>
Date:   Sat Mar 16 19:51:40 2024 -0700

    updates all assets assigned to user with new location

commit 697595d963
Merge: 0bdd8a591 9502525a4
Author: akemidx <116301219+akemidx@users.noreply.github.com>
Date:   Tue Nov 21 16:07:26 2023 -0500

    Merge branch 'develop' into eol_date_range_for_reports

commit 0bdd8a5917
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Aug 2 16:40:38 2023 -0400

    fixing key names

commit e35dd2daa1
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:45:18 2023 -0400

    asset_eol_date stuff

commit f71b69a739
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:31:06 2023 -0400

    adding eol fields

commit 499a3debcd
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Jul 11 14:08:55 2023 -0400

    this WILL break. i'm back to site not found which is something missing. otherwise the columns are either blank or another value like expected checkin i was using to test a bit

Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:45:01 +00:00
snipe
503d044fb8 Don’t show new user welcome if location or asset model import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:36:02 +00:00
snipe
752221ee84 Removed error log
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:35:34 +00:00
snipe
f87ebb4710 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:16:18 +00:00
snipe
abab062756 Added fieldset and depreciation import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:16:08 +00:00
snipe
6f25ed3c59 More nuance to human boolean check
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:15:34 +00:00
snipe
6c2cfe0405 Removed log line
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:48:24 +00:00
snipe
d1ba16d0eb Added requestable to fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:48:05 +00:00
snipe
b3f84f7293 Added aliases, removed depreciation from import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:47:55 +00:00
snipe
e38c2139f8 Merge remote-tracking branch 'origin/develop' 2024-11-13 01:43:17 +00:00
snipe
615edbbd43 Updated seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 01:42:39 +00:00
snipe
c012bf0ece Merge pull request #15799 from Godmartinz/update_deprecated_trigger_for_ms_teams
Updated deprecated trigger for ms teams
2024-11-13 00:55:53 +00:00
Godfrey M
947351af67 removed unused variabl 2024-11-12 16:49:02 -08:00
Godfrey M
4e0d70e0b8 checkin notif was missing 2024-11-12 15:44:14 -08:00
Godfrey M
832ccc6aa3 updated deprecated trigger for ms teams 2024-11-12 15:35:09 -08:00
snipe
48713cbddf Added additional helper files to assetmodel importer
Signed-off-by: snipe <snipe@snipe.net>
2024-11-12 22:40:00 +00:00
snipe
787340b987 Merge pull request #14441 from Godmartinz/ldap_location-resync
Fixes Assets location not being resynced when Users location is updated via LDAP
2024-11-12 22:35:11 +00:00
Marcus Moore
53de97db4e Merge branch 'develop' into saving_custom_report_template 2024-11-12 10:36:07 -08:00
Marcus Moore
5574c5fa49 Improve comments 2024-11-12 10:35:22 -08:00
Marcus Moore
7373e2019c Improve comment 2024-11-12 10:01:32 -08:00
snipe
22c79d8e1b Squashed commit of the following:
commit 6bec573956
Merge: b6ad69fac 1fc5bb54e
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:54:09 2024 +0000

    Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance

    Check that the file exists before trying to download stored EULA

commit 1fc5bb54e1
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:50:53 2024 +0000

    Check that the file exists before trying to download

    Signed-off-by: snipe <snipe@snipe.net>

commit b6ad69fac2
Merge: 357ef7e37 47b2cdb84
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:05:20 2024 +0000

    Merge pull request #15793 from snipe/allow_eol_explicit

    Allow user to specify null for calculation or explicit on bulk edit

commit 47b2cdb846
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:04:13 2024 +0000

    Allow user to specify null for calculation or explicit on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 357ef7e375
Merge: 000f3171e 6928b1b27
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:48:25 2024 +0000

    Merge pull request #15792 from snipe/edit_eol_from_bulk

    Added EOL date to bulk asset edit

commit 6928b1b273
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:47:10 2024 +0000

    Added eol date to bulk asset edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 000f3171e3
Author: snipe <snipe@snipe.net>
Date:   Fri Nov 8 10:28:01 2024 +0000

    Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ef3183a52
Merge: a41529dbc 050831868
Author: snipe <snipe@snipe.net>
Date:   Thu Nov 7 11:44:06 2024 +0000

    Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes

    Improved indexes on manager_id for locations and users, including del…

commit 050831868e
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Nov 7 11:39:27 2024 +0000

    Improved indexes on manager_id for locations and users, including deleted_at

commit a41529dbc4
Merge: aa168fcb5 4fcf5ac7d
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 21:22:45 2024 +0000

    Merge pull request #15780 from uberbrady/add_manager_indexes

    Add new indexes to locations and users for faster manager lookups

commit 4fcf5ac7da
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Nov 6 21:19:41 2024 +0000

    Add new indexes to locations and users for faster manager lookups

commit aa168fcb5b
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:41:52 2024 +0000

    Updated BS table to 1.23.5

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c1c93ad52
Merge: b96a31253 ad99b8b45
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:40:35 2024 +0000

    Merge pull request #15774 from marcusmoore/feature/sc-27350

    Added Checkout ID column to user accessory table

commit ad99b8b456
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Nov 6 10:37:31 2024 -0800

    Use generic ID translation

commit b96a312539
Merge: 654f67b6a bab1e58ea
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:29:22 2024 +0000

    Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345

    Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736

commit bab1e58ea4
Author: Joël Pittet <pittet@cs.ubc.ca>
Date:   Wed Nov 6 09:46:11 2024 -0800

    symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736

commit 654f67b6ac
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:05:42 2024 +0000

    Updated webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit 3965bcd7c1
Merge: 287f4addf 2362cb5e5
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:02:44 2024 +0000

    Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests

    Fixed notifications for licenses and asset to asset checkoutables

commit 2362cb5e52
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 16:32:46 2024 -0800

    refactor to getNotifiables

commit e7cb4a75eb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 15:56:53 2024 -0800

    Show accessory checkout id in user accessory table

commit 93494ac554
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:17:58 2024 -0800

    put dataprovider back in for tests

commit 0d707a1851
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:13:10 2024 -0800

    fixes notifications for licenses and asset to asset checkouables

commit 287f4addf0
Merge: f32ebdc7a 2e96d478f
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 4 20:06:24 2024 +0000

    Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit 2e96d478f1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 11:04:17 2024 -0800

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit f32ebdc7ac
Merge: 5897d37fc d6c7dc8e1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 22:39:58 2024 +0000

    Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file

    Added missing Livewire file

commit d6c7dc8e1c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 31 15:37:01 2024 -0700

    Add missing livewire file

commit 5897d37fcf
Merge: 49de07045 21a27dcac
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 20:54:01 2024 +0000

    Merge pull request #15763 from Godmartinz/no_to_email_check

    Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.

commit 21a27dcac1
Merge: 379138076 49de07045
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:55:46 2024 -0700

    fixed conflicts

commit 3791380764
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:52:47 2024 -0700

    remove unused uses

commit 7a0f79ecd2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:51:22 2024 -0700

    remove test route

commit 97a449e80e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:50:13 2024 -0700

    removes instanceof User check

commit e65942064e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:45:29 2024 -0700

    send emails even if target has no email

commit 49de07045a
Merge: 7e996c40f 73772a013
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 17:53:17 2024 +0000

    Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs

    Fixed MS Team Notifications to utilize workflows after deprecation

commit 7e996c40f5
Merge: 73e8f160c 69e74bbdd
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 02:51:42 2024 +0000

    Merge pull request #15758 from snipe/jerm/fix-deprecation-warning

    Fix ${var} deprecation warning in License model

commit 69e74bbdd3
Author: Jeremy Price <jeremy@grokability.com>
Date:   Wed Oct 30 19:43:54 2024 -0700

    Fix ${var} deprecation warning in License model

    When upgrading to php8.3 i started getting deprecation warning about
    using ${var} instead of {$var} in 2 places in License.php

    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

    This simple fix switches the offending statements to {$var} syntax.

commit 73e8f160cf
Merge: f68df1fa0 bd23772fe
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 19:29:09 2024 +0000

    Merge pull request #15756 from Godmartinz/cc-email-array

    changes `admin_cc_email` validation to allow an array

commit bd23772fe9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:42:15 2024 -0700

    changes cc_email validation to allow array

commit 73772a0138
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:12:31 2024 -0700

    change button text

commit b26cae372c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:40:23 2024 -0700

    merged in develop

commit d6ba303f39
Merge: 9a0eee8f0 f68df1fa0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:27:45 2024 -0700

    Merge branch 'develop' into refacto_ms_teams_notifs

    # Conflicts:
    #	app/Listeners/CheckoutableListener.php

commit f68df1fa06
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 13:21:13 2024 +0000

    Made type searchable in action logs

    Signed-off-by: snipe <snipe@snipe.net>

commit f0813e03bf
Merge: 05875ebd1 58ff641f8
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 12:18:41 2024 +0000

    Merge pull request #15681 from Godmartinz/seperating_notification_n_mail

    Separated Notifications and Emails: Check ins and Check outs

commit 05875ebd1f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 22:04:35 2024 +0000

    Updated translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 9a0eee8f03
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:43 2024 -0700

    revert testing variables

commit 6128765d1f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:03 2024 -0700

    change wording on notification button

commit c24f79c025
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:58:43 2024 -0700

    update method comment

commit e7c4343c90
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:56:48 2024 -0700

    readd checkin accessory format

commit c0620c27ff
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:30:34 2024 -0700

    adds back laravels channel formats

commit ed81973fe6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 13:57:42 2024 -0700

    adds notifications for deprecation

commit 2d318b394c
Merge: 86d784bd5 5c4971612
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 18:41:49 2024 +0000

    Merge pull request #15744 from marcusmoore/chore/action-tests-debugging

    Added the display of logs when tests fail in GitHub Actions

commit b987b3dc00
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 10:57:48 2024 -0700

    adds back the laravel channels package and applies a deprecated check

commit 5c49716129
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 28 10:24:35 2024 -0700

    Dump logs on test failure

commit 86d784bd59
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 13:37:59 2024 +0000

    Fixed #15740 - use non-translated strings for icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 589f9cccdf
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 12:04:10 2024 +0000

    Fixed  #15732

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d848e45e6
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 11:55:24 2024 +0000

    Fixed #15736

    Signed-off-by: snipe <snipe@snipe.net>

commit 58ff641f82
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 22:53:53 2024 -0700

    removed unused variables

commit ce68f550d8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 16:01:17 2024 -0700

    remove alert emails from cc

commit 6f0c1b12b1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 15:04:54 2024 -0700

    this adds check out message for consumables

commit 278bc5e52a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:59:10 2024 -0700

    ads check in and checkout message for license seats

commit cce75a8185
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:48:23 2024 -0700

    adds check in and checkout messag for accessories

commit e27ff13377
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:39:40 2024 -0700

    adds check in and checkout message for assets

commit 56365495a1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:26:42 2024 -0700

    remove unnecessary fields in accessory checkout mail

commit 18da80e6de
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:24:00 2024 -0700

    fix checkoutable listener for microsoft teams

commit 18760e3fa1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 12:21:51 2024 -0700

    replaces teams notification package, passes integration test

commit 57107c487c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 09:40:10 2024 -0700

    fixed last test, definetly the last test

commit dfc63641dc
Merge: 07a51ec8b b6340532d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 11:40:50 2024 +0100

    Merge pull request #15550 from uberbrady/fix_multi_create_partial_failure

    Fix multi create partial failure (fixes: [RB-18591])

commit 07a51ec8b1
Merge: e0ec6795b 727c0e458
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 10:03:10 2024 +0100

    Merge pull request #15712 from Godmartinz/fix_import-progress-bar

    Upgraded `livewire v3.5.9 => v3.5.12`

commit 6329f5b87e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:33:23 2024 -0700

    removed unused variable from test

commit e0ec6795b5
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:27:50 2024 +0100

    Use crucial for seeded data

    Signed-off-by: snipe <snipe@snipe.net>

commit 15073a0d38
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:27:37 2024 -0700

    last test to fix

commit a80c09c16d
Merge: ab3b9c451 5509d756b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:23:55 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

commit 5509d756b7
Merge: 55ba6279a b16a978f1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:12:11 2024 +0100

    Merge pull request #15722 from Godmartinz/fix_component_factory

    Fixed Component Factory: use manufacturer factory for `manufactuer_id`

commit b16a978f1b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:25:51 2024 -0700

    uses manufacturer factory for manufactuer_id

commit ab3b9c4510
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:24:01 2024 -0700

    remove unnecessary code from checkinasset notification

commit 2cc2b2b1df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:06:27 2024 -0700

    apply array_filter to cc emails to prevent errors

commit 62d06b44d6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:43:42 2024 -0700

    set fallback from email address to service.snipe-it.io

commit f29a383179
Merge: fd74c3510 55ba6279a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:15:14 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

    # Conflicts:
    #	app/Notifications/CheckoutConsumableNotification.php

commit fd74c35102
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:08:29 2024 -0700

    remove old notify by mail from consumable notification

commit c681946b1d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:05:39 2024 -0700

    added component markdown changes

commit 257d25bd9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:56:54 2024 -0700

    removed import notification from test, feature is not present in project

commit 6c34a5c52c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:54:21 2024 -0700

    conditionally check cc emails, initiate variables

commit 1b5f4415ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:44:45 2024 -0700

    corrected cc email behavior

commit 55ba6279a4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:14:17 2024 +0100

    Use trans_choice on alert menu

    Signed-off-by: snipe <snipe@snipe.net>

commit a9eea830e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:05:34 2024 +0100

    Added manufacturer and model number to component seeders

    Signed-off-by: snipe <snipe@snipe.net>

commit af564935d5
Merge: d58f87862 3ee76be7e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:56:04 2024 +0100

    Merge pull request #15720 from snipe/15695_adds_manufacturer_and_model_number_to_components

    Fixed #15695 - Added manufacturer and model_number to components

commit 3ee76be7e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:50:22 2024 +0100

    Added manufacturer and model_number to components

    Signed-off-by: snipe <snipe@snipe.net>

commit d58f87862c
Merge: 5da3ce356 0b6859c49
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:09:50 2024 +0100

    Merge pull request #15719 from snipe/#15717_adds_qty_to_consumable

    Fixed #15717 - Added ability to checkout consumables in variable qty via API

commit 0b6859c491
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:05:35 2024 +0100

    Added ability to checkout consumables in variable qty

    Signed-off-by: snipe <snipe@snipe.net>

commit 1e9922a0b0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 16:14:36 2024 -0700

    fix moar tests

commit ead27accac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 15:45:52 2024 -0700

    fixed accessory tests and notifiable target

commit 727c0e458c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:34:39 2024 -0700

    remove translation

commit 870dc747db
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:27:32 2024 -0700

    oops

commit 0fb3d83fac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:26:54 2024 -0700

    revert controller change

commit 0d59ccd6a6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:23:26 2024 -0700

    upgraded livewire v3.5.9 => v3.5.12

commit 5da3ce3564
Merge: c3bbca30a 5ecd2b629
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:10:20 2024 +0100

    Merge pull request #15711 from marcusmoore/fixes/custom-fieldset-checkboxes

    Fixed custom field checkboxes on asset edit page

commit c3bbca30ad
Merge: dccb788a8 37f14fff3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:50 2024 +0100

    Merge pull request #15710 from snipe/fixes_lightbox_for_avif

    Fixes #15701 - load avif files properly in lightbox

commit 37f14fff3b
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:28 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit eb6c51fabd
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:04:57 2024 +0100

    Fixes #15701 - load avif files properly in lightbox

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ecd2b6293
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 14:04:05 2024 -0700

    Default checkbox elements to an empty array

commit 1e31592c55
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 11:49:06 2024 -0700

    messing with the tests

commit dccb788a88
Merge: 5e1d792bb d10fe77ee
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 17:44:30 2024 +0100

    Merge pull request #15691 from marcusmoore/fixes/get-id-for-current-user

    Updated `Company::getIdForCurrentUser()` to return null in certain scenarios

commit d10fe77ee7
Merge: e1882ee6d 5e1d792bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 09:38:31 2024 -0700

    Merge branch 'develop' into fixes/get-id-for-current-user

commit 5e1d792bba
Merge: 9cf71976f 780ed91a1
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:52:28 2024 +0100

    Merge pull request #15687 from NebelKreis/fix/dashboard-title-casing

    Fixed #15686: Corrected capitalization for dashboard section titles by removing strtolower()

commit 9cf71976f6
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:51:42 2024 +0100

    Fixed #15706 - Removed purchase order number from asset import

    Signed-off-by: snipe <snipe@snipe.net>

commit 15745d9737
Merge: bd97955b9 3f74ff25d
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:39:44 2024 +0100

    Merge pull request #15566 from Godmartinz/status-label-error-message

    Fixed Status Labels Error Message

commit bd97955b9e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:38:46 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 252d99421c
Merge: 5767a98ad db8170162
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:48 2024 +0100

    Merge pull request #15689 from snipe/better_handle_inline_files

    Better handle inline files in file listing

commit 5767a98ad8
Merge: 0c820cbc0 524a44272
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:23 2024 +0100

    Merge pull request #15649 from bryanlopezinc/ImproveImporting

    Improve import performance

commit 0c820cbc0d
Merge: 147fcfb8e 3153bbb13
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:56:12 2024 +0100

    Merge pull request #15598 from spencerrlongg/bug/custom_field_validation_issue

    Custom Field Existence Validation Issue

commit db81701621
Merge: a05c33feb 147fcfb8e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:44:24 2024 +0100

    Merge branch 'develop' into better_handle_inline_files

commit a05c33febf
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:43:19 2024 +0100

    Squashed commit of the following:

    commit 147fcfb8eb
    Merge: 58a3d09b5 fdcc17ca2
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 15:12:55 2024 +0100

        Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

        Fix user creation with FullMultipleCompanySupport enabled over API

    commit 58a3d09b5f
    Merge: 30a06a594 867fa2f36
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 14:55:42 2024 +0100

        Merge pull request #15703 from marcusmoore/bug/sc-27188

        Linked accessory files in activity report

    commit 30a06a5942
    Merge: 6c6af78e0 ce3086317
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:47:06 2024 +0100

        Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

        Removed brianium/paratest

    commit 6c6af78e08
    Merge: 9b06bbb6c 3f79fd7ea
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:46:04 2024 +0100

        Merge pull request #15705 from marcusmoore/tests/icon-component-test

        Added test to ensure icon component does not end in newline

    commit 3f79fd7ea7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 17:07:40 2024 -0700

        Add test to ensure icon component does not end in newline

    commit 9b06bbb6c3
    Merge: 46ad1d072 d7f70146f
    Author: snipe <snipe@snipe.net>
    Date:   Mon Oct 21 22:38:26 2024 +0100

        Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

        Removed second icon in accessory file list

    commit ce30863177
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:57:04 2024 -0700

        Remove brianium/paratest dependency

    commit d7f70146f4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:48:25 2024 -0700

        Remove extra icon in accessory file upload list

    commit 867fa2f36e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 12:40:24 2024 -0700

        Display file in activity report for accessories

    commit 0933a2d4ea
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Oct 17 18:01:48 2024 -0700

        Remove --parallel flag

    commit 46ad1d072f
    Merge: bcb4bd9eb 3cf746d7d
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 15:29:47 2024 +0100

        Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

        Bulk checkout to bulk actions

    commit bcb4bd9eb4
    Merge: 250037540 f50ccbcc4
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 10:20:13 2024 +0100

        Merge pull request #15683 from Toreg87/fixes/outdated_comment

        Fix outdated comment in CompanyableTrait

    commit f50ccbcc49
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Thu Oct 17 11:07:28 2024 +0200

        Fix outdated comment in CompanyableTrait

        As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

    commit 3cf746d7df
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Oct 16 23:13:32 2024 +0100

        Rework the bulk checkout to not change how all checkouts work

    commit 6b7af802af
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Thu Oct 10 13:28:23 2024 +0100

        Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

    commit fdcc17ca2c
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Wed Oct 16 11:18:24 2024 +0200

        Fix user creation with FullMultipleCompanySupport enabled over API

        It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
        Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

        Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

    Signed-off-by: snipe <snipe@snipe.net>

commit 147fcfb8eb
Merge: 58a3d09b5 fdcc17ca2
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:12:55 2024 +0100

    Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

    Fix user creation with FullMultipleCompanySupport enabled over API

commit 58a3d09b5f
Merge: 30a06a594 867fa2f36
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 14:55:42 2024 +0100

    Merge pull request #15703 from marcusmoore/bug/sc-27188

    Linked accessory files in activity report

commit 30a06a5942
Merge: 6c6af78e0 ce3086317
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:47:06 2024 +0100

    Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

    Removed brianium/paratest

commit 6c6af78e08
Merge: 9b06bbb6c 3f79fd7ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:46:04 2024 +0100

    Merge pull request #15705 from marcusmoore/tests/icon-component-test

    Added test to ensure icon component does not end in newline

commit 3f79fd7ea7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 17:07:40 2024 -0700

    Add test to ensure icon component does not end in newline

commit 9b06bbb6c3
Merge: 46ad1d072 d7f70146f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 22:38:26 2024 +0100

    Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

    Removed second icon in accessory file list

commit ce30863177
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:57:04 2024 -0700

    Remove brianium/paratest dependency

commit d7f70146f4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:48:25 2024 -0700

    Remove extra icon in accessory file upload list

commit 867fa2f36e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:40:24 2024 -0700

    Display file in activity report for accessories

commit e1882ee6d2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:21:45 2024 -0700

    Add comment

commit 7eee239378
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:20:28 2024 -0700

    use is_numeric instead of is_int

commit 4188849ae1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:19:48 2024 -0700

    Add failing test case

commit 787e651778
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:52:21 2024 +0100

    Fixed todos with log message

    Signed-off-by: snipe <snipe@snipe.net>

commit ef9b6e3b07
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:54 2024 +0100

    Code cleanup

    Signed-off-by: snipe <snipe@snipe.net>

commit 06c599cc17
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:03 2024 +0100

    Added method to show or download file

    Signed-off-by: snipe <snipe@snipe.net>

commit 6105323877
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 14:11:20 2024 +0100

    Use plural class name for src

    Signed-off-by: snipe <snipe@snipe.net>

commit 0933a2d4ea
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 18:01:48 2024 -0700

    Remove --parallel flag

commit a8d853c44a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:26:27 2024 -0700

    Remove focus group tags

commit 7e1b47708e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:18:41 2024 -0700

    Fix failing test ensuring company id is an integer

commit 979e4502ff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:14:39 2024 -0700

    Have getIdForCurrentUser method return null if FMCS enabled, user is not super admin, and does not have company

commit ff113ef523
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 14:56:58 2024 -0700

    typo fix

commit 99dd51a965
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:53:18 2024 -0700

    Improve name

commit 15c2169477
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:31:05 2024 -0700

    Scaffold additional tests

commit 50fa6ce335
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:12:22 2024 -0700

    Scaffold tests

commit 7ae76e7db9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:55:03 2024 -0700

    remove viewdata array from 3 tests

commit b98058ca98
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:48:26 2024 -0700

    fix tests pt 3

commit 83e8186d9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:39:56 2024 -0700

    fix assertSent to AssertNotSent on some test

commit cdd4fef7df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:34:55 2024 -0700

    attempt to fix tests p2

commit dceb8e305f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:11:39 2024 -0700

    attempt to fix tests

commit 123cdeb858
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:39:48 2024 -0700

    add email check to listener

commit 496b44e887
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:28:57 2024 -0700

    merged composer lock from dev

commit a690cc3582
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:26:55 2024 -0700

    removing my composer stuff again..for the last time

commit ceb3f5cea6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:19:50 2024 -0700

    added mail-gun and http-client to 8.1

commit 65735a31f1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:18:34 2024 -0700

    removed symfony/mailgun-mailer symfony/http-client

commit 285d6897cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:05:36 2024 -0700

    added a coulple test adjustments and moved mail send logic to listener

commit 159a1d3f43
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 11:48:55 2024 -0700

    Be more explicit

commit d1149730be
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 16:31:17 2024 +0100

    Apply blade component to files views

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ad1d072f
Merge: bcb4bd9eb 3cf746d7d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 15:29:47 2024 +0100

    Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

    Bulk checkout to bulk actions

commit 780ed91a10
Author: NebelKreis <leipold.johannes@web.de>
Date:   Thu Oct 17 16:09:25 2024 +0200

    Fix: Removed strtolower() from dashboard titles

    This fix ensures the correct capitalization in different languages.

commit bcb4bd9eb4
Merge: 250037540 f50ccbcc4
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 10:20:13 2024 +0100

    Merge pull request #15683 from Toreg87/fixes/outdated_comment

    Fix outdated comment in CompanyableTrait

commit f50ccbcc49
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Thu Oct 17 11:07:28 2024 +0200

    Fix outdated comment in CompanyableTrait

    As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

commit 9a79483375
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:59:18 2024 -0700

    removed namespaces from routing

commit ed6034065b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:47:36 2024 -0700

    removed test route

commit a7754c1a7f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:46:52 2024 -0700

    fixed asset checkout markdown, and notifiable variable

commit 0e9b3c9119
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:39 2024 +0100

    Check for existence before trying to get the icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 4933aa5784
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:04 2024 +0100

    Add StorageHelper to app config

    Signed-off-by: snipe <snipe@snipe.net>

commit d67addc69e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:21:43 2024 +0100

    Removed filetype column - it’s dumb

    Signed-off-by: snipe <snipe@snipe.net>

commit 02c80ff18a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:40 2024 +0100

    Added comment

    Signed-off-by: snipe <snipe@snipe.net>

commit c01190fac2
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:34 2024 +0100

    Conditionally add content-type

    Signed-off-by: snipe <snipe@snipe.net>

commit 017884f843
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:09:09 2024 +0100

    Added checks and filetype display

    Signed-off-by: snipe <snipe@snipe.net>

commit c49921f50f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:54 2024 +0100

    Removed unused (maybe?) API endpoint

    Signed-off-by: snipe <snipe@snipe.net>

commit c49abb6aea
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:38 2024 +0100

    Refactor the UserFilesController show method for simpler inlining

    Signed-off-by: snipe <snipe@snipe.net>

commit ccd2019448
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:04 2024 +0100

    Removed unusded use statements

    Signed-off-by: snipe <snipe@snipe.net>

commit 96191a5e93
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:54 2024 +0100

    Added method to decide if the file should be inlinable

    Signed-off-by: snipe <snipe@snipe.net>

commit c56affd663
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:37 2024 +0100

    Added SVG icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 02bda3cd95
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:53:05 2024 -0700

    adds Checkout Consumable mailable and slackwebhook channel to notifs

commit 02ff646da4
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:44:45 2024 -0700

    adds checkin license mailable

commit 4becdca8aa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:39:20 2024 -0700

    removes toMail from license notificaqtion

commit 2584d60344
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:38:49 2024 -0700

    adds Licenses seat checkout Mailable

commit f1d83a3f28
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:30:53 2024 -0700

    forgot to add asset checkout markdown to projet

commit c39df34bdf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:29:50 2024 -0700

    forgot to add accessory mail to project

commit dcdf600b78
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:27:34 2024 -0700

    adds Checkin and Checkout mailables and listner logic

commit 3cf746d7df
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 16 23:13:32 2024 +0100

    Rework the bulk checkout to not change how all checkouts work

commit 6b7af802af
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 10 13:28:23 2024 +0100

    Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

commit 9710436d54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 13:12:07 2024 -0700

    adds Mailables for asset checkin and out

commit 16cffe9a9d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:53:35 2024 -0700

    simplified checkout webhook call

commit 9e1b86f586
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:51:19 2024 -0700

    sends checkout notification via webhook

commit 3ab2521cb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:21:33 2024 -0700

    email comes through, no picture and html markup appear though.

commit 604a964462
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:52:24 2024 -0700

    Improve scenario descriptions

commit 2f72c66614
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:30:06 2024 -0700

    Add additional case

commit fdcc17ca2c
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Wed Oct 16 11:18:24 2024 +0200

    Fix user creation with FullMultipleCompanySupport enabled over API

    It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
    Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

    Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

commit cba1a56040
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:38:11 2024 -0700

    Improve readability?

commit d9afde4610
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:00:22 2024 -0700

    Write failing test

commit 9f06a0e441
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 14:01:28 2024 -0700

    handle some edge cases, null values clean up variable names

commit 42095c0167
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 13:02:22 2024 -0700

    Add reference link

commit f8476f7133
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 12:49:52 2024 -0700

    finished the construct and mail call in the listner

commit b29d032bf0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 11:28:27 2024 -0700

    adds checkoutAssetMail class, and content method

commit 2500375400
Merge: 16c8264e7 e4e1d0d50
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 17:34:35 2024 +0100

    Merge pull request #15672 from uberbrady/ldap_location_fixes

    Clean up how we use the '$location' in LDAP sync command

commit e4e1d0d50a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Oct 15 17:26:31 2024 +0100

    Clean up how we use the '$location' in LDAP sync command

commit 16c8264e76
Merge: 914a64720 0ae9ce0aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:42:34 2024 +0100

    Merge pull request #15671 from snipe/bug/sc-27147

    Bug/sc 27147

commit 0ae9ce0aa9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:45 2024 +0100

    Cannot sort by updated at on Users [sc-27147]

    Signed-off-by: snipe <snipe@snipe.net>

commit 50b8f180b3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:39 2024 +0100

    More logical grouping in allow_columns

    Signed-off-by: snipe <snipe@snipe.net>

commit 914a647204
Merge: 69b6080bd e9225ff3e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:47:15 2024 +0100

    Merge pull request #15669 from snipe/remlove_ou_requirenedess

    Fixed #15663 - remove requiredness for OU

commit e9225ff3ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:43:10 2024 +0100

    Switch to regular HTML for input form field

    Signed-off-by: snipe <snipe@snipe.net>

commit d0d4159088
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:42:09 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 69b6080bd8
Merge: ddead359d b997d728f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:31:29 2024 +0100

    Merge pull request #15666 from snipe/updated_readme_llm

    Added LLM note

commit b997d728fb
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:30:34 2024 +0100

    Added LLM note

    Signed-off-by: snipe <snipe@snipe.net>

commit ddead359d0
Merge: 0d35335da f3c4e5566
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 14 14:29:34 2024 +0100

    Merge pull request #15660 from Toreg87/fixes/api_asset_create_fmcs2

    Refactor asset creation with API

commit f3c4e55667
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Mon Oct 14 15:14:41 2024 +0200

    Refactor asset creation with API

    Commit fb4fe3004 restored the previous behaviour to check the company_id in case of FullMultipleCompanySupport.
    But after rereading the code and the laravel documentation, the check is already there where it belongs in AssetStoreRequest::prepareForValidation()
    The bug is the is_int-check of the request input in prepareForValidation(). Is is of type string even if it is a numeric value, so the call to getIdForCurrentUser() never happend.
    Fix this by removing the check and the now redundant call to getIdForCurrentUser().
    Wrong values will get caught by the model-level validation rules.

commit 0d35335da7
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 16:06:17 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit feaa714304
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 14:23:57 2024 +0100

    Nicer disabled button

    Signed-off-by: snipe <snipe@snipe.net>

commit e1a70023b1
Merge: de62359c6 fb4fe3004
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:45:48 2024 +0100

    Merge pull request #15655 from Toreg87/fixes/api_asset_create_fmcs

    Fixes #15654 Fix asset creation with API and FullMultipleCompanySupport

commit de62359c67
Merge: 12bda8fc7 3dc64cc5e
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:29:34 2024 +0100

    Merge pull request #15533 from marcusmoore/testing/fmcs-accessories

    Added tests for accessory api controller

commit 12bda8fc7b
Merge: 8aa298f6b b054017c9
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:27:18 2024 +0100

    Merge pull request #15653 from snipe/15651_admin_user_on_maintenances

    Fixed #15651 - admin user now displaying on maintenances page

commit fb4fe30049
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Fri Oct 11 12:09:09 2024 +0200

    Fix asset creation with API and FullMultipleCompanySupport

    It is currently possible to create an asset with arbitrary company without being superuser and FullMultipleCompanySupport enabled.
    This bug goes back to 75ac7f80b9 which is part of version 6.3.0.
    Fix this by restoring the previous behaviour to check the company_id with getIdForCurrentUser().

commit b054017c9f
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:16:24 2024 +0100

    Fixed #15651 - admin user now displaying on maintenances page

    Signed-off-by: snipe <snipe@snipe.net>

commit 524a442724
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Thu Oct 10 23:32:07 2024 +0100

    Improved import performance

commit 8aa298f6b0
Merge: 1f3465773 b5b93fdd3
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:53 2024 +0100

    Merge pull request #15644 from snipe/form_requests_for_settings

    Form requests for settings

commit 1f34657734
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:35 2024 +0100

    Fixed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 0856ee648e
Merge: 94a074a19 1dafc970d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:23:14 2024 +0100

    Merge pull request #15648 from snipe/update_packages

    Updated livewire to 3.5.2

commit 1dafc970df
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:19:57 2024 +0100

    Updated livewire to 3.5.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 94a074a193
Merge: 2d49e1eff b34a7c8aa
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:11:10 2024 +0100

    Merge pull request #15601 from snipe/check_db_on_healthcheck

    Fixed #15439 - check database on healthcheck

commit 2d49e1eff2
Merge: 705bc6f0c c2663ea1e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:09:11 2024 +0100

    Merge pull request #15637 from akemidx/bug/sc-26614

    FIXED: Badge counter showing deleted assets on User page

commit 705bc6f0c0
Merge: 3ee571374 67a605c9a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:08:25 2024 +0100

    Merge pull request #15642 from uberbrady/fix_bulk_checkout

    Fix bulk checkout to users, assets, and locations

commit b5b93fdd3a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 00:27:00 2024 +0100

    Make ldap username required

    Signed-off-by: snipe <snipe@snipe.net>

commit d9432baf7a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 23:51:20 2024 +0100

    Mlore ldap style improvements

    Signed-off-by: snipe <snipe@snipe.net>

commit 90be2a4498
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:26:30 2024 +0100

    Use newer naming convention for errors

    Signed-off-by: snipe <snipe@snipe.net>

commit 3886da8941
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:49 2024 +0100

    Remove form request from get LDAP method

    Signed-off-by: snipe <snipe@snipe.net>

commit 130e0c6242
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:37 2024 +0100

    More validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 4361a10818
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:30 2024 +0100

    Added string

    Signed-off-by: snipe <snipe@snipe.net>

commit aa8048ac15
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:25 2024 +0100

    Blade changes for ldap

    Signed-off-by: snipe <snipe@snipe.net>

commit 710e738e8e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:16 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3705b91439
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:51:34 2024 +0100

    Added more validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 707bdad192
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:56 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit 242fe33f97
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:42 2024 +0100

    Switch to regular HTML input

    Signed-off-by: snipe <snipe@snipe.net>

commit ded79469c1
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:29 2024 +0100

    Remove unused controller method

    Signed-off-by: snipe <snipe@snipe.net>

commit d9fbf330e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:15 2024 +0100

    Fixed translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 2cb9ac26cd
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:57:04 2024 +0100

    Renamed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 185bc966e6
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:46:47 2024 +0100

    Cleaned up use statements in tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a7f7e4938f
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:31:56 2024 +0100

    Added form action

    Signed-off-by: snipe <snipe@snipe.net>

commit 2883e79193
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:55 2024 +0100

    Removed unecessary assets creation

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c4191ae0a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:42 2024 +0100

    Basic tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3a77b83e9c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:34 2024 +0100

    Added space

    Signed-off-by: snipe <snipe@snipe.net>

commit d9be2b5a5e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:25 2024 +0100

    Trying to use the email_array translation

    Signed-off-by: snipe <snipe@snipe.net>

commit 69c43c610c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:00 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 4f957bcf71
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:34:53 2024 +0100

    Required flag

    Signed-off-by: snipe <snipe@snipe.net>

commit 5cda7cce48
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:21:40 2024 +0100

    Only accept a positive number for thresholds

    Signed-off-by: snipe <snipe@snipe.net>

commit 41b94e7128
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:19:26 2024 +0100

    Fixed form input group

    Signed-off-by: snipe <snipe@snipe.net>

commit aa55fa6ff4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:16:34 2024 +0100

    Switch to form requests for settings

    Signed-off-by: snipe <snipe@snipe.net>

commit 67a605c9a5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 9 17:01:26 2024 +0100

    Fix bulk checkout to users, assets, and locations

commit c2663ea1e0
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Oct 8 16:38:33 2024 -0400

    withouttrashed

commit 3ee5713740
Merge: ab8a22f77 56e7ea667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 23:13:15 2024 +0100

    Merge pull request #15631 from snipe/test/importer-tests

    Add importer tests

commit ab8a22f77e
Merge: 26d7572bc 8c9132aff
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:56:23 2024 +0100

    Merge pull request #15630 from marcusmoore/bug/sc-27028

    Only show EULA when available on print users page

commit 56e7ea6677
Merge: 32551d55d 803532667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:29:35 2024 +0100

    Merge pull request #15616 from marcusmoore/test/importer-test-updates

    Improve importer tests

commit 26d7572bcc
Merge: 382ebef8c ee046a868
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:28:53 2024 +0100

    Merge pull request #15603 from marcusmoore/fixes/add-reguard

    Added `Model::reguard()` to importer

commit 8c9132aff9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 7 14:22:49 2024 -0700

    Hide EULA text and button when nothing will be displayed

commit 382ebef8ca
Merge: 2be88cb95 f76da4844
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 21:26:21 2024 +0100

    Merge pull request #15621 from sniff122/develop

    Docker Env: Change trusted proxies to RFC1918

commit 2be88cb955
Merge: 7fc498a59 3f36d5f9b
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:14:24 2024 +0100

    Merge pull request #15624 from snipe/fixed_line_break_on_print_all_for_users

    Removed duplicate JS and removed line break before user section

commit 3f36d5f9b3
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:08:02 2024 +0100

    Removed duplicate CSS and removed line break before user section

    Signed-off-by: snipe <snipe@snipe.net>

commit f76da48448
Author: Lewis Foster <lewis@sniff122.tech>
Date:   Sat Oct 5 18:27:42 2024 +0100

    Docker Env: Change trusted proxies to RFC1918

commit 8035326675
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 16:53:19 2024 -0700

    Add test

commit dfdd85abb1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:14:07 2024 -0700

    Remove unused imports

commit 063ea1892b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:02:03 2024 -0700

    Add trait to clean up files after test runs

commit e213053775
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:59:58 2024 -0700

    Swap factory syntax

commit 88d549e7c5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:40:37 2024 -0700

    Remove unused data provider method

commit 983a25aa5f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:39:54 2024 -0700

    Simplify permission tests

commit bde05d6ed9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:49 2024 -0700

    Use new() instead of times()

commit b5ffe54bd0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:02 2024 -0700

    Swap assertEquals parameter order

commit 863c0a8b60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 11:43:02 2024 -0700

    Fix import_type for accessory state

commit 32551d55d7
Merge: 7fc498a59 e807cfab8
Author: Marcus Moore <mmoore@grokability.com>
Date:   Thu Oct 3 11:39:21 2024 -0700

    Merge pull request #15579 from bryanlopezinc/ImportTests

    Add Import data tests

commit 7fc498a597
Merge: 78ca1026f cb281c640
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:39:18 2024 +0100

    Merge pull request #15613 from snipe/css_fixes_for_long_values

    Smarter word-wrapping on long text

commit cb281c6408
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:33:46 2024 +0100

    Tweaked line height

    Signed-off-by: snipe <snipe@snipe.net>

commit f483cd448f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:27:37 2024 +0100

    Smarter work-wrapping on long text

    Signed-off-by: snipe <snipe@snipe.net>

commit 78ca1026fd
Merge: 3699d7936 722d5a58e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:24:32 2024 +0100

    Merge pull request #15612 from snipe/fixes_print_assigned_in_profile

    Fixes print assigned in profile

commit 722d5a58e7
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:38 2024 +0100

    Added isset on users

    Signed-off-by: snipe <snipe@snipe.net>

commit 7461c3e0ca
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:27 2024 +0100

    Change controller to assume a collection. (This is dumb, but whatever)

    Signed-off-by: snipe <snipe@snipe.net>

commit 3c0f4181ae
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:06 2024 +0100

    Use the newer button style

    Signed-off-by: snipe <snipe@snipe.net>

commit 3699d79363
Merge: 54fbd0540 350b627ce
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 14:34:00 2024 +0100

    Merge pull request #15610 from uberbrady/fix_numeric_sort_bug

    Fix numeric sort 'ambiguous order clause' error

commit 350b627ce1
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 3 14:23:40 2024 +0100

    Fix numeric sort 'ambiguous order clause' error

commit ee046a8688
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 2 10:50:40 2024 -0700

    Add matching Model::reguard()

commit b34a7c8aad
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:48:35 2024 +0100

    Removed die()

    Signed-off-by: snipe <snipe@snipe.net>

commit f92bf5dc20
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:39:27 2024 +0100

    Updated language for failure

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d9e85026a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:36:01 2024 +0100

    Fixed #15439 - check database on healthcheck

    Signed-off-by: snipe <snipe@snipe.net>

commit 54fbd0540d
Merge: b483bb163 4db735808
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:49 2024 +0100

    Merge branch 'develop' of https://github.com/snipe/snipe-it into develop

commit b483bb1633
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:45 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4db7358086
Merge: 0dd6f41f6 b9cfdf2e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:38:46 2024 +0100

    Merge pull request #15593 from Godmartinz/Fixed-divide-by-zero-bug

    Fixed divide by zero bug in depreciation transformer

commit 0dd6f41f66
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:04:55 2024 +0100

    Simplified 2fa if/else

    Signed-off-by: snipe <snipe@snipe.net>

commit 684c20ae39
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:00:49 2024 +0100

    Fixed parenthasis

    Signed-off-by: snipe <snipe@snipe.net>

commit 3153bbb13f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 17:04:18 2024 -0500

    dumb fix

commit 3dc64cc5e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 13:35:39 2024 -0700

    Reference accessory checkout and not the accessory

commit c32f4e34b4
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:35:49 2024 +0100

    Minor formatting fix

    Signed-off-by: snipe <snipe@snipe.net>

commit ca1886cebc
Merge: 45ab49eea a79dfea40
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:31:38 2024 +0100

    Merge pull request #15594 from snipe/localizations/update-2024-10-01

    Updated strings

commit a79dfea40a
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:30:58 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit 45ab49eeab
Merge: 97d00e5aa 8232618a9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:26:42 2024 +0100

    Merge pull request #15592 from spencerrlongg/bug/catch_request_notify_errors

    Catch Errors Around Request Notifications

commit 8232618a9f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:26:32 2024 -0500

    change the other one too

commit 9a651b567d
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:24:03 2024 -0500

    change error to warning

commit 97d00e5aa8
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:08:54 2024 +0100

    Fixed erroneous form tag on anchor

    Signed-off-by: snipe <snipe@snipe.net>

commit 5b90d79494
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 11:50:48 2024 -0700

    Use created_by

commit b9cfdf2e54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:41:59 2024 -0700

    reworked monthly depreciation variable value

commit 1139acd9f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 13:36:47 2024 -0500

    catch errors around request notifications

commit b7ad80bd31
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:24:24 2024 -0700

    fix monthly depreciation value

commit 5ffd1b8daa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:02:39 2024 -0700

    fixes if statement in transformer

commit 9a2117466e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:40 2024 +0100

    Removed placeholder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7e3a062984
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:07 2024 +0100

    Use <th> for table header in bulk interstitial

    Signed-off-by: snipe <snipe@snipe.net>

commit d274fb6963
Merge: cfc04a1d1 27ba641aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:32:48 2024 +0100

    Merge pull request #15589 from snipe/adds_checkin_action_on_asset_delete

    Adds checkin action on asset delete via View UI

commit 27ba641aa5
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:30:34 2024 +0100

    Added checkin on delete to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 5823197e6f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:29:02 2024 +0100

    Added checkin action on delete for checked out assets

    Signed-off-by: snipe <snipe@snipe.net>

commit cfc04a1d12
Merge: 12da43303 cae8aa784
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:08:58 2024 +0100

    Merge pull request #15588 from snipe/added_more_maxlengths

    Added maxlengths to additional fields

commit cae8aa7840
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:02:54 2024 +0100

    Added maxlengths to additional fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 12da43303f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 01:44:05 2024 +0100

    Fixed #15584 - regression with required css change

    Signed-off-by: snipe <snipe@snipe.net>

commit fdfea390fb
Merge: d609ed50a 5689e940b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 30 12:59:27 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b04afbbc85
Merge: b964ce102 3f311ba2f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:26:08 2024 +0100

    Merge pull request #15564 from uberbrady/improve_autoclose

    Get us better debugging output for new Github Stale Action

commit b964ce1025
Merge: 6217cba20 68e3f375f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:25:05 2024 +0100

    Merge pull request #15583 from Godmartinz/remove-sortable-from-depreciations

    Removed sortablity for current value column in depreciations report

commit 6217cba201
Merge: 5689e940b b32ab6a06
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:24:19 2024 +0100

    Merge pull request #15524 from Godmartinz/double-notif-bug

    Fixed double webhook notifications // Separated email and webhook notifications.

commit 68e3f375fc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 30 11:15:49 2024 -0700

    removes sortablity from current value column

commit 5689e940b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 18:23:12 2024 +0100

    Fixed #15581 - missing bracker

    Signed-off-by: snipe <snipe@snipe.net>

commit e807cfab86
Merge: 0b3f45856 001348c63
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:47:52 2024 +0100

    Merge branch 'develop' into importTests

commit 0b3f458561
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:42:41 2024 +0100

    Added tests for Import feature

commit 001348c638
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 14:33:42 2024 +0100

    Unset required on checkout select :(

    Related to the discussion at #15552

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b041af862
Merge: 260b15368 d120585f9
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 11:25:01 2024 +0100

    Merge remote-tracking branch 'origin/master' into develop

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 260b153689
Merge: 36b27fcda 05d74f7a9
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 16:09:51 2024 +0100

    Merge pull request #15573 from snipe/fixed_requiredness_indicator

    Fixes for requiredness indicator in UI

commit 05d74f7a92
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:42:03 2024 +0100

    Covered setup pages too

    Signed-off-by: snipe <snipe@snipe.net>

commit dc85588d7f
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:31:44 2024 +0100

    Don’t show password as required if editing

    Signed-off-by: snipe <snipe@snipe.net>

commit 585f998cae
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:28:06 2024 +0100

    Fixes for requiredness display

    Signed-off-by: snipe <snipe@snipe.net>

commit d120585f94
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 14:07:30 2024 +0100

    Check for valid eula for license, consumable

    Signed-off-by: snipe <snipe@snipe.net>

commit 166a700342
Merge: 6c85ba349 36b27fcda
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 36b27fcda3
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:14 2024 +0100

    Check for valid category before getting the eula

    Signed-off-by: snipe <snipe@snipe.net>

commit a44490e448
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:07:24 2024 +0100

    Nowrap on files column

    Signed-off-by: snipe <snipe@snipe.net>

commit 9aada2ec70
Merge: ac6411743 ef82f954e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 26 09:09:35 2024 +0100

    Merge pull request #15498 from Godmartinz/Modal_fix

    Refactoring modals with partials and fixing misalignments

commit 3f74ff25d2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 16:19:09 2024 -0700

    fixed error message

commit ef82f954e5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 15:47:57 2024 -0700

    fixed required css, and user input lengths

commit 3f311ba2fb
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 25 21:27:45 2024 +0100

    Get us better debugging output for new Github Stale Action

commit 96953aa2ed
Merge: e609b3976 b797c37ac
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:50:01 2024 -0700

    Merge pull request #23 from Godmartinz/Modal_fix_p3

    replace duplicate code with partials

commit b797c37acb
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:48:05 2024 -0700

    replace duplicate code with partials

commit 6c85ba3495
Merge: 9f8473e25 ac6411743
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:45:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ac6411743b
Merge: 9b03f4649 3f0245f88
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:35:58 2024 +0100

    Merge pull request #15563 from snipe/refined_gates_on_user_bulk

    Update for #15534 - Refined gates on user bulk

commit 3f0245f88f
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:33:00 2024 +0100

    Make controller gate match dropdown gate

    Signed-off-by: snipe <snipe@snipe.net>

commit c02647a0fa
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:32:03 2024 +0100

    Moved merge into delete gate, since they do technically delete

    Signed-off-by: snipe <snipe@snipe.net>

commit edca3f432c
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:30:58 2024 +0100

    Removed gate for delete

    Signed-off-by: snipe <snipe@snipe.net>

commit 2218c94aa3
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:29:23 2024 +0100

    Gates the dropdown based on user permissions

    Signed-off-by: snipe <snipe@snipe.net>

commit e609b39760
Merge: 0bc98e971 12522a379
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:09:26 2024 -0700

    Merge pull request #22 from Godmartinz/Modal_fix_p2

    Modal fix p2

commit 12522a3791
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:07:15 2024 -0700

    fix spacing issues

commit f6d7ea19e4
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:44:39 2024 +0100

    Set view as base permission, drill down for more intrusive actions

    Signed-off-by: snipe <snipe@snipe.net>

commit 18ddffe8f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:42:16 2024 -0700

    fix partial variable intialization, fix width of input fields

commit 9b03f46490
Merge: cb6e5042d fac4833b5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:32:01 2024 +0100

    Merge pull request #15534 from marcusmoore/bulk-print-users

    Added the ability to bulk print users

commit 926a319552
Merge: 0bc98e971 cb6e5042d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:10:24 2024 -0700

    Merge branch 'develop' into Modal_fix_p2

commit 9f8473e254
Merge: 0e61d0b19 cb6e5042d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:36:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb6e5042d9
Merge: c1a887b48 ba69259f2
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:59 2024 +0100

    Merge pull request #15547 from snipe/disallow_checkout_with_nondeployable_status

    Fixed #13396 - do not allow checkout to undeployable status types

commit c1a887b48b
Merge: ba1220484 658c94ad8
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:21 2024 +0100

    Merge pull request #15561 from snipe/fixes/adds_action_date_to_sorting

    Changed `action_date` to `created_at` in activity report

commit 658c94ad8b
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 17:25:15 2024 +0100

    Changed action_date to created_at

    Signed-off-by: snipe <snipe@snipe.net>

commit 0e61d0b195
Merge: abdddbec4 ba1220484
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ba12204842
Merge: eeabc8dc9 1c3babaca
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:14 2024 +0100

    Merge pull request #15555 from snipe/fixes/user_file_upload

    Fixed case on `$logAction` for user file upload

commit 1c3babacaf
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:46:57 2024 +0100

    Fixed case on logAction for usewr file upload

    Signed-off-by: snipe <snipe@snipe.net>

commit abdddbec44
Merge: a425c2b76 eeabc8dc9
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:58:25 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit eeabc8dc9d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:33:45 2024 +0100

    Dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 21f8ac8e52
Merge: c38222e95 2a2666be0
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:31:23 2024 +0100

    Merge pull request #15552 from Godmartinz/ragged-form-inputs

    Fixed input field misalignments

commit a425c2b765
Merge: 34eb10ff7 c38222e95
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 10:52:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 2a2666be0b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 24 13:24:50 2024 -0700

    makes required a pseudo field

commit c38222e956
Merge: 8cf1e4dce 0ce5832b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 18:10:53 2024 +0100

    Merge pull request #15549 from snipe/fixes/#15548_unify_audit_api_endpoints

    Fixes #15548 - unify audit api endpoints

commit 0ce5832b6c
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 17:29:40 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit b6340532d7
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 17:15:39 2024 +0100

    Improve the error and success messages and linking

commit 5fb43dd159
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:55:56 2024 +0100

    Handle `audit` *and* `audits` for urls

    Signed-off-by: snipe <snipe@snipe.net>

commit de57d71bf1
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:30:24 2024 +0100

    Fixed #15548 - unify audit due/overdue APIs

    Signed-off-by: snipe <snipe@snipe.net>

commit ba69259f2d
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 15:35:00 2024 +0100

    Fixed #13396 - do not allow checkout to undeployable status types

    Signed-off-by: snipe <snipe@snipe.net>

commit c71411465a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 15:17:35 2024 +0100

    First pass at better-handling those annoying Rollbars we keep getting

commit 8cf1e4dceb
Merge: ab0c009c0 66249a37e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:10:20 2024 +0100

    Merge pull request #15544 from snipe/bug/sc-26855

    Fixed app settings view on mobile

commit 66249a37ed
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:08:31 2024 +0100

    Tweaked styles

    Signed-off-by: snipe <snipe@snipe.net>

commit 96712cb398
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 10:55:26 2024 +0100

    Fixed app settings view on mobile

    Signed-off-by: snipe <snipe@snipe.net>

commit fac4833b58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 17:15:16 2024 -0700

    Remove unused import

commit a12c9d053f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:44:25 2024 -0700

    Hide label when printing

commit 8b3b68b308
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:43:14 2024 -0700

    Show or hide all eulas at once when printing multiple users

commit 4b02db5031
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:26:22 2024 -0700

    Add authorization check in bulk users controller

commit ab90c0cf05
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:40 2024 -0700

    Add missing eager load in bulk users controller

commit cef7ddc719
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:21 2024 -0700

    Add eager loads to userscontroller

commit 3870095a28
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:50:24 2024 -0700

    Fix Cannot read properties of undefined error by removing snipe-table class from eula table

commit a02e250b22
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:26:15 2024 -0700

    Add page breaks for each user

commit 8ac5c0e471
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 14:05:47 2024 -0700

    Re-combine layout and view

commit a2d4dcf6e8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 12:49:36 2024 -0700

    Use bulk actions menu

commit 54044bfa5e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:57:57 2024 -0700

    Add eager loads

commit e493cc964d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:48:07 2024 -0700

    Remove AssetCountForSidebar middleware from print view

commit 29af210f4f
Merge: 5128fd49e ab0c009c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:26:20 2024 -0700

    Merge branch 'develop' into bulk-print-users

commit 34eb10ff73
Merge: 7d7d58769 ab0c009c0
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab0c009c0d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:10 2024 +0100

    Fixed seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7d7d58769c
Merge: 245d5dc46 b68805cf8
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:13:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b68805cf83
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:11:52 2024 +0100

    Small fix for notifications checkout

    Signed-off-by: snipe <snipe@snipe.net>

commit 245d5dc469
Merge: 4ab478bb9 7d858129d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 17:28:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 7d858129d9
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:44:19 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 65ce63bc9b
Merge: 5eea9d195 54fba2f54
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:42:07 2024 +0100

    Merge pull request #15537 from snipe/snyk/updated_jspdf_autotable

    Updated jspdf autotable

commit 54fba2f547
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:40:41 2024 +0100

    Update jspdf autotable

    Signed-off-by: snipe <snipe@snipe.net>

commit 5eea9d1950
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:56 2024 +0100

    Corrected text warning translation

    Signed-off-by: snipe <snipe@snipe.net>

commit b84a634ec7
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:35 2024 +0100

    Corrected comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2fc88a0e08
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:26 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit bc540b6564
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:02:28 2024 +0100

    Requestable status not saving with manual [sc-26848]

    Signed-off-by: snipe <snipe@snipe.net>

commit f53b852dff
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:53:52 2024 +0100

    Make created_by equal one in the seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit b83d1a043f
Merge: cdb7ccb8f b21c303e5
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:47:31 2024 +0100

    Merge pull request #15519 from snipe/features/add_created_at_created_by

    Change `user_id` to `created_by`

commit 4ab478bb97
Merge: d96c5e1ba cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:44:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b21c303e56
Merge: b88f2054d cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:43:50 2024 +0100

    Merge remote-tracking branch 'origin/develop' into features/add_created_at_created_by

commit 5128fd49e6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:27:25 2024 -0700

    Allow printing all users

commit 2d2d5bdc7e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:23:47 2024 -0700

    Pass user in array

commit 8364d26c9b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:18:26 2024 -0700

    Extract parent layout

commit efd6d7625f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:16:05 2024 -0700

    Remove bad closing tag

commit bdf5708bfc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:43 2024 -0700

    Remove accidental line

commit e95703cb18
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:07 2024 -0700

    Use eager load

commit 7ad4a29970
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 16:54:39 2024 -0700

    Add eager loading

commit cdb7ccb8f3
Merge: 8270947ed d446773fd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:54:03 2024 +0100

    Merge pull request #15532 from spencerrlongg/bug/15253

    Catch Exceptions on Checkout Notification

commit 8270947ed2
Merge: 4f7c8e0c3 8e1111c68
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:49:27 2024 +0100

    Merge pull request #13291 from akemidx/eol_date_range_for_reports

    Added date range for EOL in custom reports

commit 4f7c8e0c3d
Merge: d7bde3784 3ea5d4ee4
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:36:09 2024 +0100

    Merge pull request #14671 from Robert-Azelis/patch-6

    [FIX] Update EOL date when used bulk update of purchase date

commit d609ed50a4
Merge: d639d6fbc d7bde3784
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 13:20:55 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b88f2054dd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:38:34 2024 +0100

    Refactor isDeletable on companies

    Signed-off-by: snipe <snipe@snipe.net>

commit d7914e238d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:34:54 2024 +0100

    Added created by to company on save

    Signed-off-by: snipe <snipe@snipe.net>

commit d7bde37842
Merge: 454796e52 4facc4007
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:33:10 2024 +0100

    Merge pull request #15507 from setpill/setpill/feat/use_explicit_attributes_in_ldap_sync

    Added #15506: Explicitly request used LDAP attributes

commit 454796e52a
Merge: eef487d61 7c85ad54e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:32:03 2024 +0100

    Merge pull request #15518 from snipe/sort_by_numeric_custom_fields

    Fixed #11634 - Sort by numeric columns for numeric custom fields

commit eef487d61b
Merge: dddbf27d7 71dbc7abb
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:31:02 2024 +0100

    Merge pull request #15531 from Godmartinz/status-doesnt-update-in-email

    Fixed mail notification field `status label` not updating

commit 71dbc7abb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 19 12:23:07 2024 -0700

    refreshed the assetstatus relationship

commit d639d6fbc1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:21:54 2024 -0700

    Add tests for accessory select list endpoint

commit 74088ea581
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:13:38 2024 +0100

    Optimize isDeletable counts

    Signed-off-by: snipe <snipe@snipe.net>

commit fff069824b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:11:03 2024 -0700

    Add tests for update accessory endpoint

commit d446773fdd
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Thu Sep 19 14:05:48 2024 -0500

    catch exceptions on notification

commit f283b5fbe8
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:56:39 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit a5be18bb14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:55:15 2024 -0700

    Add test for limit and offset

commit eb6f05faf7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:46 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit 118183ff58
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:39 2024 +0100

    Removed footer

    Signed-off-by: snipe <snipe@snipe.net>

commit 2137890496
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:33:20 2024 -0700

    Remove dead code

commit ebf6ce6980
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:27:10 2024 +0100

    Refactor for fewer queries

    Signed-off-by: snipe <snipe@snipe.net>

commit 9b22d6d493
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:24:01 2024 -0700

    Add tests for accessory checkouts endpoint

commit 5ebf0ed2b2
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:19:14 2024 +0100

    Updated variable

    Signed-off-by: snipe <snipe@snipe.net>

commit 836893cba5
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:35:00 2024 +0100

    Added id to report

    Signed-off-by: snipe <snipe@snipe.net>

commit cd98b3817d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:26:08 2024 +0100

    Removed duplicate line

    Signed-off-by: snipe <snipe@snipe.net>

commit 727806372c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:22:11 2024 +0100

    Added created_by to status label

    Signed-off-by: snipe <snipe@snipe.net>

commit 5e1c736d49
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:04:50 2024 +0100

    Added created_by for manufacturers

    Signed-off-by: snipe <snipe@snipe.net>

commit 6579fa72da
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:56:05 2024 +0100

    Added scoping for categories and companies

    Signed-off-by: snipe <snipe@snipe.net>

commit 82d6e1510f
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:41:05 2024 +0100

    Order by created_by for depreciations

    Signed-off-by: snipe <snipe@snipe.net>

commit 822ea96dfd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:31:46 2024 +0100

    Use auth()->id() instead of Auth::id()

    Signed-off-by: snipe <snipe@snipe.net>

commit b247fc33b9
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:28:01 2024 +0100

    Added legacy comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2dcae780c0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:26:21 2024 +0100

    Reapply deleted code

    Signed-off-by: snipe <snipe@snipe.net>

commit 5c3180ffa0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:25:09 2024 +0100

    Removed duplicate code

    Signed-off-by: snipe <snipe@snipe.net>

commit 65eba30038
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:23:34 2024 +0100

    Fixed markdown in acceptance reminder

    Signed-off-by: snipe <snipe@snipe.net>

commit bbce7b40ca
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:20:56 2024 +0100

    Additional consistencies

    Signed-off-by: snipe <snipe@snipe.net>

commit 02a29c71ef
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:48 2024 +0100

    Added created_by

    Signed-off-by: snipe <snipe@snipe.net>

commit 6699995972
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:36 2024 +0100

    Added created_by to components

    Signed-off-by: snipe <snipe@snipe.net>

commit 951f03094a
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:17 2024 +0100

    Added created_by to kits

    Signed-off-by: snipe <snipe@snipe.net>

commit 354b00ef15
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:51 2024 +0100

    Made method name consistent

    Signed-off-by: snipe <snipe@snipe.net>

commit c93229179b
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:39 2024 +0100

    Added order by created_by to accessories

    Signed-off-by: snipe <snipe@snipe.net>

commit a77a7065d7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:34:10 2024 +0100

    Added order by admin to assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 4363e8b34c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:20:42 2024 +0100

    Updated importer

    Signed-off-by: snipe <snipe@snipe.net>

commit 9adb2c24f3
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:06:36 2024 +0100

    Squashed commit of the following:

    commit dddbf27d78
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 14:18:52 2024 +0100

        Updated language strings

        Signed-off-by: snipe <snipe@snipe.net>

    commit fcefcc8184
    Merge: 04bb3eec8 3519a82dd
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:44:44 2024 +0100

        Merge pull request #15512 from marcusmoore/testing/fmcs

        Added tests for delete methods in api

    commit 04bb3eec83
    Merge: 154d5d8d9 f963b9a19
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:41:37 2024 +0100

        Merge pull request #15521 from uberbrady/improve_country_selector

        Fix selected-index of Countries drop-down [fd-44144]

    commit f963b9a19f
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 18 13:24:26 2024 +0100

        Fix selected-index of Countries drop-down

    commit 154d5d8d91
    Merge: 6c996b775 9e5f6d656
    Author: snipe <snipe@snipe.net>
    Date:   Tue Sep 17 23:40:25 2024 +0100

        Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

        [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

    commit 3519a82ddd
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 16:55:20 2024 -0700

        Fix name: TestsFullMultipleCompaniesSupport

    commit a629df07bf
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:49:08 2024 -0700

        Implement interfaces on existing test classes

    commit 9a13fcab23
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:38:38 2024 -0700

        Pluralize

    commit f5705a1dde
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:34:55 2024 -0700

        More unification

    commit f325c4afdb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:32:38 2024 -0700

        Unify assertion method

    commit 1fddacd7d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:25:11 2024 -0700

        Re-order test methods

    commit 4af893df61
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:20:24 2024 -0700

        Improve assertions

    commit b8b3f91ce4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:55:18 2024 -0700

        Formatting

    commit 7f40f55343
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:52:02 2024 -0700

        Add tests for delete supplier endpoint

    commit b06e8d442d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:37:08 2024 -0700

        Add tests for delete status label endpoint

    commit c269184c60
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:29:41 2024 -0700

        Add tests for delete predefined kit endpoint

    commit 53c673dee2
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:13:12 2024 -0700

        Add tests for delete manufacturer endpoint

    commit 50730fc4fb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:37:18 2024 -0700

        Add tests for delete location endpoint

    commit 60a54cee79
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:33:30 2024 -0700

        Add tests for delete license endpoint

    commit 446e962a50
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:38:51 2024 -0700

        Add tests for delete group endpoint

    commit 79a4bb7316
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:35:44 2024 -0700

        Add tests for delete depreciation endpoint

    commit 2f76c1bc5b
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:33:21 2024 -0700

        Add assertion

    commit 38b9f4a438
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:29:20 2024 -0700

        Add tests for delete departments endpoint

    commit 3105f53aff
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:54:29 2024 -0700

        Add tests for delete custom fieldsets endpoint

    commit 2047cfed09
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:20:32 2024 -0700

        Add tests for delete custom fields endpoint

    commit e3268d32df
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:00:02 2024 -0700

        Add tests for delete consumable endpoint

    commit 6df8b0ac0e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:52:07 2024 -0700

        Add tests for delete component endpoint

    commit 910f13c1f7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:38:30 2024 -0700

        Add tests for delete companies endpoint

    commit 8ce2512f55
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:54:44 2024 -0700

        Add tests for delete category endpoint

    commit 0ec415d4d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:46:22 2024 -0700

        Clean up

    commit 2044570e95
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:39:36 2024 -0700

        Add tests for delete asset model endpoint

    commit b336c6273d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:32:42 2024 -0700

        Pluralize test classes

    commit 5299b3e9f0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:44 2024 -0700

        Remove code handled by CompanyableChildTrait

    commit 872b76b45f
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:10 2024 -0700

        Add tests for delete asset maintenance endpoint

    commit 275cf4630e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:16:37 2024 -0700

        Add tests for delete asset endpoint

    commit 5c2660bd34
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:02:32 2024 -0700

        Introduce interface

    commit c7ae9d9dfa
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 12:58:47 2024 -0700

        Add tests for delete accessory endpoint

    commit 9e5f6d656a
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 11 15:45:01 2024 +0100

        Improve multi-asset create when using numeric prefixes to asset_tags

    Signed-off-by: snipe <snipe@snipe.net>

commit 634a4afa75
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:04:54 2024 +0100

    Fixed 1001 query on license

    Signed-off-by: snipe <snipe@snipe.net>

commit 7650628d30
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:00:59 2024 +0100

    Removed free seat count from fillable

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f690a6238
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 15:58:32 2024 +0100

    Fixed variable name

    Signed-off-by: snipe <snipe@snipe.net>

commit b32ab6a06c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:36:24 2024 -0700

    import User model

commit 4ff5fc1ff9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:19:35 2024 -0700

    clean up variables

commit 86f13a9735
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 16:13:34 2024 -0700

    Add index test

commit c40209f500
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 15:23:44 2024 -0700

    seperates emails and webhook notifications

commit a071fff954
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 12:32:14 2024 -0700

    Implement tests

commit 8b50ef077d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:58:33 2024 -0700

    Implement test

commit 607f29030f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:53:27 2024 -0700

    Stub out test

commit a6bcd3c0c2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:47:59 2024 -0700

    Add validation test

commit 9b293afaac
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:28:29 2024 -0700

    Remove more dead code

commit 636c776620
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:37 2024 -0700

    Remove dead code

commit d5f659024c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:09 2024 -0700

    Add test for logging

commit 832e50a71e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:19:41 2024 -0700

    Implement test

commit fa19686248
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:18:21 2024 -0700

    Implement test

commit c021609c13
Merge: 7b31df7c1 dddbf27d7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 10:42:58 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit 655abe8be5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:32:59 2024 +0100

    Fixed requestable user_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d96c5e1ba4
Merge: a807646d3 dddbf27d7
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:20:55 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit dddbf27d78
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:52 2024 +0100

    Updated language strings

    Signed-off-by: snipe <snipe@snipe.net>

commit bae9982833
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:14 2024 +0100

    Updated request methods

    Signed-off-by: snipe <snipe@snipe.net>

commit a807646d39
Merge: 83b4bf9cf fcefcc818
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:48:09 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit abe79df6dc
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:47:30 2024 +0100

    Added translation

    Signed-off-by: snipe <snipe@snipe.net>

commit fcefcc8184
Merge: 04bb3eec8 3519a82dd
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:44:44 2024 +0100

    Merge pull request #15512 from marcusmoore/testing/fmcs

    Added tests for delete methods in api

commit 04bb3eec83
Merge: 154d5d8d9 f963b9a19
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:41:37 2024 +0100

    Merge pull request #15521 from uberbrady/improve_country_selector

    Fix selected-index of Countries drop-down [fd-44144]

commit f963b9a19f
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 18 13:24:26 2024 +0100

    Fix selected-index of Countries drop-down

commit 154d5d8d91
Merge: 6c996b775 9e5f6d656
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 23:40:25 2024 +0100

    Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

    [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

commit 1582d81e5b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 22:16:41 2024 +0100

    Change `user_id` to `created_by`

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c85ad54eb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 19:44:03 2024 +0100

    Sort by numeric columns for numeric custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b31df7c14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 17 09:11:58 2024 -0700

    Begin additional test case

commit 83b4bf9cf8
Merge: 9ff211105 6c996b775
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c996b7759
Merge: fe5fc6e0c 9e957baeb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:11 2024 +0100

    Merge pull request #15516 from snipe/fixes/fmcs_edit_user

    Fixed check for outside assets on user update validation

commit 9e957baeb5
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:46:45 2024 +0100

    Fixed check for outside assets on user update validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 12fd9cd97a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 17:00:08 2024 -0700

    Update interface name

commit 9e03c4ba6f
Merge: 8eb1c487b 3519a82dd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:58:46 2024 -0700

    Merge branch 'testing/fmcs' into testing/fmcs-accessories

commit 3519a82ddd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:55:20 2024 -0700

    Fix name: TestsFullMultipleCompaniesSupport

commit 8eb1c487bc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:52:10 2024 -0700

    implement FMCS test for accessory index

commit e835637ef0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:40:10 2024 -0700

    Add accessory checkin test

commit eb35608bb5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:33 2024 -0700

    Remove call handled by form request

commit 3f07f682de
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:21 2024 -0700

    Migrate existing tests to TestsPermissionsRequirement

commit a629df07bf
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:49:08 2024 -0700

    Implement interfaces on existing test classes

commit 9a13fcab23
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:38:38 2024 -0700

    Pluralize

commit f5705a1dde
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:34:55 2024 -0700

    More unification

commit f325c4afdb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:32:38 2024 -0700

    Unify assertion method

commit 1fddacd7d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:25:11 2024 -0700

    Re-order test methods

commit 4af893df61
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:20:24 2024 -0700

    Improve assertions

commit b8b3f91ce4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:55:18 2024 -0700

    Formatting

commit 7f40f55343
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:52:02 2024 -0700

    Add tests for delete supplier endpoint

commit b06e8d442d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:37:08 2024 -0700

    Add tests for delete status label endpoint

commit c269184c60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:29:41 2024 -0700

    Add tests for delete predefined kit endpoint

commit 53c673dee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:13:12 2024 -0700

    Add tests for delete manufacturer endpoint

commit 50730fc4fb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:37:18 2024 -0700

    Add tests for delete location endpoint

commit 60a54cee79
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:33:30 2024 -0700

    Add tests for delete license endpoint

commit 446e962a50
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:38:51 2024 -0700

    Add tests for delete group endpoint

commit 79a4bb7316
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:35:44 2024 -0700

    Add tests for delete depreciation endpoint

commit 2f76c1bc5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:33:21 2024 -0700

    Add assertion

commit 38b9f4a438
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:29:20 2024 -0700

    Add tests for delete departments endpoint

commit fe5fc6e0ce
Merge: 62747a009 15183c482
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:56:31 2024 +0100

    Merge pull request #15471 from Godmartinz/Edit_side-panel

    Fixes margin for the sidebar menus while using rtl languages

commit 62747a0090
Merge: b465cc98d c6c5cb73c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:02:55 2024 +0100

    Merge pull request #15493 from Godmartinz/fix_consumables_media_sizing

    Fixed misalignment of consumables with smaller media

commit 9ff2111055
Merge: 1328366a4 b465cc98d
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:52:48 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b465cc98d8
Merge: 8774da392 4debaaea3
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:45:06 2024 +0100

    Merge pull request #15510 from snipe/bulk_users_locale_fix

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

commit 4debaaea39
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:31:10 2024 +0100

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 1328366a48
Merge: 7e14f8c6d 8774da392
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 12:38:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4facc4007e
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:48 2024 +0200

    feat: Explicitly request LDAP attributes during sync

commit 31da47e046
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:28 2024 +0200

    refactor: Put LDAP attribute mapping in array

commit 3105f53aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:54:29 2024 -0700

    Add tests for delete custom fieldsets endpoint

commit 2047cfed09
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:20:32 2024 -0700

    Add tests for delete custom fields endpoint

commit e3268d32df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:00:02 2024 -0700

    Add tests for delete consumable endpoint

commit 6df8b0ac0e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:52:07 2024 -0700

    Add tests for delete component endpoint

commit 910f13c1f7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:38:30 2024 -0700

    Add tests for delete companies endpoint

commit 8ce2512f55
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:54:44 2024 -0700

    Add tests for delete category endpoint

commit 0ec415d4d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:46:22 2024 -0700

    Clean up

commit 2044570e95
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:39:36 2024 -0700

    Add tests for delete asset model endpoint

commit b336c6273d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:32:42 2024 -0700

    Pluralize test classes

commit 5299b3e9f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:44 2024 -0700

    Remove code handled by CompanyableChildTrait

commit 872b76b45f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:10 2024 -0700

    Add tests for delete asset maintenance endpoint

commit 275cf4630e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:16:37 2024 -0700

    Add tests for delete asset endpoint

commit 5c2660bd34
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:02:32 2024 -0700

    Introduce interface

commit c7ae9d9dfa
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 12:58:47 2024 -0700

    Add tests for delete accessory endpoint

commit 0bc98e971f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 12 12:26:19 2024 -0700

    refactoring modals with partials and fixing misalignments

commit 8774da3921
Merge: ab3b65531 a97530367
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 12 16:08:44 2024 +0100

    Merge pull request #15492 from snipe/fixes/edit_to_archived_warning

    Fix - warn user on changing status to undeployable when editing

commit c6c5cb73cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 11 10:49:27 2024 -0700

    fixes consumables positioning with smaller media

commit a97530367d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:29:22 2024 +0100

    Fixed tests again

    Signed-off-by: snipe <snipe@snipe.net>

commit 43250ae881
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:04:09 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 04e96b8f20
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:41 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 98323185de
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:33 2024 +0100

    Null and warn if editing asset to a non-deployabe state

    Signed-off-by: snipe <snipe@snipe.net>

commit 9e5f6d656a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 11 15:45:01 2024 +0100

    Improve multi-asset create when using numeric prefixes to asset_tags

commit 7e14f8c6d6
Merge: fddbdafb9 ab3b65531
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab3b655312
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:09 2024 +0100

    Fixed #15483 - show EOL by default

    Signed-off-by: snipe <snipe@snipe.net>

commit 601d8d7e5f
Merge: 4f0f72b29 ca01261c1
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 09:46:58 2024 +0100

    Merge pull request #15486 from marcusmoore/fixes/custom-field-values

    Fixed a couple bugs in CustomFieldSetDefaultValuesForModel component

commit ca01261c1f
Merge: 6423df213 4f0f72b29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 10 16:05:39 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

commit 15183c4822
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 10 11:05:03 2024 -0700

    rephrased the ternary <-correctly spelled

commit fddbdafb99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:03:56 2024 +0100

    Fixed conflict

    Signed-off-by: snipe <snipe@snipe.net>

commit a5dbece1a9
Merge: 713bb104e 4f0f72b29
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:00:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 4f0f72b29e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:15:12 2024 +0100

    Fixed version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4183d1834f
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:14:03 2024 +0100

    Pre-release assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 713bb104ec
Merge: 7f2cae4f2 4998d60f3
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:46:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4998d60f39
Merge: f6bf2d03c 7cf30003b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:43:27 2024 +0100

    Merge pull request #15481 from snipe/localizations/2024-09-10

    Updated translations

commit 7cf30003b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:41:08 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit f6bf2d03c4
Merge: 6f44441a8 7c8955b12
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:58 2024 +0100

    Merge pull request #15445 from Godmartinz/eula_confusion

    Fixed priority for category eula vs default eula

commit 6f44441a8b
Merge: e7e5dfbdf 76c9015aa
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:23 2024 +0100

    Merge pull request #15469 from marcusmoore/accessory_tests

    Added UI tests for creating accessories

commit e7e5dfbdfa
Merge: d62315fbe 5d5f42129
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:08 2024 +0100

    Merge pull request #15470 from marcusmoore/company_tests

    Added UI tests for creating companies

commit d62315fbe4
Merge: 7f3f77dec 22a2cc025
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:55 2024 +0100

    Merge pull request #15472 from marcusmoore/testing/dashboard_counts

    Added test for dashboard counts

commit 7f3f77dec8
Merge: 82e56c683 0820dd9da
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:46 2024 +0100

    Merge pull request #15473 from marcusmoore/testing/accessory_api_tests

    Added some permission tests for accessory api endpoints

commit 82e56c6832
Merge: 549dec9f9 dc6a5bf99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 09:37:02 2024 +0100

    Merge pull request #15474 from marcusmoore/bug/sc-26730

    Fixed login success message not being displayed

commit 76c9015aa9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:51:40 2024 -0700

    Add test case

commit 5d5f421294
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:49:43 2024 -0700

    Add test case

commit 367f02af86
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:34:04 2024 -0700

    more partials and includes

commit 7a1c721eca
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:22:56 2024 -0700

    making modal partials for reuse

commit 6423df2133
Merge: 51d63d57c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:07:37 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

    # Conflicts:
    #	resources/views/livewire/custom-field-set-default-values-for-model.blade.php

commit dc6a5bf998
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:54:19 2024 -0700

    Reflash session so login message is displayed

commit 0820dd9da4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:36:32 2024 -0700

    Update test names

commit aa6ab2df60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:35:38 2024 -0700

    Add permission tests for some accessory api endpoints

commit 22a2cc0256
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 13:21:10 2024 -0700

    Add test for dashboard counts

commit 57fab0268b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 13:02:25 2024 -0700

    made it a terenary

commit ad5768d8b2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 12:45:11 2024 -0700

    fixes margin for the sidebar using rtl languages

commit 35533c39d5
Merge: d4426e468 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:18:02 2024 -0700

    Merge branch 'develop' into company_tests

commit de403f6e07
Merge: 010f66f4c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:17:53 2024 -0700

    Merge branch 'develop' into accessory_tests

commit 549dec9f9e
Merge: b2a634924 0e9f7153c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 20:13:01 2024 +0100

    Merge pull request #15468 from marcusmoore/coverage

    Added coverage commands for Herd users

commit d4426e4686
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 11:03:00 2024 -0700

    Add simple tests for company creation via UI

commit b2a6349243
Merge: ce97e2a30 c5dbc5f6b
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:06:42 2024 +0100

    Merge pull request #15465 from snipe/update_city_on_bulk_user_edit

    Correctly save user’s city on bulk edit

commit c5dbc5f6b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:01:07 2024 +0100

    Correctly save user’s city on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f2cae4f26
Merge: e34f549e4 ce97e2a30
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:56:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ce97e2a30f
Merge: e1fcfc8dc 7d9a0eba0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:54:28 2024 +0100

    Merge pull request #15463 from snipe/consumables_order_by_remaining

    Added ability to sort on qty and remaining for consumables

commit 7d9a0eba04
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:49:58 2024 +0100

    Added ability to sort on qty and remaining for consumables

    Signed-off-by: snipe <snipe@snipe.net>

commit 010f66f4c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:48:11 2024 -0700

    Add validation test

commit 9c6718b459
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:46:35 2024 -0700

    Organize

commit 9f832a93c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:44:52 2024 -0700

    Ensure user is stored

commit 487d88c012
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:43:01 2024 -0700

    Add some ui tests for accessories

commit 0e9f7153c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:13:45 2024 -0700

    Add composer commands for generating coverage reports via Herd

commit 7c8955b126
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:38:35 2024 -0700

    revert changes to label view

commit 20fa4c39f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:26:44 2024 -0700

    adds setEula to support\settings

commit f04a4a3cf5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:21:49 2024 -0700

    adds test

commit cf07186ae8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 3 12:23:23 2024 -0700

    gives priority to default eula being checked vs catregory eula

commit 51d63d57c6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 3 12:22:43 2024 -0700

    Hide the "Add default values" checkbox if no fieldset selected

commit e34f549e4c
Merge: a8813cca9 e1fcfc8dc
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:16:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e1fcfc8dc1
Merge: 13dbf9ee7 9fe8a866e
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:14:49 2024 +0100

    Merge pull request #15440 from snipe/fixes/user_api_put_patch

    Fixes  #15435 - user api put patch API route regression

commit 9fe8a866e0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:07:21 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit e8e3060a75
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:51:22 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 6aaf2f623f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:49:55 2024 +0100

    Removed extra route

    Signed-off-by: snipe <snipe@snipe.net>

commit dfbccf50e8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:48:09 2024 +0100

    Added patch/put back into resource routes

    Signed-off-by: snipe <snipe@snipe.net>

commit a8813cca94
Merge: 9fef27a44 13dbf9ee7
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 13dbf9ee74
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:42 2024 +0100

    Added icon for dept

    Signed-off-by: snipe <snipe@snipe.net>

commit f8bbb7ad9b
Merge: 12fa50597 3c7d455ee
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:47:25 2024 +0100

    Merge pull request #15431 from snipe/add_employee_num_to_asset_overview

    Added employee number to asset view

commit 3c7d455ee3
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:38:38 2024 +0100

    Added employee number to asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 9fef27a448
Merge: d2b88a510 12fa50597
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 12fa505972
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:30 2024 +0100

    Disabmiguate licenses company_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d2b88a5107
Merge: 4e35f389d 4e4930ba6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:02:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4e4930ba62
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:01:48 2024 +0100

    Check for array

    Signed-off-by: snipe <snipe@snipe.net>

commit 4e35f389df
Merge: e5b9d9a28 76301bc30
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:07:03 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 76301bc30d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:05:03 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 964e105cf9
Merge: 6fd24c7e1 abb422153
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 19:20:03 2024 +0100

    Merge pull request #15415 from snipe/rules/prevent_company_switch

    Validation rules to prevent switching user companies if items are assigned to them

commit 6fd24c7e14
Merge: e4ebabdab 231bc1e2d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:55:11 2024 +0100

    Merge pull request #15418 from snipe/added_multiple_for_custom_report

    Fixed #15416 - Added multiple selects for custom report

commit 231bc1e2de
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:31:34 2024 +0100

    Updated blade selectors

    Signed-off-by: snipe <snipe@snipe.net>

commit 37d04b7176
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:52:01 2024 +0100

    Some CSS tweaks for select2

    Signed-off-by: snipe <snipe@snipe.net>

commit e62a802926
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:44 2024 +0100

    Use whereIn instead of where =

    Signed-off-by: snipe <snipe@snipe.net>

commit 69e981364a
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:20 2024 +0100

    Made multiple select

    Signed-off-by: snipe <snipe@snipe.net>

commit e5b9d9a28b
Merge: 4111ef0d7 e4ebabdab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 15:04:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/build/vendor.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit abb4221539
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:55:18 2024 +0100

    Validation rules to prevent switchng user companies if assets are assigned

    Signed-off-by: snipe <snipe@snipe.net>

commit e4ebabdaba
Merge: b64ed254e da1e38329
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:19:51 2024 +0100

    Merge pull request #15414 from uberbrady/fix_create_user

    Use the null-safe property accessor for new-user creation

commit da1e383295
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 14:09:23 2024 +0100

    Use the null-safe property accessor for new-user creation

commit b64ed254e0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:49:09 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit ba291edc42
Merge: c197644ba ec2ea955d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:18:52 2024 +0100

    Merge pull request #15412 from uberbrady/ImprovePatchPurchasePrice

    Fix [FD-43836] PATCH of purchase_cost for assets for comma as decimal separator

commit ec2ea955d8
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 12:35:14 2024 +0100

    Fix PATCH of purchase_cost for assets for comma as decimal separator

commit c197644ba7
Merge: 29b30cc5d a8cd1027f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:38:15 2024 +0100

    Merge pull request #15284 from spencerrlongg/bug/sc-26584

    [Multi-Company] Fixes Users Being Moved With Items Still Assigned

commit 29b30cc5d3
Merge: a89f17a14 6af27516d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:44 2024 +0100

    Merge pull request #15411 from snipe/snyk/upgrade-webpack

    Upgraded webpack

commit 6af27516dc
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:00 2024 +0100

    Upgraded webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit a89f17a145
Merge: 68c708bde de0565f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:25:56 2024 +0100

    Merge pull request #15410 from snipe/snyk/upgrade-jquery-ui

    Updated jquery UI

commit de0565f5b3
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:24:06 2024 +0100

    Updated jquery UI

    Signed-off-by: snipe <snipe@snipe.net>

commit 4111ef0d78
Merge: cfa56e221 68c708bde
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:20:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 68c708bdef
Merge: 58e366a06 5581950fe
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:18:34 2024 +0100

    Merge pull request #15409 from snipe/fixes-string

    Corrected language string

commit 5581950fee
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:17:17 2024 +0100

    Corrected language string

    Signed-off-by: snipe <snipe@snipe.net>

commit cfa56e2219
Merge: 7f1dfcc93 58e366a06
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 58e366a063
Merge: 26f28a862 b06c52776
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:02 2024 +0100

    Merge pull request #15408 from snipe/redirect-on-print-if-user-invalid

    Check that the user exists before trying to print

commit b06c527767
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:06:30 2024 +0100

    Check that the user exists before trying to print

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f1dfcc935
Merge: 6f3fb21fe 26f28a862
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:29:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 26f28a862a
Merge: e8da7e2df 94c981e22
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:26:03 2024 +0100

    Merge pull request #15404 from snipe/bug/sc-26717-model-delete

    Set image to null if model is deleted

commit 94c981e22c
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:23:49 2024 +0100

    Set image to null if model is deleted

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f3fb21fef
Merge: a48e79a1f e8da7e2df
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:50:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e8da7e2df2
Merge: 7b5b559ba d635c86e0
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:48 2024 +0100

    Merge pull request #15403 from snipe/clean_up_depreciations

    Fixed #15392 - filter by depreciation when showing models

commit d635c86e00
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:30 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 406ff6984b
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:42:23 2024 +0100

    Added click to select on models table

    Signed-off-by: snipe <snipe@snipe.net>

commit c6ddc501c5
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:12 2024 +0100

    Filter by depreciation_id

    Signed-off-by: snipe <snipe@snipe.net>

commit 4839181beb
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:01 2024 +0100

    Added counts to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 63a05c89a7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:52 2024 +0100

    Added counts to show method

    Signed-off-by: snipe <snipe@snipe.net>

commit 385c4f69f7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:43 2024 +0100

    Added counts to depreciation transformer

    Signed-off-by: snipe <snipe@snipe.net>

commit 486cd8c8c9
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:09 2024 +0100

    Nicer formatting for searchableAttributes

    Signed-off-by: snipe <snipe@snipe.net>

commit eb5d93b3c2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:55 2024 +0100

    Added assets relationship

    Signed-off-by: snipe <snipe@snipe.net>

commit a5ff623484
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:43 2024 +0100

    Added asset, license, model count to API

    Signed-off-by: snipe <snipe@snipe.net>

commit b5a4389815
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:31 2024 +0100

    Added badge count, fixed model bulk edit menu

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b5b559baa
Merge: 64c4433b9 67a992974
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:57:29 2024 +0100

    Merge pull request #15401 from snipe/fixes-15397-new-window-for-label

    Opens label new window

commit 67a9929745
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:56:54 2024 +0100

    Opens label new window

    Signed-off-by: snipe <snipe@snipe.net>

commit a48e79a1fc
Merge: c207d4843 64c4433b9
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:37:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 64c4433b98
Merge: d3e8e0663 22bc088f6
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:36:37 2024 +0100

    Merge pull request #15396 from snipe/add_start_end_date_to_users_edit

    Added `start_date` and `end_date` to user bulk edit

commit 22bc088f6f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:21:19 2024 +0100

    Added start_date and end_date to user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit d3e8e06638
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:07:06 2024 +0100

    Add @swift2512 as a contributor

commit c207d48430
Merge: 991e48696 1b933f7ad
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:01:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1b933f7add
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 13:47:17 2024 +0100

    Added s to fa icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 991e48696a
Merge: 797488504 3fe891a05
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:26:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3fe891a05b
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:25:27 2024 +0100

    Removed a few more commas

    Signed-off-by: snipe <snipe@snipe.net>

commit 7974885041
Merge: 4ef85bd52 f4c5b712f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit f4c5b712f4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:07 2024 +0100

    Removed colons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4ef85bd529
Merge: 6eab83a85 4c8dc7818
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:58:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4c8dc7818d
Merge: aa86e07cd 5c43a1f87
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:57:00 2024 +0100

    Merge pull request #15389 from snipe/added_generate_label_to_button_stack

    Fixed #15388 - Moved generate label  button

commit 5c43a1f87c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:54:49 2024 +0100

    Use proper style for buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit d3b265de8e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:48:36 2024 +0100

    Moved button on hardware

    Signed-off-by: snipe <snipe@snipe.net>

commit 263151658f
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:44:09 2024 +0100

    Moved general label  button

    Signed-off-by: snipe <snipe@snipe.net>

commit 6eab83a85a
Merge: cce1f87da aa86e07cd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit aa86e07cd2
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:39 2024 +0100

    Fixed #15385 - small icon tweaks

    Signed-off-by: snipe <snipe@snipe.net>

commit cce1f87da6
Merge: b460e8dc8 d92fa5de6
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:18:30 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d92fa5de65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:17:25 2024 +0100

    fa-fw on settings icon

    Signed-off-by: snipe <snipe@snipe.net>

commit b460e8dc83
Merge: 50cb7e65c c589140ea
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit c589140ea0
Merge: cc2c8f76d 52894615c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:04 2024 +0100

    Merge pull request #15383 from snipe/re-adds-checkout-button

    Fixed #15378 - Corrected gate on checkin button on asset view

commit 52894615ce
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:40:41 2024 +0100

    More specific gate for checkin

    Signed-off-by: snipe <snipe@snipe.net>

commit 8546bbdd65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:38:47 2024 +0100

    Fixed gate for checkout button

    Signed-off-by: snipe <snipe@snipe.net>

commit 50cb7e65c9
Merge: 821dd158d cc2c8f76d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:32:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cc2c8f76d0
Merge: 1ffa69c43 3957d670d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:31:29 2024 +0100

    Merge pull request #15375 from Godmartinz/fix-acceptance-reminder-command

    Fixes the `acceptance-reminder` command

commit 1ffa69c43c
Merge: 78d355f13 f85ebd7ff
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:28:20 2024 +0100

    Merge pull request #15380 from snipe/fixed/fixed_nav_bracket

    Added pull-right to angle bracket

commit f85ebd7ffd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:27:39 2024 +0100

    Added pull-right to angle bracket

    Signed-off-by: snipe <snipe@snipe.net>

commit 78d355f136
Merge: ec0346e4a af0a95be1
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:20:23 2024 +0100

    Merge pull request #15377 from marcusmoore/fixes/custom-field-values-on-validation-error

    Fixed custom field defaults being prematurely updated

commit ec0346e4a8
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:19:08 2024 +0100

    Add @setpill as a contributor

commit fc5eb37776
Merge: 833dace2b 1d7853cbf
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:18:41 2024 +0100

    Merge pull request #15379 from setpill/fix/load-trustproxies-middleware

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 9a73311a99
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 17:04:04 2024 -0700

    Fix nested checkboxes being updated as a group

commit aec781e7df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 16:03:30 2024 -0700

    Be a little more explicit

commit 1d7853cbfe
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Thu Aug 22 19:45:53 2024 +0200

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 7f3c86165b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:58:31 2024 -0700

    Conditionally disable Add default values checkbox

commit 10b45812c4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:38:01 2024 -0700

    Improve id for checkboxes and radio buttons

commit c3165717ed
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:20:04 2024 -0700

    Handle old input

commit d0a351a132
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:59:03 2024 -0700

    Add comment

commit 68749e7e87
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:58:35 2024 -0700

    Simplify logic

commit 0abb5637e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:54:54 2024 -0700

    WIP: handle old input

commit af0a95be12
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit d67975cb62
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 663b2fd844
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit bcace9d019
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit b59bf3e7dc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 3957d670d0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Aug 22 10:04:46 2024 -0700

    fixes send acceptance reminder query

commit 821dd158d1
Merge: 6c9a40268 833dace2b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:50:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 833dace2b4
Merge: ec365b080 56e31d230
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:00:16 2024 +0100

    Merge pull request #15373 from snipe/fixes/#15366_custom_fields

    Fixed #15366 use the non-admin edit encrypted custom fields permissions

commit 56e31d2303
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:58:09 2024 +0100

    Fixed #15366 - use permission for encrypted custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit ec365b0804
Merge: ca8864c06 aef0ac68c
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:49:13 2024 +0100

    Merge pull request #15372 from StarlessNights/update-docker-compose-files

    Fixed #15371: docker-compose files updated.

commit aef0ac68c3
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 16:10:00 2024 +0300

    Need to use the long format for redis too in docker-compose file.

commit f12f9a816f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:47:12 2024 +0300

    Update the official docker-compose file too while at it.

commit a000d6454f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:46:40 2024 +0300

    Fix non-functional development docker-compose file.

commit ca8864c061
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:28:52 2024 +0100

    Fixed small layout quirks in asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 423f4f9126
Merge: 456c7d8d9 5fa0c87ab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:25:41 2024 +0100

    Merge pull request #14667 from Godmartinz/add_location_to_create_user_via_asset

    Adds location select to the create new user via asset checkout

commit 456c7d8d91
Merge: 54cfe3f6e d4d19569e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:56 2024 +0100

    Merge pull request #15065 from Godmartinz/explicit_eol_removal_command

    Adds `snipeit:remove-explicit-eols` command

commit 54cfe3f6e6
Merge: 5e0b18104 bb465dbfa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:10 2024 +0100

    Merge pull request #15156 from uberbrady/re-add-stalebot

    Re-add stalebot-esque github Action

commit 5e0b18104d
Merge: ec0b9b198 8b5d3f7fb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:59:20 2024 +0100

    Merge pull request #15369 from snipe/fixes/checkbox_on_restore

    Fixed checkbox layout on modal from #15296

commit 8b5d3f7fbd
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:56:32 2024 +0100

    Fixed extra closing p tag

    Signed-off-by: snipe <snipe@snipe.net>

commit 744f43676d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:53:16 2024 +0100

    Fixed checkbox layout on modal from #15296

    Signed-off-by: snipe <snipe@snipe.net>

commit ec0b9b198f
Merge: 94300d81d 738ef442f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:43:07 2024 +0100

    Merge pull request #15296 from uberbrady/expose_restore_sanitize

    Expose the 'sanitize' system for backup restores to the web GUI

commit 6c9a402685
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:52 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b310f3a24
Merge: c54bff0f8 94300d81d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 94300d81d6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:19:32 2024 +0100

    Updated dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit bc9ea5a2ec
Merge: 4635a6efc 963911f2e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:18:06 2024 +0100

    Merge pull request #15352 from Godmartinz/mobile_breakpoint

    Fixed Mobile misalignment of info on Assets and Users view pages

commit 4635a6efc3
Merge: 9608414ea d29b3bfb9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:17:49 2024 +0100

    Merge pull request #15360 from snipe/more_print_fixes

    More print fixes for asset view

commit 9608414eae
Merge: 47d8e2f8b 5efddf6f5
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:06:13 2024 +0100

    Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2

    Fixed #15344 - make select2 for countries freeform-ish

commit 5efddf6f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:39 2024 +0100

    Allow clear on country dropdown

    Signed-off-by: snipe <snipe@snipe.net>

commit 305dc049a4
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:28 2024 +0100

    Added asterisk help text

    Signed-off-by: snipe <snipe@snipe.net>

commit 3ac0702094
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 10:13:22 2024 +0100

    Fixed #15344 - make select2 for countries freeform-ish

    Signed-off-by: snipe <snipe@snipe.net>

commit 47d8e2f8b9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 09:42:05 2024 +0100

    Add @Scarzy as a contributor

commit a2246b9645
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit 1d89759706
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 206f8fe605
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit 21d2217619
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit 833bcb282f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 83dd9ce20e
Merge: 6fdce3c53 a8eb76fd8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 23:15:24 2024 +0100

    Merge pull request #15362 from r-xyz/model-files-api

    Added #9413: AssetModel files endpoints to API

commit a8eb76fd8d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:25:41 2024 +0200

    Fixed model files API routes.

commit cd7db5c4a8
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:24:08 2024 +0200

    Fix some typos in models file handler.

commit da7313bc9d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 20:24:22 2024 +0200

    Fix models files API routes.

commit 4ec361c718
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 19:49:51 2024 +0200

    Add AssetModel files endpoints to API

commit 738ef442fd
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 13:16:51 2024 +0100

    Rename .env var to have DB_ prefix for sanitize-by-default setting

commit d29b3bfb9a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:06:16 2024 +0100

    Few more hidden-print classes

    Signed-off-by: snipe <snipe@snipe.net>

commit 6fdce3c536
Merge: 01c4fe611 1ab29ec3a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:50 2024 +0100

    Merge pull request #15358 from r-xyz/rename-docker-startup

    Renamed  docker startup scripts coherently.

commit 912bbf0e32
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:21 2024 +0100

    More print fixes

    Signed-off-by: snipe <snipe@snipe.net>

commit c54bff0f83
Merge: d3f30ced9 01c4fe611
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:24:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 01c4fe6113
Merge: 7e475a078 0fa9f5797
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:12:23 2024 +0100

    Merge pull request #15359 from uberbrady/improve_windows_upgrade

    Fixed #15190 - Improvements to upgrade.php script to improve Windows experience

commit 0fa9f57971
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 11:53:38 2024 +0100

    Improvements to upgrade.php script to improve Windows experience

commit 1ab29ec3a4
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 11:52:09 2024 +0200

    Rename  docker startup scripts coherently.

commit 7e475a0786
Merge: d0acf5b8a 26b3c62ab
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:41:17 2024 +0100

    Merge pull request #15357 from snipe/tighten_category_view_translations

    Fixed #15330 - Cleaned up category title

commit 26b3c62ab8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:29:51 2024 +0100

    Cleaned up category title

    Signed-off-by: snipe <snipe@snipe.net>

commit d3f30ced94
Merge: 973e2e575 d0acf5b8a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:13:57 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d0acf5b8a6
Merge: 09033b19a 74fbc2382
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:12:58 2024 +0100

    Merge pull request #15356 from snipe/validate_location_parent

    Fixed #15341 - validate parent ID

commit 74fbc23823
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:09:35 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a23dee52f2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:58:47 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d03f1e110
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:46:18 2024 +0100

    Fixed #15341 - validate parent ID

    Signed-off-by: snipe <snipe@snipe.net>

commit 963911f2e1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Aug 21 00:23:10 2024 -0700

    changed order of info stgack

commit 59832126cb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:52:51 2024 -0700

    Improve comment

commit 680cce3ee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:42:29 2024 -0700

    Align indents

commit 6c5ec6a16c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:41:24 2024 -0700

    Get datepicker working

commit 5d1f98bf93
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 15:38:43 2024 -0700

    Simplify by directly wire:modeling

commit 9d484077ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:24:37 2024 -0700

    missed a file

commit 9858b0f37f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:23:55 2024 -0700

    fixes info tab for users and assets

commit 973e2e5756
Merge: 46ed07642 09033b19a
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:45:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 09033b19a7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:44:13 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ed076428
Merge: d3a555ce9 5fdeb9c41
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 5fdeb9c413
Merge: 22d373407 6c450d133
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:08 2024 +0100

    Merge pull request #15351 from snipe/localizations/new_translations_2024-08-20

    Updated languages

commit 22d3734075
Merge: d99b306ae eca6b03f4
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:34:38 2024 +0100

    Merge pull request #15350 from marcusmoore/icon-component-updates

    Fixed icon not rotated and simplified component

commit eca6b03f44
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:08:53 2024 -0700

    Allow id to be rendered

commit bbdbec7197
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:00:39 2024 -0700

    Rely on $attributes behavior rendering passed attributes

commit 6c450d1338
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 18:18:17 2024 +0100

    Updated languages

    Signed-off-by: snipe <snipe@snipe.net>

commit a8cd1027f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 20 11:40:15 2024 -0500

    rm commented code

commit d3a555ce91
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:39 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 0f8e041809
Merge: e8a22f3c5 d99b306ae
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/css/dist/bootstrap-table.css
    #	public/js/dist/bootstrap-table.js
    #	public/mix-manifest.json

commit d99b306ae9
Merge: f597d6433 74136761d
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:46:55 2024 +0100

    Merge pull request #15345 from snipe/add_trim_strings_middleware

    Added TrimStrings middleware

commit 74136761df
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:45:13 2024 +0100

    Added TrimStrings middleware

    Signed-off-by: snipe <snipe@snipe.net>

commit f597d64339
Merge: 64bed01a9 0072f1500
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:17:26 2024 +0100

    Merge pull request #15342 from snipe/snyk/bs-tables

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

commit 0072f1500e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:16:27 2024 +0100

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 64bed01a91
Merge: f8c72fb0a f6319e11e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:13:43 2024 +0100

    Merge pull request #15327 from snipe/update_button_style

    Update icons to use blade components, standardize button colors and format

commit f6319e11e7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:11:27 2024 +0100

    Added fa-fw to sidebar elements

    Signed-off-by: snipe <snipe@snipe.net>

commit 5d9f988df3
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:01:49 2024 +0100

    Added fw class to topnav icons

    Signed-off-by: snipe <snipe@snipe.net>

commit f8c72fb0ac
Merge: 886514a25 fa765667f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 09:57:03 2024 +0100

    Merge pull request #15112 from marcusmoore/livewire-importer-improvements

    Improved handling attempted access of deleted files in importer

commit 8e1111c681
Merge: 697595d96 886514a25
Author: akemidx <kojotek.dx@gmail.com>
Date:   Mon Aug 19 19:33:44 2024 -0400

    Merge remote-tracking branch 'upstream/develop' into eol_date_range_for_reports

commit 886514a25f
Merge: cb40a82e7 434bdcd6d
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 22:46:08 2024 +0100

    Merge pull request #15336 from marcusmoore/fixes/remove-displayed-parentheses

    Fixed `)` being added to expected asset checkin report email header

commit fa765667f2
Merge: 94d8a547b cb40a82e7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:41:58 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 434bdcd6d4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:31:47 2024 -0700

    Add missing parentheses to conditional

commit be5f3f38f8
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:48:12 2024 +0100

    Settings pages

    Signed-off-by: snipe <snipe@snipe.net>

commit 08c3a25b39
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:16:57 2024 +0100

    Little more padding

    Signed-off-by: snipe <snipe@snipe.net>

commit 34cd4b6244
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:15:36 2024 +0100

    Added links to apple/google maps

    Signed-off-by: snipe <snipe@snipe.net>

commit d89c8682be
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:46:31 2024 +0100

    Reversed location button ordering

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f024849e9
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:39:24 2024 +0100

    Few more

    Signed-off-by: snipe <snipe@snipe.net>

commit e048f0955f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:27:21 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 479b2b4fd3
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:23:08 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 84f14a05bd
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:19 2024 +0100

    Fixed logging for asset model restore

    Signed-off-by: snipe <snipe@snipe.net>

commit 8d52fa51b1
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:06 2024 +0100

    Fixed suppliers buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit 229d8b9bf5
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:19:59 2024 +0100

    Added location restore

    Signed-off-by: snipe <snipe@snipe.net>

commit eb8d43a804
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 12:32:44 2024 +0100

    Updated buttons on models

    Signed-off-by: snipe <snipe@snipe.net>

commit f82266fade
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:31 2024 +0100

    Cleaned up presenters

    Signed-off-by: snipe <snipe@snipe.net>

commit b4b6f7a35f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:21 2024 +0100

    Added css-consumable to overrides for table headers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0bc995b87f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:05 2024 +0100

    Updated more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 59725f2031
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:57:40 2024 +0100

    Removed extra debugging in test

    Signed-off-by: snipe <snipe@snipe.net>

commit 00bc9ac806
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:39:14 2024 +0100

    Fixed spacing

    Signed-off-by: snipe <snipe@snipe.net>

commit f200960a57
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:26:57 2024 +0100

    Aaaand more

    Signed-off-by: snipe <snipe@snipe.net>

commit c700127f1a
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:09:00 2024 +0100

    Updated user view

    Signed-off-by: snipe <snipe@snipe.net>

commit ae2f9571b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 21:57:37 2024 +0100

    And still more

    Signed-off-by: snipe <snipe@snipe.net>

commit a77dcad336
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:53 2024 +0100

    More links

    Signed-off-by: snipe <snipe@snipe.net>

commit 7ace9324b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:22 2024 +0100

    Added padlock sound

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e889e927
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 19:21:59 2024 +0100

    Still more

    Signed-off-by: snipe <snipe@snipe.net>

commit 803bdb457c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:48:19 2024 +0100

    Added calendar

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c9b1f6e38
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:39:22 2024 +0100

    Added the plus icon

    Signed-off-by: snipe <snipe@snipe.net>

commit d545537a43
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:34:13 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d8904938d
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:24:26 2024 +0100

    Added calendar icon for datepickers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0c09f2b2c0
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:13:49 2024 +0100

    Moar icon replacement

    Signed-off-by: snipe <snipe@snipe.net>

commit bffba02511
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:26:44 2024 +0100

    Updated icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 901f4df7ee
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:03:36 2024 +0100

    Added more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 9337cba340
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:53:58 2024 +0100

    Added download

    Signed-off-by: snipe <snipe@snipe.net>

commit 2b0c67c263
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:51:00 2024 +0100

    Load the icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit da71f031f5
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:48:24 2024 +0100

    Use icon in hardware view

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e585baa7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:45 2024 +0100

    Added icon blade

    Signed-off-by: snipe <snipe@snipe.net>

commit a102c085df
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:37 2024 +0100

    Added icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit e8a22f3c5b
Merge: d843cf8dc cb40a82e7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:55:04 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb40a82e79
Merge: 7e6ff3cbe 4253acad4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:54:23 2024 +0100

    Merge pull request #15324 from snipe/jerk_prevention

    Prevent passing an array as login

commit 4253acad4c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:51:36 2024 +0100

    Prevent passing an array as login

    Signed-off-by: snipe <snipe@snipe.net>

commit d843cf8dcc
Merge: 1013dcae6 7e6ff3cbe
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:52:10 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1013dcae61
Merge: c30c649aa e7ef3bf51
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:38:44 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 70e5e0f9df
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:52:06 2024 -0500

    get rid of dd

commit dec4691c73
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:50:09 2024 -0500

    should be good to go now

commit c30c649aaa
Merge: bb1385369 ad6d09b6a
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:44:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit bb1385369c
Merge: c1caf6088 43b338d61
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:18:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit c1caf6088e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 13:12:13 2024 +0100

    Prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 12dfe71ea8
Merge: ca8926871 ea2b1b074
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 12:48:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ca89268716
Merge: ec5731353 3167ee91d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 11:02:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 94d8a547b8
Merge: 6521c0252 b39a7c6f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:47:49 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 43b109fac0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:20:22 2024 -0700

    Use cached values for textarea and radio input

commit 75c1e7658f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:43:41 2024 -0700

    Improve method name

commit e7c9c799bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:40:23 2024 -0700

    Add wire:keys

commit 6ab976f353
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:32:33 2024 -0700

    Use cached values for text input

commit ec5731353a
Merge: 3283704fe b39a7c6f0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 15:53:52 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3283704fe8
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:25:08 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 540df32046
Merge: 85486fa58 594f50664
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:24:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 85486fa58c
Merge: 3618df2ec 10dc1f136
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:53:54 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3618df2ec5
Merge: a201f22fd 8f7bce7aa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:44:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit a201f22fdb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:36:12 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 6070d530cf
Merge: 6c0cf9447 4d66f7c93
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:35:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c0cf94473
Merge: bf4b91516 381003eea
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:28:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 9622e05cf5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:41:06 2024 -0500

    correct api test

commit afaf53cdfc
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:14:21 2024 -0500

    failing ui test

commit f031309f8f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 16:09:15 2024 -0500

    set up api controller for route/model binding

commit 20ec420ba3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 13:53:29 2024 -0500

    not quite done, api side needs some work

commit ab63a19aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 14 11:01:51 2024 -0700

    Initialize concept of cached values

commit a70b94e707
Merge: 120cfd13c 3e2945709
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 11:36:19 2024 -0500

    Merge branch 'refs/heads/develop' into bug/sc-26584

commit 008bf036b5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 16:09:34 2024 +0100

    Got rid of weird namespace declaration and commented-out data-toggle line

commit cc5ad456e6
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 15:59:21 2024 +0100

    Expose the 'sanitize' system for backup restores to the web GUI

commit bf4b915168
Merge: 0a9c2e354 0f1e5181a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:45:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0a9c2e354f
Merge: 47f1b3b14 e54400718
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:02:43 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 038e86954b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:30:53 2024 -0700

    Improve property name

commit f6c1642bf2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:01:35 2024 -0700

    Use computed fields in CustomFieldSetDefaultValuesForModel component

commit 120cfd13c5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 14:07:40 2024 -0500

    translation

commit 09f2739298
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 13:45:41 2024 -0500

    works, un-reassignable licenses are an issue

commit 47f1b3b14e
Merge: 198b76ebc 3044af941
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 16:48:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 198b76ebc2
Merge: 5546f9676 6e84c29ce
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 15:47:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 5546f9676a
Merge: 46caa478d 9e73eaf95
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 13:51:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ec863df007
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:53 2024 -0500

    rm conditional that might be unnecessary

commit cc3b8e0681
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:21 2024 -0500

    this should more or less work, but i need to determine if this is the best way

commit ff145abbe7
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:13:03 2024 -0500

    use array for eager loading, makes ide prettier

commit 46caa478d2
Merge: 4d8569e75 e6106aa7c
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 20:47:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4d8569e754
Merge: 4dc57f95e c9f8a84d4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 18:01:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4dc57f95e2
Merge: 316ee6f81 9d354ca65
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:38:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 316ee6f810
Merge: 509cc812e 3f2139349
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:30:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 509cc812ea
Merge: d5f66bc0d e7fb29fce
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 15:58:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d5f66bc0dd
Merge: 1e213c31e ce5be8ac2
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 10:10:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1e213c31ef
Merge: 91874dfe0 1777bb4b9
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 11 10:26:16 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 91874dfe0b
Merge: 0e6eda5e8 5c6c655cd
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 19:37:37 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0e6eda5e8a
Merge: 24560b936 60eb60215
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:29:41 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 24560b9362
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:24:49 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 6521c02526
Merge: 8d1cc22c5 9350a2018
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 7 15:20:39 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

    # Conflicts:
    #	resources/views/livewire/importer.blade.php

commit bb465dbfaa
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 15:09:23 2024 +0100

    Cut down run number to 100 from 1000

commit 8cbcc237c0
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 13:27:31 2024 +0100

    Cleanup of Stale workflow for GH - set to debug-mode to start

commit 97e3af8fc9
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Sat Jun 29 00:59:47 2024 +0100

    WIP on new GitHub-backed stalebot settings

commit 914e29210a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jun 26 18:53:01 2024 +0100

    Initial rough stab at re-implementing stalebot

commit 8d1cc22c58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 18 12:00:01 2024 -0700

    Turn on legacy binding since other components still use it

commit 7685de45f2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:12:14 2024 -0700

    Turn off legacy binding

commit 199e68ff29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:10:12 2024 -0700

    Simplify computed propery

commit 81bffccf01
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:28:26 2024 -0700

    Use better error message

commit cfca1514c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:22:44 2024 -0700

    Swap file_id for activeFileId

commit b4ed01243b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:40:41 2024 -0700

    Add more details

commit 3772a21a51
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:37:24 2024 -0700

    Move comment up

commit 04b6cb763f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 10:58:48 2024 -0700

    Add todo

commit dd32341502
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:21:18 2024 -0700

    Display message if attempting to delete non-existent file

commit f58e3114a2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:17:45 2024 -0700

    Simplify destroy method and update list

commit eba494ad8c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:03:42 2024 -0700

    Make $activeFile a computed property

commit 7e89b58746
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 16:08:42 2024 -0700

    Move files to computed property

commit b7744105a0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 14:20:41 2024 -0700

    Migrate import type to component

commit 69263f0e5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 13:30:29 2024 -0700

    Migrate header row to component

commit 017530ba4b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 12:02:50 2024 -0700

    Make updating hook more specific

commit c8dad528a8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 16:15:58 2024 -0700

    Migrate a couple items out of mount

commit 256e989ba1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 15:49:18 2024 -0700

    Add test for importer

commit 9793016603
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:32:16 2024 -0700

    Remove unneeded AuthorizesRequests

commit 9e06f2d17f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:22:10 2024 -0700

    Remove commented code

commit d4d19569ee
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:52:47 2024 -0700

    adds execution timer

commit 43c7504f89
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:03:51 2024 -0700

    adds an all option, adds help context for all, seperates logic

commit 1fa6a763bc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 11:09:57 2024 -0700

    updated description

commit 726308bfd5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:58:45 2024 -0700

    removed typo

commit 22ddb695f2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:57:47 2024 -0700

    better description

commit 09b2feac54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:56:44 2024 -0700

    updates assets with selected model to inherit asset model eol

commit 57e1df86c8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:21:24 2024 -0700

    finds model and collects assets with such model

commit 3ea5d4ee40
Author: Robert-Azelis <82208283+Robert-Azelis@users.noreply.github.com>
Date:   Thu May 2 12:55:17 2024 +0200

    Update BulkAssetsController.php

    Fix for bulk updarte of purchase date to calculate new EOL

commit 5fa0c87ab0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 12:02:11 2024 -0700

    null debugbar

commit 75aa01791a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 11:54:33 2024 -0700

    adds location select to the create new user vice asset checkout

commit 697595d963
Merge: 0bdd8a591 9502525a4
Author: akemidx <116301219+akemidx@users.noreply.github.com>
Date:   Tue Nov 21 16:07:26 2023 -0500

    Merge branch 'develop' into eol_date_range_for_reports

commit 0bdd8a5917
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Aug 2 16:40:38 2023 -0400

    fixing key names

commit e35dd2daa1
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:45:18 2023 -0400

    asset_eol_date stuff

commit f71b69a739
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:31:06 2023 -0400

    adding eol fields

commit 499a3debcd
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Jul 11 14:08:55 2023 -0400

    this WILL break. i'm back to site not found which is something missing. otherwise the columns are either blank or another value like expected checkin i was using to test a bit

Signed-off-by: snipe <snipe@snipe.net>
2024-11-12 15:39:22 +00:00
snipe
9eed6cde43 Merge remote-tracking branch 'origin/develop' 2024-11-11 14:04:56 +00:00
snipe
6bec573956 Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance
Check that the file exists before trying to download stored EULA
2024-11-11 13:54:09 +00:00
snipe
1fc5bb54e1 Check that the file exists before trying to download
Signed-off-by: snipe <snipe@snipe.net>
2024-11-11 13:50:53 +00:00
snipe
5d581752af Merge remote-tracking branch 'origin/develop' 2024-11-10 18:05:52 +00:00
snipe
b6ad69fac2 Merge pull request #15793 from snipe/allow_eol_explicit
Allow user to specify null for calculation or explicit on bulk edit
2024-11-10 18:05:20 +00:00
snipe
47b2cdb846 Allow user to specify null for calculation or explicit on bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2024-11-10 18:04:13 +00:00
snipe
7596717a15 Merge remote-tracking branch 'origin/develop' 2024-11-10 17:49:30 +00:00
snipe
357ef7e375 Merge pull request #15792 from snipe/edit_eol_from_bulk
Added EOL date to bulk asset edit
2024-11-10 17:48:25 +00:00
snipe
6928b1b273 Added eol date to bulk asset edit
Signed-off-by: snipe <snipe@snipe.net>
2024-11-10 17:47:10 +00:00
snipe
c6b9556f60 Merge remote-tracking branch 'origin/develop' 2024-11-08 10:28:26 +00:00
snipe
000f3171e3 Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786
Signed-off-by: snipe <snipe@snipe.net>
2024-11-08 10:28:01 +00:00
Marcus Moore
4bb19152c4 Move test 2024-11-07 17:01:47 -08:00
Marcus Moore
dc0b8c7572 Inline route helpers in tests 2024-11-07 16:54:55 -08:00
Marcus Moore
b8265d54bb Improve comment 2024-11-07 16:42:55 -08:00
Marcus Moore
0e3efdfe87 Add string to name validation 2024-11-07 16:40:54 -08:00
Marcus Moore
363ec841d1 Re-introduce soft deletes 2024-11-07 16:40:37 -08:00
Marcus Moore
f8d0ddb3f7 Improve template name input 2024-11-07 14:17:20 -08:00
Marcus Moore
4aa5961860 Update page titles 2024-11-07 12:13:20 -08:00
Godfrey M
ca4bafc04a adds a dark background to fieldsets, fixes right border 2024-11-07 11:34:12 -08:00
Marcus Moore
7862b74e99 Inline fields when updating 2024-11-07 11:03:03 -08:00
Marcus Moore
c5710b858e Add test validation test for update method and remove name uniqueness constraint 2024-11-07 11:02:10 -08:00
snipe
d489527e6d Merge remote-tracking branch 'origin/develop' 2024-11-07 13:19:52 +00:00
snipe
5ef3183a52 Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes
Improved indexes on manager_id for locations and users, including del…
2024-11-07 11:44:06 +00:00
Brady Wetherington
050831868e Improved indexes on manager_id for locations and users, including deleted_at 2024-11-07 11:39:27 +00:00
Tobias Regnery
2db70379a6 Fix Indentation in UsersController
The indentation in the update-function of the UsersController is partially wrong.
Fix this to avoid confusion.
2024-11-07 09:22:42 +01:00
snipe
aa080945f6 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-11-06 21:26:21 +00:00
snipe
a41529dbc4 Merge pull request #15780 from uberbrady/add_manager_indexes
Add new indexes to locations and users for faster manager lookups
2024-11-06 21:22:45 +00:00
Brady Wetherington
4fcf5ac7da Add new indexes to locations and users for faster manager lookups 2024-11-06 21:19:41 +00:00
Marcus Moore
8873137ed0 Scaffold updating template name 2024-11-06 12:29:31 -08:00
Marcus Moore
37d792352d Update page title dynamically 2024-11-06 12:11:35 -08:00
snipe
aa168fcb5b Updated BS table to 1.23.5
Signed-off-by: snipe <snipe@snipe.net>
2024-11-06 18:41:52 +00:00
snipe
9c1c93ad52 Merge pull request #15774 from marcusmoore/feature/sc-27350
Added Checkout ID column to user accessory table
2024-11-06 18:40:35 +00:00
Marcus Moore
ad99b8b456 Use generic ID translation 2024-11-06 10:37:31 -08:00
snipe
b96a312539 Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345
Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736
2024-11-06 18:29:22 +00:00
Joël Pittet
bab1e58ea4 symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736 2024-11-06 09:46:11 -08:00
snipe
9ce1e78c5c Merge remote-tracking branch 'origin/develop' 2024-11-06 14:16:09 +00:00
snipe
654f67b6ac Updated webpack
Signed-off-by: snipe <snipe@snipe.net>
2024-11-06 14:05:42 +00:00
snipe
3965bcd7c1 Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests
Fixed notifications for licenses and asset to asset checkoutables
2024-11-06 14:02:44 +00:00
NebelKreis
52e4414bc5 Feature: Added asset ID option to 2D barcode in label generation 2024-11-05 13:41:34 +01:00
NebelKreis
f96b7c5056 Feature: Added data type context for select options with "URL:" and "Data:" labels, including translations 2024-11-05 13:40:33 +01:00
akemidx
82c38a8b18 or statement for if/else 2024-11-04 20:43:18 -05:00
akemidx
2f5e468b3c this fixes the assigned to piece 2024-11-04 19:48:34 -05:00
Godfrey M
2362cb5e52 refactor to getNotifiables 2024-11-04 16:32:46 -08:00
Marcus Moore
e7cb4a75eb Show accessory checkout id in user accessory table 2024-11-04 15:56:53 -08:00
Godfrey M
93494ac554 put dataprovider back in for tests 2024-11-04 15:17:58 -08:00
Godfrey M
0d707a1851 fixes notifications for licenses and asset to asset checkouables 2024-11-04 15:13:10 -08:00
Marcus Moore
4daa8e7c63 Indenting 2024-11-04 12:49:44 -08:00
Marcus Moore
41f25341fd Populate select with selected template 2024-11-04 12:32:05 -08:00
snipe
287f4addf0 Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging
Revert "Added the display of logs when tests fail in GitHub Actions"
2024-11-04 20:06:24 +00:00
Marcus Moore
2e96d478f1 Revert "Added the display of logs when tests fail in GitHub Actions" 2024-11-04 11:04:17 -08:00
Tobias Regnery
651d1c735b Another slightly less ugly way for backward compatibility
Instead of using a constructor, add a special check in the boot-method for locations.
This seems to fit better in the system and does hopefully not break the existing tests.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2024-11-04 10:03:38 +01:00
Tobias Regnery
1318dc6111 Add a backward compatibility setting for locations with companies
Now that locations have a company_id they get restricted to the users company with FullMultipleCompanySupport.
This breaks backward compatibility, because before everyone can handle locations without restrictions.
Add a setting right below FullMultipleCompanySupport so that everyone can switch to the desired behaviour.
The default is off and the existing behaviour is preserved.
2024-11-04 10:03:38 +01:00
Tobias Regnery
1ccbf8942c Add ability to tie locations to companies
Locations are the last big part of the application that can't be tied to companies.
This can be a problem with FullMultipleCompanySupport, because you can't restrict the visibility of locations to the company of the users.

In order to change this, add a company_id to the locations table and wire everything up in the views and controllers.
Aditionally add a new formatter to filter the locations to a specific company, like it is done for assets.

Locations are properly scoped to the users company if FullMultipleCompanySupport is enabled.
If a parent location of a location has a different company than the user, the location does not show up.
2024-11-04 10:03:37 +01:00
snipe
f32ebdc7ac Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file
Added missing Livewire file
2024-10-31 22:39:58 +00:00
Marcus Moore
d6c7dc8e1c Add missing livewire file 2024-10-31 15:37:01 -07:00
Godfrey M
de77eda33d another line indent 2024-10-31 14:38:32 -07:00
Godfrey M
ee58fcc898 moved lines in for labels 2024-10-31 14:37:08 -07:00
Godfrey M
ae3cb7b37b adds migration to update new with old if blank and remove old barcod variables 2024-10-31 14:35:13 -07:00
snipe
95dba6c426 Merge remote-tracking branch 'origin/develop' 2024-10-31 21:06:59 +00:00
snipe
5897d37fcf Merge pull request #15763 from Godmartinz/no_to_email_check
Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.
2024-10-31 20:54:01 +00:00
Godfrey M
21a27dcac1 fixed conflicts 2024-10-31 12:55:46 -07:00
Godfrey M
3791380764 remove unused uses 2024-10-31 12:52:47 -07:00
Godfrey M
7a0f79ecd2 remove test route 2024-10-31 12:51:22 -07:00
Godfrey M
97a449e80e removes instanceof User check 2024-10-31 12:50:13 -07:00
Godfrey M
e65942064e send emails even if target has no email 2024-10-31 12:45:29 -07:00
Marcus Moore
5f83cb6a14 Use route model binding 2024-10-31 12:34:06 -07:00
Marcus Moore
ae24b73b32 Fix action_type from "created" to" create" 2024-10-31 12:19:41 -07:00
Marcus Moore
4aedbb52fa Implement activity logging transformer tests 2024-10-31 12:15:05 -07:00
snipe
49de07045a Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs
Fixed MS Team Notifications to utilize workflows after deprecation
2024-10-31 17:53:17 +00:00
snipe
7e996c40f5 Merge pull request #15758 from snipe/jerm/fix-deprecation-warning
Fix ${var} deprecation warning in License model
2024-10-31 02:51:42 +00:00
Jeremy Price
69e74bbdd3 Fix ${var} deprecation warning in License model
When upgrading to php8.3 i started getting deprecation warning about
using ${var} instead of {$var} in 2 places in License.php

PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

This simple fix switches the offending statements to {$var} syntax.
2024-10-30 19:43:54 -07:00
Marcus Moore
20dab4d89d Simplify tests 2024-10-30 16:50:55 -07:00
Marcus Moore
e871481042 Add group 2024-10-30 16:48:42 -07:00
akemidx
f10807661d fixing bulk delete table 2024-10-30 19:26:52 -04:00
Marcus Moore
d727b03d95 Implement activity log test 2024-10-30 14:25:07 -07:00
Marcus Moore
0cc3031864 Implement deleted log 2024-10-30 14:05:27 -07:00
Marcus Moore
59e6874a4a Scaffold test cases 2024-10-30 13:07:51 -07:00
snipe
73e8f160cf Merge pull request #15756 from Godmartinz/cc-email-array
changes `admin_cc_email` validation to allow an array
2024-10-30 19:29:09 +00:00
Marcus Moore
930ef3fd11 Work on tests for activity logging 2024-10-30 12:22:59 -07:00
Godfrey M
bd23772fe9 changes cc_email validation to allow array 2024-10-30 11:42:15 -07:00
Godfrey M
73772a0138 change button text 2024-10-30 11:12:31 -07:00
Godfrey M
b26cae372c merged in develop 2024-10-30 10:40:23 -07:00
Godfrey M
d6ba303f39 Merge branch 'develop' into refacto_ms_teams_notifs
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2024-10-30 10:27:45 -07:00
snipe
931ab103c1 Merge remote-tracking branch 'origin/develop' 2024-10-30 13:21:25 +00:00
snipe
f68df1fa06 Made type searchable in action logs
Signed-off-by: snipe <snipe@snipe.net>
2024-10-30 13:21:13 +00:00
snipe
f0813e03bf Merge pull request #15681 from Godmartinz/seperating_notification_n_mail
Separated Notifications and Emails: Check ins and Check outs
2024-10-30 12:18:41 +00:00
Marcus Moore
35f8a71c71 Test organization 2024-10-29 16:17:12 -07:00
Marcus Moore
86762c5e90 Remove marker test case 2024-10-29 16:12:34 -07:00
Marcus Moore
3c75fc2ced Move test 2024-10-29 16:12:13 -07:00
Marcus Moore
702edf7908 Remove x from select dropdown 2024-10-29 15:34:00 -07:00
Marcus Moore
54b4db86d2 Revert "Add soft deletes"
This reverts commit 0eadab49f1.
2024-10-29 15:33:49 -07:00
Marcus Moore
0eadab49f1 Add soft deletes 2024-10-29 15:26:18 -07:00
Marcus Moore
45e98e0282 Merge branch 'develop' into saving_custom_report_template 2024-10-29 15:20:52 -07:00
Marcus Moore
b97c54a54b Improve handling of old data for text inputs 2024-10-29 11:25:54 -07:00
NebelKreis
e22296fd79 Feature: Added serial number option to 2D barcode in label generation 2024-10-29 13:49:05 +01:00
NebelKreis
6c17d7d732 Fix: Corrected path in translation function
Updated the translation function to use the correct path, ensuring that instead of displaying the translation path as plain text, the appropriate translation is now shown as intended.
2024-10-29 11:45:29 +01:00
snipe
05875ebd1f Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 22:04:35 +00:00
Godfrey M
9a0eee8f03 revert testing variables 2024-10-28 15:03:43 -07:00
Godfrey M
6128765d1f change wording on notification button 2024-10-28 15:03:03 -07:00
Godfrey M
c24f79c025 update method comment 2024-10-28 14:58:43 -07:00
Godfrey M
e7c4343c90 readd checkin accessory format 2024-10-28 14:56:48 -07:00
Marcus Moore
0d58ac61bc Make options required in model 2024-10-28 14:48:19 -07:00
Marcus Moore
7c08fbe144 Update test name 2024-10-28 14:43:05 -07:00
Marcus Moore
7777147af5 Add custom-reporting group 2024-10-28 14:42:44 -07:00
Marcus Moore
2042733dc0 Switch to array syntax 2024-10-28 14:37:52 -07:00
Godfrey M
c0620c27ff adds back laravels channel formats 2024-10-28 14:30:34 -07:00
Marcus Moore
d4cf392387 Organize tests 2024-10-28 14:24:47 -07:00
Marcus Moore
c881727747 Add redirect for missing template 2024-10-28 14:12:19 -07:00
Godfrey M
ed81973fe6 adds notifications for deprecation 2024-10-28 13:57:42 -07:00
Marcus Moore
ee00699cb3 Remove unused strings 2024-10-28 13:07:29 -07:00
Marcus Moore
b45749af16 Update translation strings 2024-10-28 13:06:19 -07:00
Marcus Moore
54dec8d30d Add translations 2024-10-28 12:56:42 -07:00
snipe
2d318b394c Merge pull request #15744 from marcusmoore/chore/action-tests-debugging
Added the display of logs when tests fail in GitHub Actions
2024-10-28 18:41:49 +00:00
Godfrey M
b987b3dc00 adds back the laravel channels package and applies a deprecated check 2024-10-28 10:57:48 -07:00
Marcus Moore
5c49716129 Dump logs on test failure 2024-10-28 10:24:35 -07:00
NebelKreis
6f3fb47e4a Feature: Added asset tag option to barcode in label generation 2024-10-28 15:39:04 +01:00
snipe
755604677c Merge remote-tracking branch 'origin/develop' 2024-10-28 13:38:19 +00:00
snipe
86d784bd59 Fixed #15740 - use non-translated strings for icons
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 13:37:59 +00:00
snipe
65f4f3def2 Merge remote-tracking branch 'origin/develop' 2024-10-28 12:04:20 +00:00
snipe
589f9cccdf Fixed #15732
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 12:04:10 +00:00
snipe
42ec2fa05f Merge remote-tracking branch 'origin/develop' 2024-10-28 11:55:43 +00:00
snipe
4d848e45e6 Fixed #15736
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 11:55:24 +00:00
Godfrey M
58ff641f82 removed unused variables 2024-10-24 22:53:53 -07:00
Godfrey M
ce68f550d8 remove alert emails from cc 2024-10-24 16:01:17 -07:00
Godfrey M
6f0c1b12b1 this adds check out message for consumables 2024-10-24 15:04:54 -07:00
Godfrey M
278bc5e52a ads check in and checkout message for license seats 2024-10-24 14:59:10 -07:00
Godfrey M
cce75a8185 adds check in and checkout messag for accessories 2024-10-24 14:48:23 -07:00
Godfrey M
e27ff13377 adds check in and checkout message for assets 2024-10-24 14:39:40 -07:00
Godfrey M
56365495a1 remove unnecessary fields in accessory checkout mail 2024-10-24 14:26:42 -07:00
Godfrey M
18da80e6de fix checkoutable listener for microsoft teams 2024-10-24 14:24:00 -07:00
akemidx
b29a2a6ae4 removing header color from login button 2024-10-24 17:23:03 -04:00
Godfrey M
18760e3fa1 replaces teams notification package, passes integration test 2024-10-24 12:21:51 -07:00
Godfrey M
57107c487c fixed last test, definetly the last test 2024-10-24 09:40:10 -07:00
snipe
dfc63641dc Merge pull request #15550 from uberbrady/fix_multi_create_partial_failure
Fix multi create partial failure (fixes: [RB-18591])
2024-10-24 11:40:50 +01:00
snipe
3445b543ea Merge remote-tracking branch 'origin/develop' 2024-10-24 10:04:02 +01:00
snipe
07a51ec8b1 Merge pull request #15712 from Godmartinz/fix_import-progress-bar
Upgraded `livewire v3.5.9 => v3.5.12`
2024-10-24 10:03:10 +01:00
snipe
15ffd69ac0 Merge remote-tracking branch 'origin/develop' 2024-10-24 01:40:10 +01:00
Godfrey M
6329f5b87e removed unused variable from test 2024-10-23 17:33:23 -07:00
snipe
e0ec6795b5 Use crucial for seeded data
Signed-off-by: snipe <snipe@snipe.net>
2024-10-24 01:27:50 +01:00
Godfrey M
15073a0d38 last test to fix 2024-10-23 17:27:37 -07:00
Godfrey M
a80c09c16d Merge branch 'develop' into seperating_notification_n_mail 2024-10-23 17:23:55 -07:00
snipe
5509d756b7 Merge pull request #15722 from Godmartinz/fix_component_factory
Fixed Component Factory: use manufacturer factory for `manufactuer_id`
2024-10-24 01:12:11 +01:00
Marcus Moore
7238238d1f Use created_by instead of user_id 2024-10-23 16:40:03 -07:00
Godfrey M
b16a978f1b uses manufacturer factory for manufactuer_id 2024-10-23 16:25:51 -07:00
Godfrey M
ab3b9c4510 remove unnecessary code from checkinasset notification 2024-10-23 16:24:01 -07:00
Marcus Moore
84f6638f50 Add authorization check 2024-10-23 16:11:10 -07:00
Godfrey M
2cc2b2b1df apply array_filter to cc emails to prevent errors 2024-10-23 16:06:27 -07:00
Godfrey M
62d06b44d6 set fallback from email address to service.snipe-it.io 2024-10-23 15:43:42 -07:00
Marcus Moore
e390a95bd3 Improve back button behavior 2024-10-23 15:42:09 -07:00
Marcus Moore
3616c92148 Reflash template name 2024-10-23 15:40:54 -07:00
Marcus Moore
2fcc7e1188 Make template name required 2024-10-23 15:24:58 -07:00
Marcus Moore
8a06f4ad82 Improve label 2024-10-23 15:21:02 -07:00
Godfrey M
f29a383179 Merge branch 'develop' into seperating_notification_n_mail
# Conflicts:
#	app/Notifications/CheckoutConsumableNotification.php
2024-10-23 15:15:14 -07:00
Godfrey M
fd74c35102 remove old notify by mail from consumable notification 2024-10-23 15:08:29 -07:00
Godfrey M
c681946b1d added component markdown changes 2024-10-23 15:05:39 -07:00
Godfrey M
257d25bd9e removed import notification from test, feature is not present in project 2024-10-23 14:56:54 -07:00
Godfrey M
6c34a5c52c conditionally check cc emails, initiate variables 2024-10-23 14:54:21 -07:00
Godfrey M
1b5f4415ae corrected cc email behavior 2024-10-23 14:44:45 -07:00
Marcus Moore
853e14f369 Fix width 2024-10-23 13:24:06 -07:00
Marcus Moore
c1aa33862d Add error message for eol start and end fields 2024-10-23 13:22:21 -07:00
Marcus Moore
30dc5fa0cf Allow retrieving eol start and end dates 2024-10-23 13:21:44 -07:00
Marcus Moore
94e168fa15 Fix label 2024-10-23 13:17:20 -07:00
snipe
7bbe23995d Merge remote-tracking branch 'origin/develop' 2024-10-23 19:14:36 +01:00
snipe
55ba6279a4 Use trans_choice on alert menu
Signed-off-by: snipe <snipe@snipe.net>
2024-10-23 19:14:17 +01:00
snipe
a9eea830e3 Added manufacturer and model number to component seeders
Signed-off-by: snipe <snipe@snipe.net>
2024-10-23 19:05:34 +01:00
spencerrlongg
c76cccbb68 rm extraneous methods in exception 2024-10-23 12:56:36 -05:00
snipe
574f2e096d Merge remote-tracking branch 'origin/develop' 2024-10-23 17:57:37 +01:00
snipe
af564935d5 Merge pull request #15720 from snipe/15695_adds_manufacturer_and_model_number_to_components
Fixed #15695 - Added manufacturer and model_number to components
2024-10-23 17:56:04 +01:00
snipe
3ee76be7e3 Added manufacturer and model_number to components
Signed-off-by: snipe <snipe@snipe.net>
2024-10-23 17:50:22 +01:00
snipe
e15e33b648 Merge remote-tracking branch 'origin/develop' 2024-10-23 15:14:29 +01:00
snipe
d58f87862c Merge pull request #15719 from snipe/#15717_adds_qty_to_consumable
Fixed #15717 - Added ability to checkout consumables in variable qty via API
2024-10-23 15:09:50 +01:00
snipe
0b6859c491 Added ability to checkout consumables in variable qty
Signed-off-by: snipe <snipe@snipe.net>
2024-10-23 15:05:35 +01:00
spencerrlongg
fdb6970f36 this is pretty much done 2024-10-23 01:41:27 -05:00
spencerrlongg
b0d7eb2168 cancel action finished 2024-10-22 22:44:28 -05:00
spencerrlongg
79e6eafafa cancelled scaffolded out 2024-10-22 22:33:29 -05:00
spencerrlongg
3ee008e871 revert 2024-10-22 20:54:20 -05:00
spencerrlongg
48c812d345 bunch of cleanup, split cancel out 2024-10-22 20:48:27 -05:00
Marcus Moore
4217d7402b Improve tests 2024-10-22 17:50:40 -07:00
Marcus Moore
3d28a9090c Improve test 2024-10-22 17:38:22 -07:00
Marcus Moore
271de1eceb Improve tests 2024-10-22 17:37:23 -07:00
Marcus Moore
b6aae1f8a9 Group routes 2024-10-22 17:30:34 -07:00
Marcus Moore
c313a78c3c Remove outdated @since annotations 2024-10-22 17:04:23 -07:00
Marcus Moore
37d65dac3d Add todo 2024-10-22 17:01:37 -07:00
Marcus Moore
5ebf013d4e Add comment 2024-10-22 16:54:38 -07:00
Marcus Moore
02c22c9efb Add test case 2024-10-22 16:52:59 -07:00
Godfrey M
1e9922a0b0 fix moar tests 2024-10-22 16:14:36 -07:00
Godfrey M
ead27accac fixed accessory tests and notifiable target 2024-10-22 15:45:52 -07:00
spencerrlongg
8a99cc1391 test working 2024-10-22 17:25:58 -05:00
Marcus Moore
d953519db6 Merge branch 'develop' into saving_custom_report_template 2024-10-22 15:11:18 -07:00
Godfrey M
727c0e458c remove translation 2024-10-22 14:34:39 -07:00
Godfrey M
870dc747db oops 2024-10-22 14:27:32 -07:00
Godfrey M
0fb3d83fac revert controller change 2024-10-22 14:26:54 -07:00
Godfrey M
0d59ccd6a6 upgraded livewire v3.5.9 => v3.5.12 2024-10-22 14:23:26 -07:00
Marcus Moore
dd97e4ea82 Update permission tests 2024-10-22 14:22:19 -07:00
snipe
1979ada656 Merge remote-tracking branch 'origin/develop' 2024-10-22 22:10:53 +01:00
snipe
5da3ce3564 Merge pull request #15711 from marcusmoore/fixes/custom-fieldset-checkboxes
Fixed custom field checkboxes on asset edit page
2024-10-22 22:10:20 +01:00
snipe
c536dbc741 Merge remote-tracking branch 'origin/develop' 2024-10-22 22:08:59 +01:00
snipe
c3bbca30ad Merge pull request #15710 from snipe/fixes_lightbox_for_avif
Fixes #15701 - load avif files properly in lightbox
2024-10-22 22:07:50 +01:00
snipe
37f14fff3b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-10-22 22:07:28 +01:00
snipe
eb6c51fabd Fixes #15701 - load avif files properly in lightbox
Signed-off-by: snipe <snipe@snipe.net>
2024-10-22 22:04:57 +01:00
Marcus Moore
5ecd2b6293 Default checkbox elements to an empty array 2024-10-22 14:04:05 -07:00
spencerrlongg
b59bf495e1 stuff 2024-10-22 15:09:35 -05:00
Godfrey M
1e31592c55 messing with the tests 2024-10-22 11:49:06 -07:00
snipe
dccb788a88 Merge pull request #15691 from marcusmoore/fixes/get-id-for-current-user
Updated `Company::getIdForCurrentUser()` to return null in certain scenarios
2024-10-22 17:44:30 +01:00
Marcus Moore
d10fe77ee7 Merge branch 'develop' into fixes/get-id-for-current-user 2024-10-22 09:38:31 -07:00
snipe
7774dd0b7d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-10-22 16:53:47 +01:00
snipe
5e1d792bba Merge pull request #15687 from NebelKreis/fix/dashboard-title-casing
Fixed #15686: Corrected capitalization for dashboard section titles by removing strtolower()
2024-10-22 16:52:28 +01:00
snipe
9cf71976f6 Fixed #15706 - Removed purchase order number from asset import
Signed-off-by: snipe <snipe@snipe.net>
2024-10-22 16:51:42 +01:00
snipe
15745d9737 Merge pull request #15566 from Godmartinz/status-label-error-message
Fixed Status Labels Error Message
2024-10-22 16:39:44 +01:00
snipe
bd97955b9e Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-10-22 16:38:46 +01:00
snipe
252d99421c Merge pull request #15689 from snipe/better_handle_inline_files
Better handle inline files in file listing
2024-10-22 16:26:48 +01:00
snipe
5767a98ad8 Merge pull request #15649 from bryanlopezinc/ImproveImporting
Improve import performance
2024-10-22 16:26:23 +01:00
snipe
0c820cbc0d Merge pull request #15598 from spencerrlongg/bug/custom_field_validation_issue
Custom Field Existence Validation Issue
2024-10-22 15:56:12 +01:00
snipe
db81701621 Merge branch 'develop' into better_handle_inline_files 2024-10-22 15:44:24 +01:00
snipe
a05c33febf Squashed commit of the following:
commit 147fcfb8eb
Merge: 58a3d09b5 fdcc17ca2
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:12:55 2024 +0100

    Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

    Fix user creation with FullMultipleCompanySupport enabled over API

commit 58a3d09b5f
Merge: 30a06a594 867fa2f36
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 14:55:42 2024 +0100

    Merge pull request #15703 from marcusmoore/bug/sc-27188

    Linked accessory files in activity report

commit 30a06a5942
Merge: 6c6af78e0 ce3086317
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:47:06 2024 +0100

    Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

    Removed brianium/paratest

commit 6c6af78e08
Merge: 9b06bbb6c 3f79fd7ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:46:04 2024 +0100

    Merge pull request #15705 from marcusmoore/tests/icon-component-test

    Added test to ensure icon component does not end in newline

commit 3f79fd7ea7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 17:07:40 2024 -0700

    Add test to ensure icon component does not end in newline

commit 9b06bbb6c3
Merge: 46ad1d072 d7f70146f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 22:38:26 2024 +0100

    Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

    Removed second icon in accessory file list

commit ce30863177
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:57:04 2024 -0700

    Remove brianium/paratest dependency

commit d7f70146f4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:48:25 2024 -0700

    Remove extra icon in accessory file upload list

commit 867fa2f36e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:40:24 2024 -0700

    Display file in activity report for accessories

commit 0933a2d4ea
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 18:01:48 2024 -0700

    Remove --parallel flag

commit 46ad1d072f
Merge: bcb4bd9eb 3cf746d7d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 15:29:47 2024 +0100

    Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

    Bulk checkout to bulk actions

commit bcb4bd9eb4
Merge: 250037540 f50ccbcc4
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 10:20:13 2024 +0100

    Merge pull request #15683 from Toreg87/fixes/outdated_comment

    Fix outdated comment in CompanyableTrait

commit f50ccbcc49
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Thu Oct 17 11:07:28 2024 +0200

    Fix outdated comment in CompanyableTrait

    As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

commit 3cf746d7df
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 16 23:13:32 2024 +0100

    Rework the bulk checkout to not change how all checkouts work

commit 6b7af802af
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 10 13:28:23 2024 +0100

    Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

commit fdcc17ca2c
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Wed Oct 16 11:18:24 2024 +0200

    Fix user creation with FullMultipleCompanySupport enabled over API

    It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
    Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

    Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

Signed-off-by: snipe <snipe@snipe.net>
2024-10-22 15:43:19 +01:00
snipe
03b01689b5 Merge remote-tracking branch 'origin/develop' 2024-10-22 15:39:20 +01:00
snipe
147fcfb8eb Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs
Fix user creation with FullMultipleCompanySupport enabled over API
2024-10-22 15:12:55 +01:00
snipe
58a3d09b5f Merge pull request #15703 from marcusmoore/bug/sc-27188
Linked accessory files in activity report
2024-10-22 14:55:42 +01:00
snipe
30a06a5942 Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing
Removed brianium/paratest
2024-10-22 11:47:06 +01:00
snipe
6c6af78e08 Merge pull request #15705 from marcusmoore/tests/icon-component-test
Added test to ensure icon component does not end in newline
2024-10-22 11:46:04 +01:00
Marcus Moore
a20e03fce9 Merge branch 'develop' into saving_custom_report_template 2024-10-21 17:13:15 -07:00
Marcus Moore
3f79fd7ea7 Add test to ensure icon component does not end in newline 2024-10-21 17:07:40 -07:00
spencerrlongg
e40849c910 this stuff works 2024-10-21 17:31:26 -05:00
snipe
9b06bbb6c3 Merge pull request #15704 from marcusmoore/bug/remove-extra-icon
Removed second icon in accessory file list
2024-10-21 22:38:26 +01:00
Marcus Moore
ce30863177 Remove brianium/paratest dependency 2024-10-21 13:57:04 -07:00
Marcus Moore
d7f70146f4 Remove extra icon in accessory file upload list 2024-10-21 13:48:25 -07:00
Marcus Moore
867fa2f36e Display file in activity report for accessories 2024-10-21 12:40:24 -07:00
Marcus Moore
e1882ee6d2 Add comment 2024-10-21 12:21:45 -07:00
Marcus Moore
7eee239378 use is_numeric instead of is_int 2024-10-21 12:20:28 -07:00
Marcus Moore
4188849ae1 Add failing test case 2024-10-21 12:19:48 -07:00
snipe
787e651778 Fixed todos with log message
Signed-off-by: snipe <snipe@snipe.net>
2024-10-21 16:52:21 +01:00
snipe
ef9b6e3b07 Code cleanup
Signed-off-by: snipe <snipe@snipe.net>
2024-10-21 16:34:54 +01:00
snipe
06c599cc17 Added method to show or download file
Signed-off-by: snipe <snipe@snipe.net>
2024-10-21 16:34:03 +01:00
snipe
6105323877 Use plural class name for src
Signed-off-by: snipe <snipe@snipe.net>
2024-10-21 14:11:20 +01:00
Marcus Moore
0933a2d4ea Remove --parallel flag 2024-10-17 18:01:48 -07:00
spencerrlongg
95a32864cf hm, lots to think about 🤔 2024-10-17 18:11:18 -05:00
Marcus Moore
a8d853c44a Remove focus group tags 2024-10-17 15:26:27 -07:00
Marcus Moore
7e1b47708e Fix failing test ensuring company id is an integer 2024-10-17 15:18:41 -07:00
Marcus Moore
979e4502ff Have getIdForCurrentUser method return null if FMCS enabled, user is not super admin, and does not have company 2024-10-17 15:14:39 -07:00
Godfrey M
ff113ef523 typo fix 2024-10-17 14:56:58 -07:00
Marcus Moore
99dd51a965 Improve name 2024-10-17 14:53:18 -07:00
Marcus Moore
15c2169477 Scaffold additional tests 2024-10-17 14:31:05 -07:00
Marcus Moore
50fa6ce335 Scaffold tests 2024-10-17 14:12:22 -07:00
Godfrey M
7ae76e7db9 remove viewdata array from 3 tests 2024-10-17 13:55:03 -07:00
Godfrey M
b98058ca98 fix tests pt 3 2024-10-17 13:48:26 -07:00
Godfrey M
83e8186d9e fix assertSent to AssertNotSent on some test 2024-10-17 13:39:56 -07:00
Godfrey M
cdd4fef7df attempt to fix tests p2 2024-10-17 13:34:55 -07:00
Godfrey M
dceb8e305f attempt to fix tests 2024-10-17 13:11:39 -07:00
Godfrey M
123cdeb858 add email check to listener 2024-10-17 12:39:48 -07:00
Godfrey M
496b44e887 merged composer lock from dev 2024-10-17 12:28:57 -07:00
Godfrey M
a690cc3582 removing my composer stuff again..for the last time 2024-10-17 12:26:55 -07:00
Godfrey M
ceb3f5cea6 added mail-gun and http-client to 8.1 2024-10-17 12:19:50 -07:00
Godfrey M
65735a31f1 removed symfony/mailgun-mailer symfony/http-client 2024-10-17 12:18:34 -07:00
Godfrey M
285d6897cf added a coulple test adjustments and moved mail send logic to listener 2024-10-17 12:05:36 -07:00
Marcus Moore
159a1d3f43 Be more explicit 2024-10-17 11:48:55 -07:00
spencerrlongg
1fd945c2d8 this works 2024-10-17 12:45:49 -05:00
snipe
d1149730be Apply blade component to files views
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 16:31:17 +01:00
snipe
46ad1d072f Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions
Bulk checkout to bulk actions
2024-10-17 15:29:47 +01:00
NebelKreis
780ed91a10 Fix: Removed strtolower() from dashboard titles
This fix ensures the correct capitalization in different languages.
2024-10-17 16:09:25 +02:00
snipe
bcb4bd9eb4 Merge pull request #15683 from Toreg87/fixes/outdated_comment
Fix outdated comment in CompanyableTrait
2024-10-17 10:20:13 +01:00
Tobias Regnery
f50ccbcc49 Fix outdated comment in CompanyableTrait
As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment
2024-10-17 11:07:28 +02:00
spencerrlongg
b2ff34260a hm, lots of thinking to do 2024-10-17 00:02:15 -05:00
Godfrey M
9a79483375 removed namespaces from routing 2024-10-16 16:59:18 -07:00
spencerrlongg
a524c0b418 more work 2024-10-16 18:48:15 -05:00
Godfrey M
ed6034065b removed test route 2024-10-16 16:47:36 -07:00
Godfrey M
a7754c1a7f fixed asset checkout markdown, and notifiable variable 2024-10-16 16:46:52 -07:00
snipe
0e9b3c9119 Check for existence before trying to get the icon
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:27:39 +01:00
snipe
4933aa5784 Add StorageHelper to app config
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:27:04 +01:00
snipe
d67addc69e Removed filetype column - it’s dumb
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:21:43 +01:00
snipe
02c80ff18a Added comment
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:18:40 +01:00
snipe
c01190fac2 Conditionally add content-type
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:18:34 +01:00
snipe
017884f843 Added checks and filetype display
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:09:09 +01:00
snipe
c49921f50f Removed unused (maybe?) API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:08:54 +01:00
snipe
c49abb6aea Refactor the UserFilesController show method for simpler inlining
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:08:38 +01:00
snipe
ccd2019448 Removed unusded use statements
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:08:04 +01:00
snipe
96191a5e93 Added method to decide if the file should be inlinable
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:07:54 +01:00
snipe
c56affd663 Added SVG icon
Signed-off-by: snipe <snipe@snipe.net>
2024-10-17 00:07:37 +01:00
Godfrey M
02bda3cd95 adds Checkout Consumable mailable and slackwebhook channel to notifs 2024-10-16 15:53:05 -07:00
Godfrey M
02ff646da4 adds checkin license mailable 2024-10-16 15:44:45 -07:00
Godfrey M
4becdca8aa removes toMail from license notificaqtion 2024-10-16 15:39:20 -07:00
Godfrey M
2584d60344 adds Licenses seat checkout Mailable 2024-10-16 15:38:49 -07:00
akemidx
f0d3a6e2d3 removing some comments/merging in develop 2024-10-16 18:35:31 -04:00
akemidx
5cb940c2ee Merge branch 'refs/heads/upstream/dev' into feature/sc-26415 2024-10-16 18:32:36 -04:00
Godfrey M
f1d83a3f28 forgot to add asset checkout markdown to projet 2024-10-16 15:30:53 -07:00
Godfrey M
c39df34bdf forgot to add accessory mail to project 2024-10-16 15:29:50 -07:00
Godfrey M
dcdf600b78 adds Checkin and Checkout mailables and listner logic 2024-10-16 15:27:34 -07:00
spencerrlongg
b1d62cc478 initial untested 2024-10-16 17:23:22 -05:00
Brady Wetherington
3cf746d7df Rework the bulk checkout to not change how all checkouts work 2024-10-16 23:13:32 +01:00
Brady Wetherington
6b7af802af Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar 2024-10-16 22:02:45 +01:00
Godfrey M
9710436d54 adds Mailables for asset checkin and out 2024-10-16 13:12:07 -07:00
Godfrey M
16cffe9a9d simplified checkout webhook call 2024-10-16 12:53:35 -07:00
Godfrey M
9e1b86f586 sends checkout notification via webhook 2024-10-16 12:51:19 -07:00
Godfrey M
3ab2521cb0 email comes through, no picture and html markup appear though. 2024-10-16 12:21:33 -07:00
Marcus Moore
604a964462 Improve scenario descriptions 2024-10-16 11:52:24 -07:00
Marcus Moore
2f72c66614 Add additional case 2024-10-16 11:30:06 -07:00
Tobias Regnery
fdcc17ca2c Fix user creation with FullMultipleCompanySupport enabled over API
It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.
2024-10-16 11:47:18 +02:00
Marcus Moore
cba1a56040 Improve readability? 2024-10-15 17:38:11 -07:00
Marcus Moore
d9afde4610 Write failing test 2024-10-15 17:00:22 -07:00
Godfrey M
9f06a0e441 handle some edge cases, null values clean up variable names 2024-10-15 14:01:28 -07:00
Marcus Moore
42095c0167 Add reference link 2024-10-15 13:02:22 -07:00
Godfrey M
f8476f7133 finished the construct and mail call in the listner 2024-10-15 12:49:52 -07:00
Marcus Moore
5306e1cd15 Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	resources/views/partials/forms/edit/location-select.blade.php
#	resources/views/partials/forms/edit/manufacturer-select.blade.php
#	resources/views/partials/forms/edit/model-select.blade.php
#	resources/views/partials/forms/edit/supplier-select.blade.php
#	resources/views/reports/custom.blade.php
2024-10-15 12:32:01 -07:00
Godfrey M
b29d032bf0 adds checkoutAssetMail class, and content method 2024-10-15 11:28:27 -07:00
snipe
688260c8bb Merge remote-tracking branch 'origin/develop' 2024-10-15 18:31:16 +01:00
snipe
2500375400 Merge pull request #15672 from uberbrady/ldap_location_fixes
Clean up how we use the '$location' in LDAP sync command
2024-10-15 17:34:35 +01:00
Brady Wetherington
e4e1d0d50a Clean up how we use the '$location' in LDAP sync command 2024-10-15 17:26:31 +01:00
snipe
b38c2d4660 Merge remote-tracking branch 'origin/develop' 2024-10-15 16:43:23 +01:00
snipe
16c8264e76 Merge pull request #15671 from snipe/bug/sc-27147
Bug/sc 27147
2024-10-15 16:42:34 +01:00
snipe
0ae9ce0aa9 Cannot sort by updated at on Users [sc-27147]
Signed-off-by: snipe <snipe@snipe.net>
2024-10-15 16:41:45 +01:00
snipe
50b8f180b3 More logical grouping in allow_columns
Signed-off-by: snipe <snipe@snipe.net>
2024-10-15 16:41:39 +01:00
snipe
b256bea000 Merge remote-tracking branch 'origin/develop' 2024-10-15 13:10:55 +01:00
snipe
914a647204 Merge pull request #15669 from snipe/remlove_ou_requirenedess
Fixed #15663 - remove requiredness for OU
2024-10-15 12:47:15 +01:00
snipe
e9225ff3ea Switch to regular HTML for input form field
Signed-off-by: snipe <snipe@snipe.net>
2024-10-15 12:43:10 +01:00
snipe
d0d4159088 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-10-15 12:42:09 +01:00
snipe
69b6080bd8 Merge pull request #15666 from snipe/updated_readme_llm
Added LLM note
2024-10-15 10:31:29 +01:00
snipe
b997d728fb Added LLM note
Signed-off-by: snipe <snipe@snipe.net>
2024-10-15 10:30:34 +01:00
snipe
ddead359d0 Merge pull request #15660 from Toreg87/fixes/api_asset_create_fmcs2
Refactor asset creation with API
2024-10-14 14:29:34 +01:00
Tobias Regnery
f3c4e55667 Refactor asset creation with API
Commit fb4fe3004 restored the previous behaviour to check the company_id in case of FullMultipleCompanySupport.
But after rereading the code and the laravel documentation, the check is already there where it belongs in AssetStoreRequest::prepareForValidation()
The bug is the is_int-check of the request input in prepareForValidation(). Is is of type string even if it is a numeric value, so the call to getIdForCurrentUser() never happend.
Fix this by removing the check and the now redundant call to getIdForCurrentUser().
Wrong values will get caught by the model-level validation rules.
2024-10-14 15:14:41 +02:00
snipe
0a1716382e Merge remote-tracking branch 'origin/develop' 2024-10-11 16:07:01 +01:00
snipe
0d35335da7 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-10-11 16:06:17 +01:00
snipe
6554d0c787 Merge remote-tracking branch 'origin/develop' 2024-10-11 14:24:11 +01:00
snipe
feaa714304 Nicer disabled button
Signed-off-by: snipe <snipe@snipe.net>
2024-10-11 14:23:57 +01:00
snipe
e1a70023b1 Merge pull request #15655 from Toreg87/fixes/api_asset_create_fmcs
Fixes #15654 Fix asset creation with API and FullMultipleCompanySupport
2024-10-11 11:45:48 +01:00
snipe
41ffd55430 Merge remote-tracking branch 'origin/develop' 2024-10-11 11:30:09 +01:00
snipe
de62359c67 Merge pull request #15533 from marcusmoore/testing/fmcs-accessories
Added tests for accessory api controller
2024-10-11 11:29:34 +01:00
snipe
1338eaa4fa Merge remote-tracking branch 'origin/develop' 2024-10-11 11:28:06 +01:00
snipe
12bda8fc7b Merge pull request #15653 from snipe/15651_admin_user_on_maintenances
Fixed #15651 - admin user now displaying on maintenances page
2024-10-11 11:27:18 +01:00
Tobias Regnery
fb4fe30049 Fix asset creation with API and FullMultipleCompanySupport
It is currently possible to create an asset with arbitrary company without being superuser and FullMultipleCompanySupport enabled.
This bug goes back to 75ac7f80b9 which is part of version 6.3.0.
Fix this by restoring the previous behaviour to check the company_id with getIdForCurrentUser().
2024-10-11 12:19:20 +02:00
snipe
b054017c9f Fixed #15651 - admin user now displaying on maintenances page
Signed-off-by: snipe <snipe@snipe.net>
2024-10-11 11:16:24 +01:00
bryanlopezinc
524a442724 Improved import performance 2024-10-10 23:32:07 +01:00
snipe
b296afe050 Merge remote-tracking branch 'origin/develop' 2024-10-10 12:32:19 +01:00
snipe
8aa298f6b0 Merge pull request #15644 from snipe/form_requests_for_settings
Form requests for settings
2024-10-10 12:30:53 +01:00
snipe
1f34657734 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2024-10-10 12:30:35 +01:00
snipe
0856ee648e Merge pull request #15648 from snipe/update_packages
Updated livewire to 3.5.2
2024-10-10 12:23:14 +01:00
snipe
1dafc970df Updated livewire to 3.5.2
Signed-off-by: snipe <snipe@snipe.net>
2024-10-10 12:19:57 +01:00
snipe
14b8b3b37c Merge remote-tracking branch 'origin/develop' 2024-10-10 12:09:29 +01:00
snipe
94a074a193 Merge pull request #15601 from snipe/check_db_on_healthcheck
Fixed #15439 - check database on healthcheck
2024-10-10 01:11:10 +01:00
snipe
2d49e1eff2 Merge pull request #15637 from akemidx/bug/sc-26614
FIXED: Badge counter showing deleted assets on User page
2024-10-10 01:09:11 +01:00
snipe
705bc6f0c0 Merge pull request #15642 from uberbrady/fix_bulk_checkout
Fix bulk checkout to users, assets, and locations
2024-10-10 01:08:25 +01:00
snipe
b5b93fdd3a Make ldap username required
Signed-off-by: snipe <snipe@snipe.net>
2024-10-10 00:27:00 +01:00
snipe
d9432baf7a Mlore ldap style improvements
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 23:51:20 +01:00
snipe
90be2a4498 Use newer naming convention for errors
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:26:30 +01:00
snipe
3886da8941 Remove form request from get LDAP method
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:15:49 +01:00
snipe
130e0c6242 More validation
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:15:37 +01:00
snipe
4361a10818 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:15:30 +01:00
snipe
aa8048ac15 Blade changes for ldap
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:15:25 +01:00
snipe
710e738e8e Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 22:15:16 +01:00
snipe
3705b91439 Added more validation
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 20:51:34 +01:00
snipe
707bdad192 Updated test
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 20:33:56 +01:00
snipe
242fe33f97 Switch to regular HTML input
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 20:33:42 +01:00
snipe
ded79469c1 Remove unused controller method
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 20:33:29 +01:00
snipe
d9fbf330e5 Fixed translations
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 20:33:15 +01:00
snipe
2cb9ac26cd Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:57:04 +01:00
snipe
185bc966e6 Cleaned up use statements in tests
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:46:47 +01:00
snipe
a7f7e4938f Added form action
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:31:56 +01:00
snipe
2883e79193 Removed unecessary assets creation
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:30:55 +01:00
snipe
9c4191ae0a Basic tests
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:30:42 +01:00
snipe
3a77b83e9c Added space
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:30:34 +01:00
snipe
d9be2b5a5e Trying to use the email_array translation
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:30:25 +01:00
snipe
69c43c610c Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 19:30:00 +01:00
snipe
4f957bcf71 Required flag
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 18:34:53 +01:00
snipe
5cda7cce48 Only accept a positive number for thresholds
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 18:21:40 +01:00
snipe
41b94e7128 Fixed form input group
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 18:19:26 +01:00
snipe
aa55fa6ff4 Switch to form requests for settings
Signed-off-by: snipe <snipe@snipe.net>
2024-10-09 18:16:34 +01:00
Brady Wetherington
67a605c9a5 Fix bulk checkout to users, assets, and locations 2024-10-09 17:01:26 +01:00
akemidx
c2663ea1e0 withouttrashed 2024-10-08 16:38:33 -04:00
akemidx
299e743848 weird requesting 2024-10-08 15:51:53 -04:00
snipe
3ee5713740 Merge pull request #15631 from snipe/test/importer-tests
Add importer tests
2024-10-07 23:13:15 +01:00
snipe
ab8a22f77e Merge pull request #15630 from marcusmoore/bug/sc-27028
Only show EULA when available on print users page
2024-10-07 22:56:23 +01:00
snipe
56e7ea6677 Merge pull request #15616 from marcusmoore/test/importer-test-updates
Improve importer tests
2024-10-07 22:29:35 +01:00
snipe
26d7572bcc Merge pull request #15603 from marcusmoore/fixes/add-reguard
Added `Model::reguard()` to importer
2024-10-07 22:28:53 +01:00
Marcus Moore
8c9132aff9 Hide EULA text and button when nothing will be displayed 2024-10-07 14:22:49 -07:00
snipe
382ebef8ca Merge pull request #15621 from sniff122/develop
Docker Env: Change trusted proxies to RFC1918
2024-10-07 21:26:21 +01:00
snipe
5de608a6d2 Merge remote-tracking branch 'origin/develop' 2024-10-07 11:14:47 +01:00
snipe
2be88cb955 Merge pull request #15624 from snipe/fixed_line_break_on_print_all_for_users
Removed duplicate JS and removed line break before user section
2024-10-07 11:14:24 +01:00
snipe
3f36d5f9b3 Removed duplicate CSS and removed line break before user section
Signed-off-by: snipe <snipe@snipe.net>
2024-10-07 11:08:02 +01:00
Lewis Foster
f76da48448 Docker Env: Change trusted proxies to RFC1918 2024-10-05 18:27:42 +01:00
Marcus Moore
8035326675 Add test 2024-10-03 16:53:19 -07:00
Marcus Moore
dfdd85abb1 Remove unused imports 2024-10-03 15:14:07 -07:00
Marcus Moore
063ea1892b Add trait to clean up files after test runs 2024-10-03 15:02:03 -07:00
Marcus Moore
e213053775 Swap factory syntax 2024-10-03 13:59:58 -07:00
Marcus Moore
88d549e7c5 Remove unused data provider method 2024-10-03 13:40:37 -07:00
Marcus Moore
983a25aa5f Simplify permission tests 2024-10-03 13:39:54 -07:00
Marcus Moore
bde05d6ed9 Use new() instead of times() 2024-10-03 13:15:49 -07:00
Marcus Moore
b5ffe54bd0 Swap assertEquals parameter order 2024-10-03 13:15:02 -07:00
Marcus Moore
863c0a8b60 Fix import_type for accessory state 2024-10-03 11:43:02 -07:00
Marcus Moore
32551d55d7 Merge pull request #15579 from bryanlopezinc/ImportTests
Add Import data tests
2024-10-03 11:39:21 -07:00
snipe
c56a5edddc Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-10-03 17:41:07 +01:00
snipe
7fc498a597 Merge pull request #15613 from snipe/css_fixes_for_long_values
Smarter word-wrapping on long text
2024-10-03 17:39:18 +01:00
snipe
cb281c6408 Tweaked line height
Signed-off-by: snipe <snipe@snipe.net>
2024-10-03 17:33:46 +01:00
snipe
f483cd448f Smarter work-wrapping on long text
Signed-off-by: snipe <snipe@snipe.net>
2024-10-03 17:27:37 +01:00
snipe
2de3bc92eb Merge remote-tracking branch 'origin/develop' 2024-10-03 16:29:14 +01:00
snipe
78ca1026fd Merge pull request #15612 from snipe/fixes_print_assigned_in_profile
Fixes print assigned in profile
2024-10-03 16:24:32 +01:00
snipe
722d5a58e7 Added isset on users
Signed-off-by: snipe <snipe@snipe.net>
2024-10-03 16:19:38 +01:00
snipe
7461c3e0ca Change controller to assume a collection. (This is dumb, but whatever)
Signed-off-by: snipe <snipe@snipe.net>
2024-10-03 16:19:27 +01:00
snipe
3c0f4181ae Use the newer button style
Signed-off-by: snipe <snipe@snipe.net>
2024-10-03 16:19:06 +01:00
snipe
f5d7b96503 Merge remote-tracking branch 'origin/develop' 2024-10-03 14:38:34 +01:00
snipe
3699d79363 Merge pull request #15610 from uberbrady/fix_numeric_sort_bug
Fix numeric sort 'ambiguous order clause' error
2024-10-03 14:34:00 +01:00
Brady Wetherington
350b627ce1 Fix numeric sort 'ambiguous order clause' error 2024-10-03 14:23:40 +01:00
akemidx
0c84904bf9 un'required'ing the rule. not sure what's breaking here but looking 2024-10-02 18:56:41 -04:00
akemidx
e00a1aec02 note box is now missing when unchecking setting 2024-10-02 18:52:33 -04:00
akemidx
06e3bb7fd1 requested changes 2024-10-02 18:37:11 -04:00
akemidx
492e686b7a Merge remote-tracking branch 'origin/feature/sc-26415' into feature/sc-26415
# Conflicts:
#	app/Http/Controllers/Assets/AssetCheckinController.php
#	app/Http/Controllers/Assets/AssetCheckoutController.php
#	app/Http/Requests/AssetCheckinRequest.php
2024-10-02 18:17:38 -04:00
akemidx
17706f150e requested changes 2024-10-02 18:15:53 -04:00
akemidx
6fef127cd1 missing closing ) 2024-10-02 18:15:53 -04:00
akemidx
f45b836010 backend form validation. +cleanup 2024-10-02 18:15:53 -04:00
akemidx
925aea8531 back to having tests pass. needed to comment out the notes rules() i added 2024-10-02 18:15:53 -04:00
akemidx
bd6698de2a fixing some formatting 2024-10-02 18:15:53 -04:00
akemidx
515f59fed9 more test work 2024-10-02 18:15:52 -04:00
akemidx
5e74b109d9 front end changes/updates from gh 2024-10-02 18:15:52 -04:00
akemidx
8b643cb3b9 note field optional 2024-10-02 18:15:52 -04:00
akemidx
700647c53f setting created 2024-10-02 18:15:52 -04:00
akemidx
081c5706c4 required, but not optional 2024-10-02 18:15:52 -04:00
Marcus Moore
ee046a8688 Add matching Model::reguard() 2024-10-02 10:50:40 -07:00
snipe
b34a7c8aad Removed die()
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 15:48:35 +01:00
snipe
f92bf5dc20 Updated language for failure
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 15:39:27 +01:00
snipe
4d9e85026a Fixed #15439 - check database on healthcheck
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 15:36:01 +01:00
snipe
1695b8250f Bumped version for master
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 12:41:31 +01:00
snipe
f42eeee666 Merge remote-tracking branch 'origin/develop' 2024-10-02 12:40:59 +01:00
snipe
54fbd0540d Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-10-02 12:40:49 +01:00
snipe
b483bb1633 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 12:40:45 +01:00
snipe
4db7358086 Merge pull request #15593 from Godmartinz/Fixed-divide-by-zero-bug
Fixed divide by zero bug in depreciation transformer
2024-10-02 12:38:46 +01:00
snipe
dc0949da78 Merge remote-tracking branch 'origin/develop' 2024-10-02 11:05:06 +01:00
snipe
0dd6f41f66 Simplified 2fa if/else
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 11:04:55 +01:00
snipe
0470a7c946 Merge remote-tracking branch 'origin/develop' 2024-10-02 11:01:05 +01:00
snipe
684c20ae39 Fixed parenthasis
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 11:00:49 +01:00
spencerrlongg
3153bbb13f dumb fix 2024-10-01 17:04:18 -05:00
akemidx
73a059c9ac missing closing ) 2024-10-01 16:37:30 -04:00
Marcus Moore
3dc64cc5e0 Reference accessory checkout and not the accessory 2024-10-01 13:35:39 -07:00
snipe
c32f4e34b4 Minor formatting fix
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 20:35:49 +01:00
snipe
c8981f5031 Merge remote-tracking branch 'origin/develop' 2024-10-01 20:32:41 +01:00
snipe
ca1886cebc Merge pull request #15594 from snipe/localizations/update-2024-10-01
Updated strings
2024-10-01 20:31:38 +01:00
snipe
a79dfea40a Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 20:30:58 +01:00
snipe
45ab49eeab Merge pull request #15592 from spencerrlongg/bug/catch_request_notify_errors
Catch Errors Around Request Notifications
2024-10-01 20:26:42 +01:00
spencerrlongg
8232618a9f change the other one too 2024-10-01 14:26:32 -05:00
spencerrlongg
9a651b567d change error to warning 2024-10-01 14:24:03 -05:00
snipe
97d00e5aa8 Fixed erroneous form tag on anchor
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 20:08:54 +01:00
Marcus Moore
5b90d79494 Use created_by 2024-10-01 11:50:48 -07:00
Godfrey M
b9cfdf2e54 reworked monthly depreciation variable value 2024-10-01 11:41:59 -07:00
spencerrlongg
1139acd9f3 catch errors around request notifications 2024-10-01 13:36:47 -05:00
Godfrey M
b7ad80bd31 fix monthly depreciation value 2024-10-01 11:24:24 -07:00
Godfrey M
5ffd1b8daa fixes if statement in transformer 2024-10-01 11:02:39 -07:00
snipe
9a2117466e Removed placeholder
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 18:23:40 +01:00
snipe
7e3a062984 Use <th> for table header in bulk interstitial
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 18:23:07 +01:00
snipe
9cf4b03f59 Merge remote-tracking branch 'origin/develop' 2024-10-01 14:33:29 +01:00
snipe
d274fb6963 Merge pull request #15589 from snipe/adds_checkin_action_on_asset_delete
Adds checkin action on asset delete via View UI
2024-10-01 14:32:48 +01:00
snipe
27ba641aa5 Added checkin on delete to API
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 14:30:34 +01:00
snipe
5823197e6f Added checkin action on delete for checked out assets
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 14:29:02 +01:00
snipe
cfc04a1d12 Merge pull request #15588 from snipe/added_more_maxlengths
Added maxlengths to additional fields
2024-10-01 14:08:58 +01:00
snipe
cae8aa7840 Added maxlengths to additional fields
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 14:02:54 +01:00
spencerrlongg
4f9f035c69 added a way to manipulate validator attribute names 2024-09-30 20:09:00 -05:00
snipe
5d5e999384 Merge remote-tracking branch 'origin/develop' 2024-10-01 01:44:24 +01:00
snipe
12da43303f Fixed #15584 - regression with required css change
Signed-off-by: snipe <snipe@snipe.net>
2024-10-01 01:44:05 +01:00
Marcus Moore
fdfea390fb Merge branch 'develop' into testing/fmcs-accessories 2024-09-30 12:59:27 -07:00
spencerrlongg
cd3059f790 rm numbers too. :( 2024-09-30 13:38:52 -05:00
snipe
b04afbbc85 Merge pull request #15564 from uberbrady/improve_autoclose
Get us better debugging output for new Github Stale Action
2024-09-30 19:26:08 +01:00
snipe
b964ce1025 Merge pull request #15583 from Godmartinz/remove-sortable-from-depreciations
Removed sortablity for current value column in depreciations report
2024-09-30 19:25:05 +01:00
snipe
6217cba201 Merge pull request #15524 from Godmartinz/double-notif-bug
Fixed double webhook notifications // Separated email and webhook notifications.
2024-09-30 19:24:19 +01:00
Godfrey M
68e3f375fc removes sortablity from current value column 2024-09-30 11:15:49 -07:00
snipe
21af36b105 Merge remote-tracking branch 'origin/develop' 2024-09-30 18:24:19 +01:00
snipe
5689e940b8 Fixed #15581 - missing bracker
Signed-off-by: snipe <snipe@snipe.net>
2024-09-30 18:23:12 +01:00
bryanlopezinc
e807cfab86 Merge branch 'develop' into importTests 2024-09-30 12:47:52 +01:00
bryanlopezinc
0b3f458561 Added tests for Import feature 2024-09-30 12:42:41 +01:00
snipe
d6d5dfb3d2 Merge remote-tracking branch 'origin/develop' 2024-09-29 14:33:50 +01:00
snipe
001348c638 Unset required on checkout select :(
Related to the discussion at #15552

Signed-off-by: snipe <snipe@snipe.net>
2024-09-29 14:33:42 +01:00
snipe
9e3997e0a1 Generated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-09-29 11:25:47 +01:00
snipe
1b041af862 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-09-29 11:25:01 +01:00
snipe
260b153689 Merge pull request #15573 from snipe/fixed_requiredness_indicator
Fixes for requiredness indicator in UI
2024-09-28 16:09:51 +01:00
snipe
05d74f7a92 Covered setup pages too
Signed-off-by: snipe <snipe@snipe.net>
2024-09-28 15:42:03 +01:00
snipe
dc85588d7f Don’t show password as required if editing
Signed-off-by: snipe <snipe@snipe.net>
2024-09-28 15:31:44 +01:00
snipe
585f998cae Fixes for requiredness display
Signed-off-by: snipe <snipe@snipe.net>
2024-09-28 15:28:06 +01:00
snipe
d120585f94 Check for valid eula for license, consumable
Signed-off-by: snipe <snipe@snipe.net>
2024-09-27 14:07:30 +01:00
snipe
166a700342 Merge remote-tracking branch 'origin/develop' 2024-09-27 13:37:28 +01:00
snipe
36b27fcda3 Check for valid category before getting the eula
Signed-off-by: snipe <snipe@snipe.net>
2024-09-27 13:37:14 +01:00
snipe
a44490e448 Nowrap on files column
Signed-off-by: snipe <snipe@snipe.net>
2024-09-27 13:07:24 +01:00
Marcus Moore
e974c96eda Update to created_by 2024-09-26 12:41:16 -07:00
Marcus Moore
2004e58b53 Merge branch 'develop' into updated_ad_hoc_notes 2024-09-26 12:29:28 -07:00
Marcus Moore
eb2d7b1f4f Move comment location 2024-09-26 12:14:00 -07:00
Marcus Moore
47763d1e1a Add tests for adding notes to assets 2024-09-26 12:13:36 -07:00
Godfrey M
44447b85c9 Merge branch 'develop' into barcode_settings_hide 2024-09-26 11:27:05 -07:00
snipe
9aada2ec70 Merge pull request #15498 from Godmartinz/Modal_fix
Refactoring modals with partials and fixing misalignments
2024-09-26 09:09:35 +01:00
Godfrey M
3f74ff25d2 fixed error message 2024-09-25 16:19:09 -07:00
akemidx
b813dcd9d0 requested changes from github 2024-09-25 18:54:30 -04:00
Godfrey M
ef82f954e5 fixed required css, and user input lengths 2024-09-25 15:47:57 -07:00
spencerrlongg
b69596a261 rm dump 2024-09-25 16:21:33 -05:00
spencerrlongg
d02b9933e5 rm comment 2024-09-25 15:38:40 -05:00
spencerrlongg
852a56fa9b should be all good now 2024-09-25 15:30:41 -05:00
Brady Wetherington
3f311ba2fb Get us better debugging output for new Github Stale Action 2024-09-25 21:27:45 +01:00
Godfrey Martinez
96953aa2ed Merge pull request #23 from Godmartinz/Modal_fix_p3
replace duplicate code with partials
2024-09-25 12:50:01 -07:00
Godfrey M
b797c37acb replace duplicate code with partials 2024-09-25 12:48:05 -07:00
snipe
6c85ba3495 Merge remote-tracking branch 'origin/develop' 2024-09-25 20:45:02 +01:00
snipe
ac6411743b Merge pull request #15563 from snipe/refined_gates_on_user_bulk
Update for #15534 - Refined gates on user bulk
2024-09-25 20:35:58 +01:00
snipe
3f0245f88f Make controller gate match dropdown gate
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 20:33:00 +01:00
snipe
c02647a0fa Moved merge into delete gate, since they do technically delete
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 20:32:03 +01:00
snipe
edca3f432c Removed gate for delete
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 20:30:58 +01:00
snipe
2218c94aa3 Gates the dropdown based on user permissions
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 20:29:23 +01:00
Godfrey Martinez
e609b39760 Merge pull request #22 from Godmartinz/Modal_fix_p2
Modal fix p2
2024-09-25 12:09:26 -07:00
Godfrey M
12522a3791 fix spacing issues 2024-09-25 12:07:15 -07:00
spencerrlongg
9df78a9ed0 working! need formatting for error messages etc 2024-09-25 14:00:50 -05:00
snipe
f6d7ea19e4 Set view as base permission, drill down for more intrusive actions
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 19:44:39 +01:00
Godfrey M
18ddffe8f9 fix partial variable intialization, fix width of input fields 2024-09-25 11:42:16 -07:00
snipe
9b03f46490 Merge pull request #15534 from marcusmoore/bulk-print-users
Added the ability to bulk print users
2024-09-25 19:32:01 +01:00
Godfrey M
926a319552 Merge branch 'develop' into Modal_fix_p2 2024-09-25 11:10:24 -07:00
spencerrlongg
f3ad89931f hm ok this kind of works 2024-09-25 13:00:35 -05:00
spencerrlongg
21906d8c27 world set up and idea in place 2024-09-25 12:47:56 -05:00
snipe
9f8473e254 Merge remote-tracking branch 'origin/develop' 2024-09-25 18:36:40 +01:00
snipe
cb6e5042d9 Merge pull request #15547 from snipe/disallow_checkout_with_nondeployable_status
Fixed #13396 - do not allow checkout to undeployable status types
2024-09-25 18:32:59 +01:00
snipe
c1a887b48b Merge pull request #15561 from snipe/fixes/adds_action_date_to_sorting
Changed `action_date` to `created_at` in activity report
2024-09-25 18:32:21 +01:00
snipe
658c94ad8b Changed action_date to created_at
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 17:25:15 +01:00
Maciej Poleszczyk
d1e2f9db34 Fixing #15064 - to not fail ldap sync on single data issue with ldap manager 2024-09-25 17:56:49 +02:00
snipe
0e61d0b195 Merge remote-tracking branch 'origin/develop' 2024-09-25 15:51:38 +01:00
snipe
ba12204842 Merge pull request #15555 from snipe/fixes/user_file_upload
Fixed case on `$logAction` for user file upload
2024-09-25 15:51:14 +01:00
snipe
1c3babacaf Fixed case on logAction for usewr file upload
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 15:46:57 +01:00
snipe
abdddbec44 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-09-25 11:58:25 +01:00
snipe
eeabc8dc9d Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-09-25 11:33:45 +01:00
snipe
21f8ac8e52 Merge pull request #15552 from Godmartinz/ragged-form-inputs
Fixed input field misalignments
2024-09-25 11:31:23 +01:00
snipe
a425c2b765 Merge remote-tracking branch 'origin/develop' 2024-09-25 10:52:19 +01:00
Godfrey M
2a2666be0b makes required a pseudo field 2024-09-24 13:24:50 -07:00
snipe
c38222e956 Merge pull request #15549 from snipe/fixes/#15548_unify_audit_api_endpoints
Fixes #15548 - unify audit api endpoints
2024-09-24 18:10:53 +01:00
snipe
0ce5832b6c Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 17:29:40 +01:00
Brady Wetherington
b6340532d7 Improve the error and success messages and linking 2024-09-24 17:15:39 +01:00
snipe
5fb43dd159 Handle audit *and* audits for urls
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 16:55:56 +01:00
snipe
de57d71bf1 Fixed #15548 - unify audit due/overdue APIs
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 16:30:24 +01:00
snipe
ba69259f2d Fixed #13396 - do not allow checkout to undeployable status types
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 15:35:00 +01:00
Brady Wetherington
c71411465a First pass at better-handling those annoying Rollbars we keep getting 2024-09-24 15:17:35 +01:00
snipe
8cf1e4dceb Merge pull request #15544 from snipe/bug/sc-26855
Fixed app settings view on mobile
2024-09-24 11:10:20 +01:00
snipe
66249a37ed Tweaked styles
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 11:08:31 +01:00
snipe
96712cb398 Fixed app settings view on mobile
Signed-off-by: snipe <snipe@snipe.net>
2024-09-24 10:55:26 +01:00
Marcus Moore
fac4833b58 Remove unused import 2024-09-23 17:15:16 -07:00
Marcus Moore
a12c9d053f Hide label when printing 2024-09-23 16:44:25 -07:00
Marcus Moore
8b3b68b308 Show or hide all eulas at once when printing multiple users 2024-09-23 16:43:14 -07:00
Marcus Moore
4b02db5031 Add authorization check in bulk users controller 2024-09-23 16:26:22 -07:00
Marcus Moore
ab90c0cf05 Add missing eager load in bulk users controller 2024-09-23 16:10:40 -07:00
Marcus Moore
cef7ddc719 Add eager loads to userscontroller 2024-09-23 16:10:21 -07:00
Marcus Moore
3870095a28 Fix Cannot read properties of undefined error by removing snipe-table class from eula table 2024-09-23 15:50:24 -07:00
Marcus Moore
a02e250b22 Add page breaks for each user 2024-09-23 15:26:15 -07:00
Marcus Moore
8ac5c0e471 Re-combine layout and view 2024-09-23 14:05:47 -07:00
Marcus Moore
a2d4dcf6e8 Use bulk actions menu 2024-09-23 12:49:36 -07:00
Marcus Moore
54044bfa5e Add eager loads 2024-09-23 10:57:57 -07:00
Marcus Moore
e493cc964d Remove AssetCountForSidebar middleware from print view 2024-09-23 10:48:07 -07:00
Marcus Moore
29af210f4f Merge branch 'develop' into bulk-print-users 2024-09-23 10:26:20 -07:00
snipe
34eb10ff73 Merge remote-tracking branch 'origin/develop' 2024-09-20 19:45:20 +01:00
snipe
ab0c009c0d Fixed seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 19:45:10 +01:00
snipe
7d7d58769c Merge remote-tracking branch 'origin/develop' 2024-09-20 19:13:00 +01:00
snipe
b68805cf83 Small fix for notifications checkout
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 19:11:52 +01:00
snipe
245d5dc469 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-09-20 17:28:15 +01:00
snipe
7d858129d9 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:44:19 +01:00
snipe
65ce63bc9b Merge pull request #15537 from snipe/snyk/updated_jspdf_autotable
Updated jspdf autotable
2024-09-20 14:42:07 +01:00
snipe
54fba2f547 Update jspdf autotable
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:40:41 +01:00
snipe
5eea9d1950 Corrected text warning translation
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:33:56 +01:00
snipe
b84a634ec7 Corrected comment
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:33:35 +01:00
snipe
2fc88a0e08 Eager load adminuser
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:33:26 +01:00
snipe
bc540b6564 Requestable status not saving with manual [sc-26848]
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 14:02:28 +01:00
snipe
f53b852dff Make created_by equal one in the seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-09-20 13:53:52 +01:00
snipe
b83d1a043f Merge pull request #15519 from snipe/features/add_created_at_created_by
Change `user_id` to `created_by`
2024-09-20 13:47:31 +01:00
snipe
4ab478bb97 Merge remote-tracking branch 'origin/develop' 2024-09-20 13:44:45 +01:00
snipe
b21c303e56 Merge remote-tracking branch 'origin/develop' into features/add_created_at_created_by 2024-09-20 13:43:50 +01:00
Marcus Moore
5128fd49e6 Allow printing all users 2024-09-19 17:27:25 -07:00
Marcus Moore
2d2d5bdc7e Pass user in array 2024-09-19 17:23:47 -07:00
Marcus Moore
8364d26c9b Extract parent layout 2024-09-19 17:18:26 -07:00
Marcus Moore
efd6d7625f Remove bad closing tag 2024-09-19 17:16:05 -07:00
Marcus Moore
bdf5708bfc Remove accidental line 2024-09-19 17:10:43 -07:00
Marcus Moore
e95703cb18 Use eager load 2024-09-19 17:10:07 -07:00
Marcus Moore
7ad4a29970 Add eager loading 2024-09-19 16:54:39 -07:00
snipe
cdb7ccb8f3 Merge pull request #15532 from spencerrlongg/bug/15253
Catch Exceptions on Checkout Notification
2024-09-19 21:54:03 +01:00
snipe
8270947ed2 Merge pull request #13291 from akemidx/eol_date_range_for_reports
Added date range for EOL in custom reports
2024-09-19 21:49:27 +01:00
snipe
4f7c8e0c3d Merge pull request #14671 from Robert-Azelis/patch-6
[FIX] Update EOL date when used bulk update of purchase date
2024-09-19 21:36:09 +01:00
Marcus Moore
d609ed50a4 Merge branch 'develop' into testing/fmcs-accessories 2024-09-19 13:20:55 -07:00
snipe
b88f2054dd Refactor isDeletable on companies
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 20:38:34 +01:00
snipe
d7914e238d Added created by to company on save
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 20:34:54 +01:00
snipe
d7bde37842 Merge pull request #15507 from setpill/setpill/feat/use_explicit_attributes_in_ldap_sync
Added #15506: Explicitly request used LDAP attributes
2024-09-19 20:33:10 +01:00
snipe
454796e52a Merge pull request #15518 from snipe/sort_by_numeric_custom_fields
Fixed #11634 - Sort by numeric columns for numeric custom fields
2024-09-19 20:32:03 +01:00
snipe
eef487d61b Merge pull request #15531 from Godmartinz/status-doesnt-update-in-email
Fixed mail notification field `status label` not updating
2024-09-19 20:31:02 +01:00
Godfrey M
71dbc7abb0 refreshed the assetstatus relationship 2024-09-19 12:23:07 -07:00
Marcus Moore
d639d6fbc1 Add tests for accessory select list endpoint 2024-09-19 12:21:54 -07:00
snipe
74088ea581 Optimize isDeletable counts
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 20:13:38 +01:00
Marcus Moore
fff069824b Add tests for update accessory endpoint 2024-09-19 12:11:03 -07:00
spencerrlongg
d446773fdd catch exceptions on notification 2024-09-19 14:05:48 -05:00
snipe
f283b5fbe8 Eager load adminuser
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 19:56:39 +01:00
Marcus Moore
a5be18bb14 Add test for limit and offset 2024-09-19 11:55:15 -07:00
snipe
eb6f05faf7 Eager load adminuser
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 19:41:46 +01:00
snipe
118183ff58 Removed footer
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 19:41:39 +01:00
Marcus Moore
2137890496 Remove dead code 2024-09-19 11:33:20 -07:00
snipe
ebf6ce6980 Refactor for fewer queries
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 19:27:10 +01:00
Marcus Moore
9b22d6d493 Add tests for accessory checkouts endpoint 2024-09-19 11:24:01 -07:00
snipe
5ebf0ed2b2 Updated variable
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 19:19:14 +01:00
snipe
836893cba5 Added id to report
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 18:35:00 +01:00
snipe
cd98b3817d Removed duplicate line
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 18:26:08 +01:00
snipe
727806372c Added created_by to status label
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 18:22:11 +01:00
snipe
5e1c736d49 Added created_by for manufacturers
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 18:04:50 +01:00
snipe
6579fa72da Added scoping for categories and companies
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:56:05 +01:00
snipe
82d6e1510f Order by created_by for depreciations
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:41:05 +01:00
snipe
822ea96dfd Use auth()->id() instead of Auth::id()
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:31:46 +01:00
snipe
b247fc33b9 Added legacy comment
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:28:01 +01:00
snipe
2dcae780c0 Reapply deleted code
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:26:21 +01:00
snipe
5c3180ffa0 Removed duplicate code
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:25:09 +01:00
snipe
65eba30038 Fixed markdown in acceptance reminder
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:23:34 +01:00
snipe
bbce7b40ca Additional consistencies
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:20:56 +01:00
snipe
02a29c71ef Added created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:01:48 +01:00
snipe
6699995972 Added created_by to components
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:01:36 +01:00
snipe
951f03094a Added created_by to kits
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 17:01:17 +01:00
snipe
354b00ef15 Made method name consistent
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:45:51 +01:00
snipe
c93229179b Added order by created_by to accessories
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:45:39 +01:00
snipe
a77a7065d7 Added order by admin to assets
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:34:10 +01:00
snipe
4363e8b34c Updated importer
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:20:42 +01:00
snipe
9adb2c24f3 Squashed commit of the following:
commit dddbf27d78
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:52 2024 +0100

    Updated language strings

    Signed-off-by: snipe <snipe@snipe.net>

commit fcefcc8184
Merge: 04bb3eec8 3519a82dd
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:44:44 2024 +0100

    Merge pull request #15512 from marcusmoore/testing/fmcs

    Added tests for delete methods in api

commit 04bb3eec83
Merge: 154d5d8d9 f963b9a19
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:41:37 2024 +0100

    Merge pull request #15521 from uberbrady/improve_country_selector

    Fix selected-index of Countries drop-down [fd-44144]

commit f963b9a19f
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 18 13:24:26 2024 +0100

    Fix selected-index of Countries drop-down

commit 154d5d8d91
Merge: 6c996b775 9e5f6d656
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 23:40:25 2024 +0100

    Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

    [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

commit 3519a82ddd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:55:20 2024 -0700

    Fix name: TestsFullMultipleCompaniesSupport

commit a629df07bf
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:49:08 2024 -0700

    Implement interfaces on existing test classes

commit 9a13fcab23
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:38:38 2024 -0700

    Pluralize

commit f5705a1dde
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:34:55 2024 -0700

    More unification

commit f325c4afdb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:32:38 2024 -0700

    Unify assertion method

commit 1fddacd7d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:25:11 2024 -0700

    Re-order test methods

commit 4af893df61
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:20:24 2024 -0700

    Improve assertions

commit b8b3f91ce4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:55:18 2024 -0700

    Formatting

commit 7f40f55343
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:52:02 2024 -0700

    Add tests for delete supplier endpoint

commit b06e8d442d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:37:08 2024 -0700

    Add tests for delete status label endpoint

commit c269184c60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:29:41 2024 -0700

    Add tests for delete predefined kit endpoint

commit 53c673dee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:13:12 2024 -0700

    Add tests for delete manufacturer endpoint

commit 50730fc4fb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:37:18 2024 -0700

    Add tests for delete location endpoint

commit 60a54cee79
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:33:30 2024 -0700

    Add tests for delete license endpoint

commit 446e962a50
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:38:51 2024 -0700

    Add tests for delete group endpoint

commit 79a4bb7316
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:35:44 2024 -0700

    Add tests for delete depreciation endpoint

commit 2f76c1bc5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:33:21 2024 -0700

    Add assertion

commit 38b9f4a438
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:29:20 2024 -0700

    Add tests for delete departments endpoint

commit 3105f53aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:54:29 2024 -0700

    Add tests for delete custom fieldsets endpoint

commit 2047cfed09
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:20:32 2024 -0700

    Add tests for delete custom fields endpoint

commit e3268d32df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:00:02 2024 -0700

    Add tests for delete consumable endpoint

commit 6df8b0ac0e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:52:07 2024 -0700

    Add tests for delete component endpoint

commit 910f13c1f7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:38:30 2024 -0700

    Add tests for delete companies endpoint

commit 8ce2512f55
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:54:44 2024 -0700

    Add tests for delete category endpoint

commit 0ec415d4d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:46:22 2024 -0700

    Clean up

commit 2044570e95
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:39:36 2024 -0700

    Add tests for delete asset model endpoint

commit b336c6273d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:32:42 2024 -0700

    Pluralize test classes

commit 5299b3e9f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:44 2024 -0700

    Remove code handled by CompanyableChildTrait

commit 872b76b45f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:10 2024 -0700

    Add tests for delete asset maintenance endpoint

commit 275cf4630e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:16:37 2024 -0700

    Add tests for delete asset endpoint

commit 5c2660bd34
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:02:32 2024 -0700

    Introduce interface

commit c7ae9d9dfa
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 12:58:47 2024 -0700

    Add tests for delete accessory endpoint

commit 9e5f6d656a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 11 15:45:01 2024 +0100

    Improve multi-asset create when using numeric prefixes to asset_tags

Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:06:36 +01:00
snipe
634a4afa75 Fixed 1001 query on license
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:04:54 +01:00
snipe
7650628d30 Removed free seat count from fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 16:00:59 +01:00
snipe
7f690a6238 Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2024-09-19 15:58:32 +01:00
Godfrey M
b32ab6a06c import User model 2024-09-18 16:36:24 -07:00
Godfrey M
4ff5fc1ff9 clean up variables 2024-09-18 16:19:35 -07:00
Marcus Moore
86f13a9735 Add index test 2024-09-18 16:13:34 -07:00
Godfrey M
c40209f500 seperates emails and webhook notifications 2024-09-18 15:23:44 -07:00
akemidx
3964296ae6 no payload 2024-09-18 17:06:21 -04:00
akemidx
da9a61c28a no payload 2024-09-18 17:01:37 -04:00
Marcus Moore
a071fff954 Implement tests 2024-09-18 12:32:14 -07:00
Marcus Moore
8b50ef077d Implement test 2024-09-18 11:58:33 -07:00
Marcus Moore
607f29030f Stub out test 2024-09-18 11:53:27 -07:00
Marcus Moore
a6bcd3c0c2 Add validation test 2024-09-18 11:47:59 -07:00
Marcus Moore
9b293afaac Remove more dead code 2024-09-18 11:28:29 -07:00
Marcus Moore
636c776620 Remove dead code 2024-09-18 11:27:37 -07:00
Marcus Moore
d5f659024c Add test for logging 2024-09-18 11:27:09 -07:00
Marcus Moore
832e50a71e Implement test 2024-09-18 11:19:41 -07:00
Marcus Moore
fa19686248 Implement test 2024-09-18 11:18:21 -07:00
Marcus Moore
c021609c13 Merge branch 'develop' into testing/fmcs-accessories 2024-09-18 10:42:58 -07:00
snipe
655abe8be5 Fixed requestable user_id
Signed-off-by: snipe <snipe@snipe.net>
2024-09-18 14:32:59 +01:00
snipe
d96c5e1ba4 Merge remote-tracking branch 'origin/develop' 2024-09-18 14:20:55 +01:00
snipe
dddbf27d78 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-09-18 14:18:52 +01:00
snipe
bae9982833 Updated request methods
Signed-off-by: snipe <snipe@snipe.net>
2024-09-18 14:18:14 +01:00
snipe
a807646d39 Merge remote-tracking branch 'origin/develop' 2024-09-18 13:48:09 +01:00
snipe
abe79df6dc Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-09-18 13:47:30 +01:00
snipe
fcefcc8184 Merge pull request #15512 from marcusmoore/testing/fmcs
Added tests for delete methods in api
2024-09-18 13:44:44 +01:00
snipe
04bb3eec83 Merge pull request #15521 from uberbrady/improve_country_selector
Fix selected-index of Countries drop-down [fd-44144]
2024-09-18 13:41:37 +01:00
Brady Wetherington
f963b9a19f Fix selected-index of Countries drop-down 2024-09-18 13:24:26 +01:00
Marcus Moore
6e16f589bd Remove reference to old trait 2024-09-17 17:00:06 -07:00
Marcus Moore
6b70443515 Formatting 2024-09-17 16:58:49 -07:00
Godfrey M
c9854d43a5 fixes selection order 2024-09-17 16:56:02 -07:00
Godfrey M
04708ae2b2 only allows PDF417 for new label engine 2024-09-17 16:54:50 -07:00
Godfrey M
bbb9babf27 one more finger 2024-09-17 16:40:18 -07:00
Godfrey M
e5daf35f65 fat finger fix 2024-09-17 16:39:55 -07:00
Godfrey M
87c72953b2 udpated translation 2024-09-17 16:37:17 -07:00
Marcus Moore
89e2d03a81 Fix the deleted assets radio 2024-09-17 16:24:18 -07:00
Godfrey M
fa5651f335 remove getbarcodes, postbarcodes, barcodes settings blade 2024-09-17 16:21:26 -07:00
akemidx
443447a068 added icon to button 2024-09-17 19:16:44 -04:00
Godfrey M
b33c0fc4dd updates getbarcode method and labels view 2024-09-17 16:15:56 -07:00
Marcus Moore
8e0b718a4a Scope Select All checkbox to fields on left side of page 2024-09-17 16:00:32 -07:00
snipe
154d5d8d91 Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets
[Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags
2024-09-17 23:40:25 +01:00
Marcus Moore
b51c505d9e Fix department, manufacturer, and category multi-selects 2024-09-17 15:29:38 -07:00
Marcus Moore
8bba11e1bb Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	app/Http/Controllers/ReportsController.php
#	resources/views/partials/forms/edit/category-select.blade.php
#	resources/views/partials/forms/edit/company-select.blade.php
#	resources/views/partials/forms/edit/location-select.blade.php
#	resources/views/partials/forms/edit/manufacturer-select.blade.php
#	resources/views/partials/forms/edit/model-select.blade.php
#	resources/views/partials/forms/edit/status-select.blade.php
#	resources/views/reports/custom.blade.php
2024-09-17 15:26:35 -07:00
akemidx
4b54e980e2 added button 2024-09-17 17:56:22 -04:00
snipe
1582d81e5b Change user_id to created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-09-17 22:16:41 +01:00
Godfrey M
033a56fe6d change variables in hardware labels edit post methods 2024-09-17 12:22:05 -07:00
snipe
7c85ad54eb Sort by numeric columns for numeric custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-09-17 19:44:03 +01:00
Godfrey M
3682d9fa6c removed duplicate line from post labels 2024-09-17 11:23:59 -07:00
Godfrey M
ce987b4f6d added front end barcodes to labels 2024-09-17 11:23:38 -07:00
Marcus Moore
7b31df7c14 Begin additional test case 2024-09-17 09:11:58 -07:00
snipe
83b4bf9cf8 Merge remote-tracking branch 'origin/develop' 2024-09-17 15:54:53 +01:00
snipe
6c996b7759 Merge pull request #15516 from snipe/fixes/fmcs_edit_user
Fixed check for outside assets on user update validation
2024-09-17 15:54:11 +01:00
snipe
9e957baeb5 Fixed check for outside assets on user update validation
Signed-off-by: snipe <snipe@snipe.net>
2024-09-17 15:46:45 +01:00
Marcus Moore
12fd9cd97a Update interface name 2024-09-16 17:00:08 -07:00
Marcus Moore
9e03c4ba6f Merge branch 'testing/fmcs' into testing/fmcs-accessories 2024-09-16 16:58:46 -07:00
Marcus Moore
3519a82ddd Fix name: TestsFullMultipleCompaniesSupport 2024-09-16 16:55:20 -07:00
Marcus Moore
8eb1c487bc implement FMCS test for accessory index 2024-09-16 16:52:10 -07:00
Marcus Moore
e835637ef0 Add accessory checkin test 2024-09-16 16:40:10 -07:00
Marcus Moore
eb35608bb5 Remove call handled by form request 2024-09-16 16:35:33 -07:00
Marcus Moore
3f07f682de Migrate existing tests to TestsPermissionsRequirement 2024-09-16 16:35:21 -07:00
akemidx
74efd850af redoing branch. old branch merge onflicts were waaay too gnarly 2024-09-16 19:30:26 -04:00
Marcus Moore
a629df07bf Implement interfaces on existing test classes 2024-09-16 14:49:08 -07:00
Marcus Moore
9a13fcab23 Pluralize 2024-09-16 14:38:38 -07:00
Marcus Moore
f5705a1dde More unification 2024-09-16 14:34:55 -07:00
Marcus Moore
f325c4afdb Unify assertion method 2024-09-16 14:32:38 -07:00
Marcus Moore
1fddacd7d0 Re-order test methods 2024-09-16 14:25:11 -07:00
Marcus Moore
4af893df61 Improve assertions 2024-09-16 14:20:24 -07:00
Marcus Moore
b8b3f91ce4 Formatting 2024-09-16 13:55:18 -07:00
Marcus Moore
7f40f55343 Add tests for delete supplier endpoint 2024-09-16 13:52:02 -07:00
Marcus Moore
b06e8d442d Add tests for delete status label endpoint 2024-09-16 13:37:08 -07:00
Marcus Moore
c269184c60 Add tests for delete predefined kit endpoint 2024-09-16 13:29:41 -07:00
Marcus Moore
53c673dee2 Add tests for delete manufacturer endpoint 2024-09-16 13:13:12 -07:00
Marcus Moore
50730fc4fb Add tests for delete location endpoint 2024-09-16 12:37:18 -07:00
Marcus Moore
60a54cee79 Add tests for delete license endpoint 2024-09-16 12:33:30 -07:00
Marcus Moore
446e962a50 Add tests for delete group endpoint 2024-09-16 10:38:51 -07:00
Marcus Moore
79a4bb7316 Add tests for delete depreciation endpoint 2024-09-16 10:35:44 -07:00
Marcus Moore
2f76c1bc5b Add assertion 2024-09-16 10:33:21 -07:00
Marcus Moore
38b9f4a438 Add tests for delete departments endpoint 2024-09-16 10:29:20 -07:00
snipe
fe5fc6e0ce Merge pull request #15471 from Godmartinz/Edit_side-panel
Fixes margin for the sidebar menus while using rtl languages
2024-09-16 15:56:31 +01:00
snipe
62747a0090 Merge pull request #15493 from Godmartinz/fix_consumables_media_sizing
Fixed misalignment of consumables with smaller media
2024-09-16 15:02:55 +01:00
snipe
9ff2111055 Merge remote-tracking branch 'origin/develop' 2024-09-16 14:52:48 +01:00
snipe
b465cc98d8 Merge pull request #15510 from snipe/bulk_users_locale_fix
Fixed #15504 - allow nulling/not changing locale in user bulk edit
2024-09-16 14:45:06 +01:00
snipe
4debaaea39 Fixed #15504 - allow nulling/not changing locale in user bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2024-09-16 14:31:10 +01:00
snipe
1328366a48 Merge remote-tracking branch 'origin/develop' 2024-09-16 12:38:56 +01:00
setpill
4facc4007e feat: Explicitly request LDAP attributes during sync 2024-09-13 17:05:48 +02:00
setpill
31da47e046 refactor: Put LDAP attribute mapping in array 2024-09-13 17:05:28 +02:00
Marcus Moore
3105f53aff Add tests for delete custom fieldsets endpoint 2024-09-12 16:54:29 -07:00
Marcus Moore
2047cfed09 Add tests for delete custom fields endpoint 2024-09-12 16:20:32 -07:00
Marcus Moore
e3268d32df Add tests for delete consumable endpoint 2024-09-12 16:00:02 -07:00
Marcus Moore
6df8b0ac0e Add tests for delete component endpoint 2024-09-12 15:52:07 -07:00
Marcus Moore
910f13c1f7 Add tests for delete companies endpoint 2024-09-12 15:38:30 -07:00
Marcus Moore
8ce2512f55 Add tests for delete category endpoint 2024-09-12 13:54:44 -07:00
Marcus Moore
0ec415d4d0 Clean up 2024-09-12 13:46:22 -07:00
Marcus Moore
2044570e95 Add tests for delete asset model endpoint 2024-09-12 13:39:36 -07:00
Marcus Moore
b336c6273d Pluralize test classes 2024-09-12 13:32:42 -07:00
Marcus Moore
5299b3e9f0 Remove code handled by CompanyableChildTrait 2024-09-12 13:29:44 -07:00
Marcus Moore
872b76b45f Add tests for delete asset maintenance endpoint 2024-09-12 13:29:10 -07:00
Marcus Moore
275cf4630e Add tests for delete asset endpoint 2024-09-12 13:16:37 -07:00
Marcus Moore
5c2660bd34 Introduce interface 2024-09-12 13:02:32 -07:00
Marcus Moore
c7ae9d9dfa Add tests for delete accessory endpoint 2024-09-12 12:58:47 -07:00
Godfrey M
0bc98e971f refactoring modals with partials and fixing misalignments 2024-09-12 12:26:19 -07:00
snipe
8774da3921 Merge pull request #15492 from snipe/fixes/edit_to_archived_warning
Fix - warn user on changing status to undeployable when editing
2024-09-12 16:08:44 +01:00
Godfrey M
c6c5cb73cf fixes consumables positioning with smaller media 2024-09-11 10:49:27 -07:00
snipe
a97530367d Fixed tests again
Signed-off-by: snipe <snipe@snipe.net>
2024-09-11 17:29:22 +01:00
snipe
43250ae881 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-09-11 17:04:09 +01:00
snipe
04e96b8f20 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-09-11 16:43:41 +01:00
snipe
98323185de Null and warn if editing asset to a non-deployabe state
Signed-off-by: snipe <snipe@snipe.net>
2024-09-11 16:43:33 +01:00
Brady Wetherington
9e5f6d656a Improve multi-asset create when using numeric prefixes to asset_tags 2024-09-11 15:45:01 +01:00
snipe
7e14f8c6d6 Merge remote-tracking branch 'origin/develop' 2024-09-11 12:25:28 +01:00
snipe
ab3b655312 Fixed #15483 - show EOL by default
Signed-off-by: snipe <snipe@snipe.net>
2024-09-11 12:25:09 +01:00
snipe
601d8d7e5f Merge pull request #15486 from marcusmoore/fixes/custom-field-values
Fixed a couple bugs in CustomFieldSetDefaultValuesForModel component
2024-09-11 09:46:58 +01:00
Marcus Moore
ca01261c1f Merge branch 'develop' into fixes/custom-field-values 2024-09-10 16:05:39 -07:00
Godfrey M
15183c4822 rephrased the ternary <-correctly spelled 2024-09-10 11:05:03 -07:00
snipe
fddbdafb99 Fixed conflict
Signed-off-by: snipe <snipe@snipe.net>
2024-09-10 19:03:56 +01:00
snipe
a5dbece1a9 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-09-10 19:00:05 +01:00
snipe
4f0f72b29e Fixed version
Signed-off-by: snipe <snipe@snipe.net>
2024-09-10 18:15:12 +01:00
snipe
4183d1834f Pre-release assets
Signed-off-by: snipe <snipe@snipe.net>
2024-09-10 18:14:03 +01:00
snipe
713bb104ec Merge remote-tracking branch 'origin/develop' 2024-09-10 14:46:15 +01:00
snipe
4998d60f39 Merge pull request #15481 from snipe/localizations/2024-09-10
Updated translations
2024-09-10 14:43:27 +01:00
snipe
7cf30003b6 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-09-10 14:41:08 +01:00
snipe
f6bf2d03c4 Merge pull request #15445 from Godmartinz/eula_confusion
Fixed priority for category eula vs default eula
2024-09-10 11:04:58 +01:00
snipe
6f44441a8b Merge pull request #15469 from marcusmoore/accessory_tests
Added UI tests for creating accessories
2024-09-10 11:04:23 +01:00
snipe
e7e5dfbdfa Merge pull request #15470 from marcusmoore/company_tests
Added UI tests for creating companies
2024-09-10 11:04:08 +01:00
snipe
d62315fbe4 Merge pull request #15472 from marcusmoore/testing/dashboard_counts
Added test for dashboard counts
2024-09-10 11:03:55 +01:00
snipe
7f3f77dec8 Merge pull request #15473 from marcusmoore/testing/accessory_api_tests
Added some permission tests for accessory api endpoints
2024-09-10 11:03:46 +01:00
snipe
82e56c6832 Merge pull request #15474 from marcusmoore/bug/sc-26730
Fixed login success message not being displayed
2024-09-10 09:37:02 +01:00
Marcus Moore
76c9015aa9 Add test case 2024-09-09 16:51:40 -07:00
Marcus Moore
5d5f421294 Add test case 2024-09-09 16:49:43 -07:00
Godfrey M
367f02af86 more partials and includes 2024-09-09 16:34:04 -07:00
Godfrey M
7a1c721eca making modal partials for reuse 2024-09-09 16:22:56 -07:00
Marcus Moore
6423df2133 Merge branch 'develop' into fixes/custom-field-values
# Conflicts:
#	resources/views/livewire/custom-field-set-default-values-for-model.blade.php
2024-09-09 16:07:37 -07:00
Marcus Moore
dc6a5bf998 Reflash session so login message is displayed 2024-09-09 14:54:19 -07:00
Marcus Moore
0820dd9da4 Update test names 2024-09-09 14:36:32 -07:00
Marcus Moore
aa6ab2df60 Add permission tests for some accessory api endpoints 2024-09-09 14:35:38 -07:00
Marcus Moore
22a2cc0256 Add test for dashboard counts 2024-09-09 13:21:10 -07:00
Godfrey M
57fab0268b made it a terenary 2024-09-09 13:02:25 -07:00
Godfrey M
ad5768d8b2 fixes margin for the sidebar using rtl languages 2024-09-09 12:45:11 -07:00
Marcus Moore
35533c39d5 Merge branch 'develop' into company_tests 2024-09-09 12:18:02 -07:00
Marcus Moore
de403f6e07 Merge branch 'develop' into accessory_tests 2024-09-09 12:17:53 -07:00
snipe
549dec9f9e Merge pull request #15468 from marcusmoore/coverage
Added coverage commands for Herd users
2024-09-09 20:13:01 +01:00
Marcus Moore
d4426e4686 Add simple tests for company creation via UI 2024-09-09 11:03:00 -07:00
snipe
b2a6349243 Merge pull request #15465 from snipe/update_city_on_bulk_user_edit
Correctly save user’s city on bulk edit
2024-09-09 10:06:42 +01:00
snipe
c5dbc5f6b8 Correctly save user’s city on bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2024-09-09 10:01:07 +01:00
snipe
7f2cae4f26 Merge remote-tracking branch 'origin/develop' 2024-09-09 03:56:05 +01:00
snipe
ce97e2a30f Merge pull request #15463 from snipe/consumables_order_by_remaining
Added ability to sort on qty and remaining for consumables
2024-09-09 03:54:28 +01:00
snipe
7d9a0eba04 Added ability to sort on qty and remaining for consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-09-09 03:49:58 +01:00
Marcus Moore
010f66f4c9 Add validation test 2024-09-04 15:48:11 -07:00
Marcus Moore
9c6718b459 Organize 2024-09-04 15:46:35 -07:00
Marcus Moore
9f832a93c9 Ensure user is stored 2024-09-04 15:44:52 -07:00
Marcus Moore
487d88c012 Add some ui tests for accessories 2024-09-04 15:43:01 -07:00
akemidx
d262638a63 backend form validation. +cleanup 2024-09-04 18:23:36 -04:00
Marcus Moore
0e9f7153c0 Add composer commands for generating coverage reports via Herd 2024-09-04 15:13:45 -07:00
akemidx
bebb72a04f back to having tests pass. needed to comment out the notes rules() i added 2024-09-04 17:53:19 -04:00
akemidx
77c5035cac fixing some formatting 2024-09-04 17:50:52 -04:00
Godfrey M
7c8955b126 revert changes to label view 2024-09-04 12:38:35 -07:00
Godfrey M
20fa4c39f9 adds setEula to support\settings 2024-09-04 12:26:44 -07:00
Godfrey M
f04a4a3cf5 adds test 2024-09-04 12:21:49 -07:00
Godfrey M
df8b1c0240 hides barcode settings if new label engine enabled 2024-09-03 12:29:52 -07:00
Godfrey M
cf07186ae8 gives priority to default eula being checked vs catregory eula 2024-09-03 12:23:23 -07:00
Marcus Moore
51d63d57c6 Hide the "Add default values" checkbox if no fieldset selected 2024-09-03 12:22:43 -07:00
akemidx
2901ecbf43 more test work 2024-09-03 15:02:27 -04:00
snipe
e34f549e4c Merge remote-tracking branch 'origin/develop' 2024-09-02 19:16:23 +01:00
snipe
e1fcfc8dc1 Merge pull request #15440 from snipe/fixes/user_api_put_patch
Fixes  #15435 - user api put patch API route regression
2024-09-02 19:14:49 +01:00
snipe
9fe8a866e0 Updated test
Signed-off-by: snipe <snipe@snipe.net>
2024-09-02 19:07:21 +01:00
snipe
e8e3060a75 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-09-02 18:51:22 +01:00
snipe
6aaf2f623f Removed extra route
Signed-off-by: snipe <snipe@snipe.net>
2024-09-02 18:49:55 +01:00
snipe
dfbccf50e8 Added patch/put back into resource routes
Signed-off-by: snipe <snipe@snipe.net>
2024-09-02 18:48:09 +01:00
snipe
a8813cca94 Merge remote-tracking branch 'origin/develop' 2024-08-31 13:48:59 +01:00
snipe
13dbf9ee74 Added icon for dept
Signed-off-by: snipe <snipe@snipe.net>
2024-08-31 13:48:42 +01:00
snipe
f8bbb7ad9b Merge pull request #15431 from snipe/add_employee_num_to_asset_overview
Added employee number to asset view
2024-08-31 13:47:25 +01:00
snipe
3c7d455ee3 Added employee number to asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-08-31 13:38:38 +01:00
snipe
5cdb52a249 Corrected flag
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:33:08 +01:00
snipe
ea38d6c2f3 Decode as integers
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:26:38 +01:00
snipe
9fef27a448 Merge remote-tracking branch 'origin/develop' 2024-08-29 21:07:56 +01:00
snipe
12fa505972 Disabmiguate licenses company_id
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:07:30 +01:00
snipe
d2b88a5107 Merge remote-tracking branch 'origin/develop' 2024-08-29 21:02:21 +01:00
snipe
4e4930ba62 Check for array
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:01:48 +01:00
snipe
4e35f389df Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-08-29 20:07:03 +01:00
snipe
76301bc30d Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 20:05:03 +01:00
snipe
964e105cf9 Merge pull request #15415 from snipe/rules/prevent_company_switch
Validation rules to prevent switching user companies if items are assigned to them
2024-08-29 19:20:03 +01:00
snipe
6fd24c7e14 Merge pull request #15418 from snipe/added_multiple_for_custom_report
Fixed #15416 - Added multiple selects for custom report
2024-08-29 18:55:11 +01:00
snipe
231bc1e2de Updated blade selectors
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 18:31:34 +01:00
snipe
37d04b7176 Some CSS tweaks for select2
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 17:52:01 +01:00
snipe
e62a802926 Use whereIn instead of where =
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 17:51:44 +01:00
snipe
69e981364a Made multiple select
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 17:51:20 +01:00
snipe
e5b9d9a28b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-08-29 15:04:32 +01:00
snipe
abb4221539 Validation rules to prevent switchng user companies if assets are assigned
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 14:55:18 +01:00
snipe
e4ebabdaba Merge pull request #15414 from uberbrady/fix_create_user
Use the null-safe property accessor for new-user creation
2024-08-29 14:19:51 +01:00
Brady Wetherington
da1e383295 Use the null-safe property accessor for new-user creation 2024-08-29 14:09:23 +01:00
snipe
b64ed254e0 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 13:49:09 +01:00
snipe
ba291edc42 Merge pull request #15412 from uberbrady/ImprovePatchPurchasePrice
Fix [FD-43836] PATCH of purchase_cost for assets for comma as decimal separator
2024-08-29 13:18:52 +01:00
Brady Wetherington
ec2ea955d8 Fix PATCH of purchase_cost for assets for comma as decimal separator 2024-08-29 12:35:14 +01:00
snipe
c197644ba7 Merge pull request #15284 from spencerrlongg/bug/sc-26584
[Multi-Company] Fixes Users Being Moved With Items Still Assigned
2024-08-29 11:38:15 +01:00
snipe
29b30cc5d3 Merge pull request #15411 from snipe/snyk/upgrade-webpack
Upgraded webpack
2024-08-29 11:29:44 +01:00
snipe
6af27516dc Upgraded webpack
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 11:29:00 +01:00
snipe
a89f17a145 Merge pull request #15410 from snipe/snyk/upgrade-jquery-ui
Updated jquery UI
2024-08-29 11:25:56 +01:00
snipe
de0565f5b3 Updated jquery UI
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 11:24:06 +01:00
snipe
4111ef0d78 Merge remote-tracking branch 'origin/develop' 2024-08-29 11:20:21 +01:00
snipe
68c708bdef Merge pull request #15409 from snipe/fixes-string
Corrected language string
2024-08-29 11:18:34 +01:00
snipe
5581950fee Corrected language string
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 11:17:17 +01:00
snipe
cfa56e2219 Merge remote-tracking branch 'origin/develop' 2024-08-29 11:08:53 +01:00
snipe
58e366a063 Merge pull request #15408 from snipe/redirect-on-print-if-user-invalid
Check that the user exists before trying to print
2024-08-29 11:08:02 +01:00
snipe
b06c527767 Check that the user exists before trying to print
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 11:06:30 +01:00
snipe
7f1dfcc935 Merge remote-tracking branch 'origin/develop' 2024-08-28 14:29:06 +01:00
snipe
26f28a862a Merge pull request #15404 from snipe/bug/sc-26717-model-delete
Set image to null if model is deleted
2024-08-28 14:26:03 +01:00
snipe
94c981e22c Set image to null if model is deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 14:23:49 +01:00
snipe
6f3fb21fef Merge remote-tracking branch 'origin/develop' 2024-08-28 12:50:19 +01:00
snipe
e8da7e2df2 Merge pull request #15403 from snipe/clean_up_depreciations
Fixed #15392 - filter by depreciation when showing models
2024-08-28 12:46:48 +01:00
snipe
d635c86e00 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:46:30 +01:00
snipe
406ff6984b Added click to select on models table
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:42:23 +01:00
snipe
c6ddc501c5 Filter by depreciation_id
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:40:12 +01:00
snipe
4839181beb Added counts to API
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:40:01 +01:00
snipe
63a05c89a7 Added counts to show method
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:39:52 +01:00
snipe
385c4f69f7 Added counts to depreciation transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:39:43 +01:00
snipe
486cd8c8c9 Nicer formatting for searchableAttributes
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:39:09 +01:00
snipe
eb5d93b3c2 Added assets relationship
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:38:55 +01:00
snipe
a5ff623484 Added asset, license, model count to API
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:38:43 +01:00
snipe
b5a4389815 Added badge count, fixed model bulk edit menu
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 12:38:31 +01:00
snipe
7b5b559baa Merge pull request #15401 from snipe/fixes-15397-new-window-for-label
Opens label new window
2024-08-28 11:57:29 +01:00
snipe
67a9929745 Opens label new window
Signed-off-by: snipe <snipe@snipe.net>
2024-08-28 11:56:54 +01:00
snipe
a48e79a1fc Merge remote-tracking branch 'origin/develop' 2024-08-27 07:37:53 +01:00
snipe
64c4433b98 Merge pull request #15396 from snipe/add_start_end_date_to_users_edit
Added `start_date` and `end_date` to user bulk edit
2024-08-27 07:36:37 +01:00
snipe
22bc088f6f Added start_date and end_date to user bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2024-08-27 07:21:19 +01:00
snipe
d3e8e06638 Add @swift2512 as a contributor 2024-08-26 14:07:06 +01:00
snipe
c207d48430 Merge remote-tracking branch 'origin/develop' 2024-08-26 14:01:38 +01:00
snipe
1b933f7add Added s to fa icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-26 13:47:17 +01:00
snipe
991e48696a Merge remote-tracking branch 'origin/develop' 2024-08-26 10:26:06 +01:00
snipe
3fe891a05b Removed a few more commas
Signed-off-by: snipe <snipe@snipe.net>
2024-08-26 10:25:27 +01:00
snipe
7974885041 Merge remote-tracking branch 'origin/develop' 2024-08-26 10:24:19 +01:00
snipe
f4c5b712f4 Removed colons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-26 10:24:07 +01:00
snipe
4ef85bd529 Merge remote-tracking branch 'origin/develop' 2024-08-23 17:58:08 +01:00
snipe
4c8dc7818d Merge pull request #15389 from snipe/added_generate_label_to_button_stack
Fixed #15388 - Moved generate label  button
2024-08-23 17:57:00 +01:00
snipe
5c43a1f87c Use proper style for buttons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 17:54:49 +01:00
snipe
d3b265de8e Moved button on hardware
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 17:48:36 +01:00
snipe
263151658f Moved general label button
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 17:44:09 +01:00
snipe
6eab83a85a Merge remote-tracking branch 'origin/develop' 2024-08-23 15:22:53 +01:00
snipe
aa86e07cd2 Fixed #15385 - small icon tweaks
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 15:22:39 +01:00
snipe
cce1f87da6 Merge remote-tracking branch 'origin/develop' 2024-08-23 15:18:30 +01:00
snipe
d92fa5de65 fa-fw on settings icon
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 15:17:25 +01:00
snipe
b460e8dc83 Merge remote-tracking branch 'origin/develop' 2024-08-23 08:42:32 +01:00
snipe
c589140ea0 Merge pull request #15383 from snipe/re-adds-checkout-button
Fixed #15378 - Corrected gate on checkin button on asset view
2024-08-23 08:42:04 +01:00
snipe
52894615ce More specific gate for checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 08:40:41 +01:00
snipe
8546bbdd65 Fixed gate for checkout button
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 08:38:47 +01:00
snipe
50cb7e65c9 Merge remote-tracking branch 'origin/develop' 2024-08-23 07:32:39 +01:00
snipe
cc2c8f76d0 Merge pull request #15375 from Godmartinz/fix-acceptance-reminder-command
Fixes the `acceptance-reminder` command
2024-08-23 07:31:29 +01:00
snipe
1ffa69c43c Merge pull request #15380 from snipe/fixed/fixed_nav_bracket
Added pull-right to angle bracket
2024-08-23 07:28:20 +01:00
snipe
f85ebd7ffd Added pull-right to angle bracket
Signed-off-by: snipe <snipe@snipe.net>
2024-08-23 07:27:39 +01:00
snipe
78d355f136 Merge pull request #15377 from marcusmoore/fixes/custom-field-values-on-validation-error
Fixed custom field defaults being prematurely updated
2024-08-23 07:20:23 +01:00
snipe
ec0346e4a8 Add @setpill as a contributor 2024-08-23 07:19:08 +01:00
snipe
fc5eb37776 Merge pull request #15379 from setpill/fix/load-trustproxies-middleware
fixed #15374: load TrustProxies middleware in Kernel.php
2024-08-23 07:18:41 +01:00
Marcus Moore
9a73311a99 Fix nested checkboxes being updated as a group 2024-08-22 17:04:04 -07:00
Marcus Moore
aec781e7df Be a little more explicit 2024-08-22 16:03:30 -07:00
setpill
1d7853cbfe fixed #15374: load TrustProxies middleware in Kernel.php 2024-08-22 23:41:27 +02:00
Marcus Moore
7f3c86165b Conditionally disable Add default values checkbox 2024-08-22 13:58:31 -07:00
Marcus Moore
10b45812c4 Improve id for checkboxes and radio buttons 2024-08-22 13:38:01 -07:00
Marcus Moore
c3165717ed Handle old input 2024-08-22 13:20:04 -07:00
Marcus Moore
d0a351a132 Add comment 2024-08-22 12:59:03 -07:00
Marcus Moore
68749e7e87 Simplify logic 2024-08-22 12:58:35 -07:00
Marcus Moore
0abb5637e0 WIP: handle old input 2024-08-22 12:54:54 -07:00
Marcus Moore
af0a95be12 Simplify assertions 2024-08-22 10:18:23 -07:00
Marcus Moore
d67975cb62 Implement fix 2024-08-22 10:18:23 -07:00
Marcus Moore
663b2fd844 Add test case 2024-08-22 10:18:23 -07:00
Marcus Moore
bcace9d019 Point test to correct endpoint 2024-08-22 10:18:23 -07:00
Marcus Moore
b59bf3e7dc Add failing test 2024-08-22 10:18:23 -07:00
Godfrey M
3957d670d0 fixes send acceptance reminder query 2024-08-22 10:04:46 -07:00
snipe
821dd158d1 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-08-22 15:50:20 +01:00
snipe
833dace2b4 Merge pull request #15373 from snipe/fixes/#15366_custom_fields
Fixed #15366 use the non-admin edit encrypted custom fields permissions
2024-08-22 15:00:16 +01:00
snipe
56e31d2303 Fixed #15366 - use permission for encrypted custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 14:58:09 +01:00
snipe
ec365b0804 Merge pull request #15372 from StarlessNights/update-docker-compose-files
Fixed #15371: docker-compose files updated.
2024-08-22 14:49:13 +01:00
Iisakki Jaakkola
aef0ac68c3 Need to use the long format for redis too in docker-compose file. 2024-08-22 16:10:00 +03:00
Iisakki Jaakkola
f12f9a816f Update the official docker-compose file too while at it. 2024-08-22 15:47:12 +03:00
Iisakki Jaakkola
a000d6454f Fix non-functional development docker-compose file. 2024-08-22 15:46:40 +03:00
snipe
ca8864c061 Fixed small layout quirks in asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 13:28:52 +01:00
snipe
423f4f9126 Merge pull request #14667 from Godmartinz/add_location_to_create_user_via_asset
Adds location select to the create new user via asset checkout
2024-08-22 13:25:41 +01:00
snipe
456c7d8d91 Merge pull request #15065 from Godmartinz/explicit_eol_removal_command
Adds `snipeit:remove-explicit-eols` command
2024-08-22 13:20:56 +01:00
snipe
54cfe3f6e6 Merge pull request #15156 from uberbrady/re-add-stalebot
Re-add stalebot-esque github Action
2024-08-22 13:20:10 +01:00
snipe
5e0b18104d Merge pull request #15369 from snipe/fixes/checkbox_on_restore
Fixed checkbox layout on modal from #15296
2024-08-22 12:59:20 +01:00
snipe
8b5d3f7fbd Fixed extra closing p tag
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 12:56:32 +01:00
snipe
744f43676d Fixed checkbox layout on modal from #15296
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 12:53:16 +01:00
snipe
ec0b9b198f Merge pull request #15296 from uberbrady/expose_restore_sanitize
Expose the 'sanitize' system for backup restores to the web GUI
2024-08-22 12:43:07 +01:00
snipe
6c9a402685 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 11:20:52 +01:00
snipe
1b310f3a24 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-08-22 11:20:42 +01:00
snipe
94300d81d6 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 11:19:32 +01:00
snipe
bc9ea5a2ec Merge pull request #15352 from Godmartinz/mobile_breakpoint
Fixed Mobile misalignment of info on Assets and Users view pages
2024-08-22 11:18:06 +01:00
snipe
4635a6efc3 Merge pull request #15360 from snipe/more_print_fixes
More print fixes for asset view
2024-08-22 11:17:49 +01:00
snipe
9608414eae Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2
Fixed #15344 - make select2 for countries freeform-ish
2024-08-22 11:06:13 +01:00
snipe
5efddf6f5b Allow clear on country dropdown
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 11:01:39 +01:00
snipe
305dc049a4 Added asterisk help text
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 11:01:28 +01:00
snipe
3ac0702094 Fixed #15344 - make select2 for countries freeform-ish
Signed-off-by: snipe <snipe@snipe.net>
2024-08-22 10:13:22 +01:00
snipe
47d8e2f8b9 Add @Scarzy as a contributor 2024-08-22 09:42:05 +01:00
Marcus Moore
a2246b9645 Simplify assertions 2024-08-21 17:00:32 -07:00
Marcus Moore
1d89759706 Implement fix 2024-08-21 16:59:44 -07:00
Marcus Moore
206f8fe605 Add test case 2024-08-21 16:59:38 -07:00
Marcus Moore
21d2217619 Point test to correct endpoint 2024-08-21 16:54:16 -07:00
Marcus Moore
833bcb282f Add failing test 2024-08-21 16:49:29 -07:00
snipe
83dd9ce20e Merge pull request #15362 from r-xyz/model-files-api
Added #9413: AssetModel files endpoints to API
2024-08-21 23:15:24 +01:00
r-xyz
a8eb76fd8d Fixed model files API routes. 2024-08-21 22:25:41 +02:00
r-xyz
cd7db5c4a8 Fix some typos in models file handler. 2024-08-21 22:24:08 +02:00
r-xyz
da7313bc9d Fix models files API routes. 2024-08-21 20:24:22 +02:00
r-xyz
4ec361c718 Add AssetModel files endpoints to API 2024-08-21 19:49:51 +02:00
Brady Wetherington
738ef442fd Rename .env var to have DB_ prefix for sanitize-by-default setting 2024-08-21 13:16:51 +01:00
snipe
d29b3bfb9a Few more hidden-print classes
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 13:06:16 +01:00
snipe
6fdce3c536 Merge pull request #15358 from r-xyz/rename-docker-startup
Renamed  docker startup scripts coherently.
2024-08-21 13:02:50 +01:00
snipe
912bbf0e32 More print fixes
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 13:02:21 +01:00
snipe
c54bff0f83 Merge remote-tracking branch 'origin/develop' 2024-08-21 12:24:13 +01:00
snipe
01c4fe6113 Merge pull request #15359 from uberbrady/improve_windows_upgrade
Fixed #15190 - Improvements to upgrade.php script to improve Windows experience
2024-08-21 12:12:23 +01:00
Brady Wetherington
0fa9f57971 Improvements to upgrade.php script to improve Windows experience 2024-08-21 11:53:38 +01:00
r-xyz
1ab29ec3a4 Rename docker startup scripts coherently. 2024-08-21 11:52:09 +02:00
snipe
7e475a0786 Merge pull request #15357 from snipe/tighten_category_view_translations
Fixed #15330 - Cleaned up category title
2024-08-21 10:41:17 +01:00
snipe
26b3c62ab8 Cleaned up category title
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 10:29:51 +01:00
snipe
d3f30ced94 Merge remote-tracking branch 'origin/develop' 2024-08-21 10:13:57 +01:00
snipe
d0acf5b8a6 Merge pull request #15356 from snipe/validate_location_parent
Fixed #15341 - validate parent ID
2024-08-21 10:12:58 +01:00
snipe
74fbc23823 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 10:09:35 +01:00
snipe
a23dee52f2 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 09:58:47 +01:00
snipe
4d03f1e110 Fixed #15341 - validate parent ID
Signed-off-by: snipe <snipe@snipe.net>
2024-08-21 09:46:18 +01:00
Godfrey M
963911f2e1 changed order of info stgack 2024-08-21 00:23:10 -07:00
Marcus Moore
59832126cb Improve comment 2024-08-20 16:52:51 -07:00
Marcus Moore
680cce3ee2 Align indents 2024-08-20 16:42:29 -07:00
Marcus Moore
6c5ec6a16c Get datepicker working 2024-08-20 16:41:24 -07:00
akemidx
27c120a55e front end changes/updates from gh 2024-08-20 19:07:47 -04:00
Marcus Moore
5d1f98bf93 Simplify by directly wire:modeling 2024-08-20 15:38:43 -07:00
Godfrey M
9d484077ae missed a file 2024-08-20 14:24:37 -07:00
Godfrey M
9858b0f37f fixes info tab for users and assets 2024-08-20 14:23:55 -07:00
snipe
973e2e5756 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-08-20 19:45:53 +01:00
snipe
09033b19a7 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 19:44:13 +01:00
snipe
46ed076428 Merge remote-tracking branch 'origin/develop' 2024-08-20 19:42:56 +01:00
snipe
5fdeb9c413 Merge pull request #15351 from snipe/localizations/new_translations_2024-08-20
Updated languages
2024-08-20 19:42:08 +01:00
snipe
22d3734075 Merge pull request #15350 from marcusmoore/icon-component-updates
Fixed icon not rotated and simplified component
2024-08-20 19:34:38 +01:00
Marcus Moore
eca6b03f44 Allow id to be rendered 2024-08-20 11:08:53 -07:00
Marcus Moore
bbdbec7197 Rely on $attributes behavior rendering passed attributes 2024-08-20 11:00:39 -07:00
snipe
6c450d1338 Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 18:18:17 +01:00
spencerrlongg
a8cd1027f3 rm commented code 2024-08-20 11:40:15 -05:00
snipe
d3a555ce91 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 11:49:39 +01:00
snipe
0f8e041809 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-08-20 11:49:32 +01:00
snipe
d99b306ae9 Merge pull request #15345 from snipe/add_trim_strings_middleware
Added TrimStrings middleware
2024-08-20 11:46:55 +01:00
snipe
74136761df Added TrimStrings middleware
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 11:45:13 +01:00
snipe
f597d64339 Merge pull request #15342 from snipe/snyk/bs-tables
[Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2
2024-08-20 10:17:26 +01:00
snipe
0072f1500e [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 10:16:27 +01:00
snipe
64bed01a91 Merge pull request #15327 from snipe/update_button_style
Update icons to use blade components, standardize button colors and format
2024-08-20 10:13:43 +01:00
snipe
f6319e11e7 Added fa-fw to sidebar elements
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 10:11:27 +01:00
snipe
5d9f988df3 Added fw class to topnav icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-20 10:01:49 +01:00
snipe
f8c72fb0ac Merge pull request #15112 from marcusmoore/livewire-importer-improvements
Improved handling attempted access of deleted files in importer
2024-08-20 09:57:03 +01:00
akemidx
4e43fa6b9f Merge remote-tracking branch 'upstream/develop' into feature/sc-26415 2024-08-19 21:06:18 -04:00
akemidx
8e1111c681 Merge remote-tracking branch 'upstream/develop' into eol_date_range_for_reports 2024-08-19 19:33:44 -04:00
snipe
886514a25f Merge pull request #15336 from marcusmoore/fixes/remove-displayed-parentheses
Fixed `)` being added to expected asset checkin report email header
2024-08-19 22:46:08 +01:00
Marcus Moore
fa765667f2 Merge branch 'develop' into livewire-importer-improvements 2024-08-19 14:41:58 -07:00
Marcus Moore
434bdcd6d4 Add missing parentheses to conditional 2024-08-19 14:31:47 -07:00
snipe
be5f3f38f8 Settings pages
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 14:48:12 +01:00
snipe
08c3a25b39 Little more padding
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 14:16:57 +01:00
snipe
34cd4b6244 Added links to apple/google maps
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 14:15:36 +01:00
snipe
d89c8682be Reversed location button ordering
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:46:31 +01:00
snipe
6f024849e9 Few more
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:39:24 +01:00
snipe
e048f0955f More icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:27:21 +01:00
snipe
479b2b4fd3 More icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:23:08 +01:00
snipe
84f14a05bd Fixed logging for asset model restore
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:20:19 +01:00
snipe
8d52fa51b1 Fixed suppliers buttons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:20:06 +01:00
snipe
229d8b9bf5 Added location restore
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 13:19:59 +01:00
snipe
eb8d43a804 Updated buttons on models
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 12:32:44 +01:00
snipe
f82266fade Cleaned up presenters
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 11:58:31 +01:00
snipe
b4b6f7a35f Added css-consumable to overrides for table headers
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 11:58:21 +01:00
snipe
0bc995b87f Updated more icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 11:58:05 +01:00
snipe
59725f2031 Removed extra debugging in test
Signed-off-by: snipe <snipe@snipe.net>
2024-08-19 11:57:40 +01:00
snipe
00bc9ac806 Fixed spacing
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 22:39:14 +01:00
snipe
f200960a57 Aaaand more
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 22:26:57 +01:00
snipe
c700127f1a Updated user view
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 22:09:00 +01:00
snipe
ae2f9571b4 And still more
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 21:57:37 +01:00
snipe
a77dcad336 More links
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 20:30:53 +01:00
snipe
7ace9324b4 Added padlock sound
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 20:30:22 +01:00
snipe
d2e889e927 Still more
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 19:21:59 +01:00
snipe
803bdb457c Added calendar
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 18:48:19 +01:00
snipe
7c9b1f6e38 Added the plus icon
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 18:39:22 +01:00
snipe
d545537a43 More icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 18:34:13 +01:00
snipe
4d8904938d Added calendar icon for datepickers
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 18:24:26 +01:00
snipe
0c09f2b2c0 Moar icon replacement
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 18:13:49 +01:00
snipe
bffba02511 Updated icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 17:26:44 +01:00
snipe
901f4df7ee Added more icons
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 17:03:36 +01:00
snipe
9337cba340 Added download
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 15:53:58 +01:00
snipe
2b0c67c263 Load the icon helper
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 15:51:00 +01:00
snipe
da71f031f5 Use icon in hardware view
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 15:48:24 +01:00
snipe
d2e585baa7 Added icon blade
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 15:47:45 +01:00
snipe
a102c085df Added icon helper
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 15:47:37 +01:00
snipe
e8a22f3c5b Merge remote-tracking branch 'origin/develop' 2024-08-18 04:55:04 +01:00
snipe
cb40a82e79 Merge pull request #15324 from snipe/jerk_prevention
Prevent passing an array as login
2024-08-18 04:54:23 +01:00
snipe
4253acad4c Prevent passing an array as login
Signed-off-by: snipe <snipe@snipe.net>
2024-08-18 04:51:36 +01:00
snipe
5066eb58f4 Added asset model import to importer
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 02:31:03 +01:00
snipe
d843cf8dcc Merge remote-tracking branch 'origin/develop' 2024-08-17 00:52:10 +01:00
snipe
7e6ff3cbe6 Removed trailing rows
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 00:51:19 +01:00
snipe
1013dcae61 Merge remote-tracking branch 'origin/develop' 2024-08-17 00:38:44 +01:00
snipe
e7ef3bf515 Merge pull request #15322 from snipe/importer_model_fixes
Importer model fixes
2024-08-17 00:37:37 +01:00
snipe
a25efe53aa Removed some debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 00:35:42 +01:00
snipe
de059a715a Cleaner test CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 00:30:49 +01:00
snipe
318aff1ef0 Fixed behavior for null model numbers
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 00:27:44 +01:00
snipe
e96b9b2f4f Added test for models with same name but no model number
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 23:04:11 +01:00
snipe
3ae4a5caf0 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:53:27 +01:00
snipe
559f0d2f90 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:53:21 +01:00
snipe
9b6a36c8aa Removed unusued parameter
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:45:57 +01:00
snipe
1a4aebf805 Added TwoColumnUniqueUndeletedTrait trait
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:45:47 +01:00
snipe
6ad7100aa3 Removed unused use statements
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:45:17 +01:00
snipe
5529669884 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:44:03 +01:00
snipe
b57283d8d1 Removed commented code
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 22:43:56 +01:00
snipe
7658f7c41d First shot
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 20:29:53 +01:00
spencerrlongg
70e5e0f9df get rid of dd 2024-08-16 12:52:06 -05:00
spencerrlongg
dec4691c73 should be good to go now 2024-08-16 12:50:09 -05:00
snipe
48903b1402 Added Gate Pass Generator link
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 17:42:42 +01:00
snipe
7376c21f10 Removed dupe link, linked name
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 17:01:07 +01:00
snipe
f921400579 Added link to UnifiSnipeSync
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 16:55:16 +01:00
snipe
c30c649aaa Merge remote-tracking branch 'origin/develop' 2024-08-16 16:44:02 +01:00
snipe
ad6d09b6ad Removed default label
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 16:43:51 +01:00
snipe
bb1385369c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-08-16 16:18:00 +01:00
snipe
43b338d612 Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 16:15:58 +01:00
snipe
c1caf6088e Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 13:12:13 +01:00
snipe
67655ad84b Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 13:11:33 +01:00
snipe
12dfe71ea8 Merge remote-tracking branch 'origin/develop' 2024-08-16 12:48:42 +01:00
snipe
ea2b1b0748 Merge pull request #15318 from snipe/localization/fixed_strings
Corrected some translations
2024-08-16 12:43:06 +01:00
snipe
856c57cb12 Corrected some translations
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 12:39:59 +01:00
snipe
90584ab803 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-08-16 11:11:00 +01:00
snipe
184f54a6cd Removed extra spaces
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 11:10:57 +01:00
snipe
f24031b974 Merge pull request #15206 from Godmartinz/dashboard_box_alignment
Fixed dashboard box overflow
2024-08-16 11:10:40 +01:00
snipe
0a7aaa54b6 Merge pull request #15282 from r-xyz/alpine-secrets
Added support for Docker secrets in Standard and alpine image.
2024-08-16 11:08:09 +01:00
snipe
ca89268716 Merge remote-tracking branch 'origin/develop' 2024-08-16 11:02:56 +01:00
snipe
3167ee91d1 Added a setting test and validation on settings
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 10:51:49 +01:00
snipe
e8f1190628 Added missing migration from #15314
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 10:44:28 +01:00
snipe
44f18d210e Remove MBP constraint
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 10:36:35 +01:00
snipe
e8deecc9b4 Removed MBP constraint on model
This was creating a validation error since the name already exists

Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 10:35:42 +01:00
snipe
a79fe69bf4 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-08-16 10:22:16 +01:00
snipe
d49c33fbe3 Add @Glukose1 as a contributor 2024-08-16 10:22:05 +01:00
snipe
de29c1d8a0 Merge pull request #15314 from Glukose1/features/add_setting_due_for_checkin_in_days
Added #15312: Add checkin due in days setting
2024-08-16 10:21:36 +01:00
snipe
f9172594b2 Clearer time example display
Signed-off-by: snipe <snipe@snipe.net>
2024-08-16 10:14:43 +01:00
Marcus Moore
94d8a547b8 Merge branch 'develop' into livewire-importer-improvements 2024-08-15 13:47:49 -07:00
Marcus Moore
43b109fac0 Use cached values for textarea and radio input 2024-08-15 13:20:22 -07:00
Marcus Moore
75c1e7658f Improve method name 2024-08-15 10:43:41 -07:00
Marcus Moore
e7c9c799bb Add wire:keys 2024-08-15 10:40:23 -07:00
Marcus Moore
6ab976f353 Use cached values for text input 2024-08-15 10:32:33 -07:00
snipe
ec5731353a Merge remote-tracking branch 'origin/develop' 2024-08-15 15:53:52 +01:00
snipe
b39a7c6f0c String constraint
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 15:42:11 +01:00
snipe
a3d847151a Model name uniqueness
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 15:19:27 +01:00
snipe
3283704fe8 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 12:25:08 +01:00
snipe
540df32046 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-08-15 12:24:59 +01:00
snipe
594f506641 Merge pull request #15305 from snipe/localizations/updated_languages_2024-08-15
Updated translation strings
2024-08-15 12:21:59 +01:00
snipe
dd458dfa7f Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 12:21:06 +01:00
snipe
b917489f00 Corrected string
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 12:10:41 +01:00
snipe
75dfedcb82 Merge pull request #15304 from snipe/confetti_fun_mode_redux
Added confetti option
2024-08-15 11:37:34 +01:00
snipe
6216b4fc0d Use native browser control for required in addition to the css effect
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 11:35:56 +01:00
snipe
4356cb7b9b Added confetti option
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 11:32:42 +01:00
Glukose1
d8df52cc8f Implemented setting to specify the amount of days before an assets appers in the due for checkin page. Currently this uses the audit warning days but a sperated setting gives the possibility of defineing different values for each field. 2024-08-15 12:20:51 +02:00
snipe
85486fa58c Merge remote-tracking branch 'origin/develop' 2024-08-15 10:53:54 +01:00
snipe
10dc1f1368 Re-pull the accessory checkout
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:51:49 +01:00
snipe
3618df2ec5 Merge remote-tracking branch 'origin/develop' 2024-08-15 10:44:39 +01:00
snipe
8f7bce7aad Re-added UI for checkout to non-users for accessories
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:44:27 +01:00
snipe
a201f22fdb Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:36:12 +01:00
snipe
6070d530cf Merge remote-tracking branch 'origin/develop' 2024-08-15 10:35:33 +01:00
snipe
4d66f7c93f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:35:02 +01:00
snipe
6c0cf94473 Merge remote-tracking branch 'origin/develop' 2024-08-15 10:28:08 +01:00
snipe
381003eeab Cleaned up asset tag field on quickscan checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:27:31 +01:00
snipe
c3d4c821f3 Merge pull request #15303 from snipe/features/#15301_optional_status_to_quickscan_checkin
Fixed #15301 - Added optional status to quickscan checkin
2024-08-15 10:26:04 +01:00
snipe
d8038ac483 Removed status label list
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:17:08 +01:00
snipe
d268f25f16 Make asset tag required
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:16:57 +01:00
snipe
01c69c8f8f Allow optional status label on quickscan checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-08-15 10:08:48 +01:00
spencerrlongg
9622e05cf5 correct api test 2024-08-14 18:41:06 -05:00
spencerrlongg
afaf53cdfc failing ui test 2024-08-14 18:14:21 -05:00
spencerrlongg
f031309f8f set up api controller for route/model binding 2024-08-14 16:09:15 -05:00
spencerrlongg
20ec420ba3 not quite done, api side needs some work 2024-08-14 13:53:29 -05:00
Marcus Moore
ab63a19aff Initialize concept of cached values 2024-08-14 11:01:51 -07:00
spencerrlongg
a70b94e707 Merge branch 'refs/heads/develop' into bug/sc-26584 2024-08-14 11:36:19 -05:00
r-xyz
0d7cf55a3a Add support for Docker secrets in Standard and alpine image. 2024-08-14 17:40:52 +02:00
Brady Wetherington
008bf036b5 Got rid of weird namespace declaration and commented-out data-toggle line 2024-08-14 16:09:34 +01:00
Brady Wetherington
cc5ad456e6 Expose the 'sanitize' system for backup restores to the web GUI 2024-08-14 15:59:21 +01:00
snipe
3e29457094 Merge pull request #15292 from snipe/features/updated_phpinsights
Updated phpinsights
2024-08-14 12:12:40 +01:00
snipe
0b3ac2a9cd Updated phpinsights
Signed-off-by: snipe <snipe@snipe.net>
2024-08-14 12:08:49 +01:00
snipe
bf4b915168 Merge remote-tracking branch 'origin/develop' 2024-08-14 10:45:13 +01:00
snipe
0f1e5181a6 Nicer input layout for bulk edit name
Signed-off-by: snipe <snipe@snipe.net>
2024-08-14 10:09:14 +01:00
snipe
0a9c2e354f Merge remote-tracking branch 'origin/develop' 2024-08-14 10:02:43 +01:00
snipe
e544007185 Merge pull request #15291 from snipe/features/bulk_update_asset_name
Added asset name to bulk asset edit
2024-08-14 10:02:09 +01:00
snipe
4b690e8e1f Updated test to check for nulling
Signed-off-by: snipe <snipe@snipe.net>
2024-08-14 10:01:56 +01:00
snipe
371afde52d Bulk edit asset name
Signed-off-by: snipe <snipe@snipe.net>
2024-08-14 09:52:25 +01:00
Marcus Moore
038e86954b Improve property name 2024-08-13 17:30:53 -07:00
Marcus Moore
f6c1642bf2 Use computed fields in CustomFieldSetDefaultValuesForModel component 2024-08-13 17:01:35 -07:00
snipe
7a6a2e3d92 Merge pull request #15290 from marcusmoore/test-fixes
Fixed component check in test
2024-08-14 00:00:55 +01:00
Marcus Moore
3f8ac59f4c Reference the entry in the components_assets table 2024-08-13 15:31:16 -07:00
snipe
74e7b1cfa5 Merge pull request #15286 from marcusmoore/test-updates
Implemented artisan test case
2024-08-13 20:46:46 +01:00
Marcus Moore
ae0a6d66f3 Update tests
https://masteringlaravel.io/daily/2024-02-09-watch-out-for-this-when-testing-artisan-commands
2024-08-13 12:16:08 -07:00
Marcus Moore
321839e074 Fix namespace 2024-08-13 12:14:56 -07:00
spencerrlongg
120cfd13c5 translation 2024-08-13 14:07:40 -05:00
spencerrlongg
09f2739298 works, un-reassignable licenses are an issue 2024-08-13 13:45:41 -05:00
snipe
e9fc455a30 Merge pull request #15192 from Godmartinz/status_labels_check_emails
Added status labels to confirmation emails
2024-08-13 18:24:15 +01:00
Godfrey M
8af4126de1 removed indent from blades 2024-08-13 10:21:33 -07:00
Godfrey M
5d1c48c071 fixes alignment, and box issue with pie chart 2024-08-13 10:11:49 -07:00
snipe
47f1b3b14e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-08-13 16:48:06 +01:00
snipe
3044af9410 Merge pull request #15280 from snipe/bug/sc-23294
Fixed select2 “x” color on multi-select and border color
2024-08-13 16:46:56 +01:00
snipe
4f0f0af83b Make the border radius match the rest of the site
Signed-off-by: snipe <snipe@snipe.net>
2024-08-13 16:46:26 +01:00
snipe
198afee946 Fixed select2 “x” color on mult-select and border color
Signed-off-by: snipe <snipe@snipe.net>
2024-08-13 16:42:23 +01:00
snipe
def0af652d Merge pull request #15279 from TelecomsSansFrontieres/fix_missing-translate-item-assets
Fix: add missing admin/hardware/table.name key
2024-08-13 16:35:25 +01:00
Florent Bervas
20e4ba0590 lang: relocated translation key to existing item in general 2024-08-13 15:07:54 +00:00
snipe
72fd9977e5 Merge pull request #15277 from uberbrady/silence_saml_errors
Fixed: [sc-26355] Attempt to de-escalate SAML login and logout errors
2024-08-13 15:51:03 +01:00
Brady Wetherington
10f35c682b Re-add space 2024-08-13 15:49:51 +01:00
snipe
198b76ebc2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-08-13 15:47:00 +01:00
snipe
6e84c29ce4 Merge pull request #15278 from snipe/print_view_improvements
Fixed #14821 - Hide UI elements from print view on assets
2024-08-13 15:45:30 +01:00
snipe
389a06aac5 Hide UI elements from print view on assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-13 15:40:51 +01:00
Brady Wetherington
4b96721393 Attempt to de-escalate SAML login and logout errors 2024-08-13 14:55:13 +01:00
snipe
e42ee0c0e1 Merge pull request #15276 from snipe/css_updates
Bold selected tab for better readability
2024-08-13 14:21:45 +01:00
snipe
277a0fd16a Make selected tab bold
Signed-off-by: snipe <snipe@snipe.net>
2024-08-13 14:19:41 +01:00
snipe
c163d6774f Merge pull request #15198 from spencerrlongg/feature/add_trait_to_request
Add MayContainCustomFields Trait to Asset Update Request
2024-08-13 14:12:52 +01:00
snipe
5546f9676a Merge remote-tracking branch 'origin/develop' 2024-08-13 13:51:33 +01:00
snipe
9e73eaf955 Merge pull request #15275 from snipe/added_tooltips_to_top_bar
Added tooltips to top nav shortcuts
2024-08-13 13:50:27 +01:00
snipe
1b2094f4e2 Added tooltips to top nav shortcuts
Signed-off-by: snipe <snipe@snipe.net>
2024-08-13 13:49:13 +01:00
spencerrlongg
ec863df007 rm conditional that might be unnecessary 2024-08-12 16:58:53 -05:00
spencerrlongg
cc3b8e0681 this should more or less work, but i need to determine if this is the best way 2024-08-12 16:58:21 -05:00
spencerrlongg
ff145abbe7 use array for eager loading, makes ide prettier 2024-08-12 16:13:03 -05:00
snipe
46caa478d2 Merge remote-tracking branch 'origin/develop' 2024-08-12 20:47:45 +01:00
snipe
e6106aa7cf Merge pull request #15272 from snipe/fixes/added_selectlist_permission_for_reports
Added reporting-only access for selectlists
2024-08-12 20:47:17 +01:00
snipe
b45a8f4b5f Added reporting-only access for selectlists
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 20:44:17 +01:00
snipe
4d8569e754 Merge remote-tracking branch 'origin/develop' 2024-08-12 18:01:21 +01:00
snipe
c9f8a84d48 Merge pull request #15270 from snipe/fixes/make_dashboard_pie_respect_show_in_list
Fixed #15247 - make pie chart on dashboard respect the “show archived…
2024-08-12 17:59:27 +01:00
snipe
ac1543d568 Fixed #15247 - make pie chart on dashboard respect the “show archived” setting
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 17:54:42 +01:00
snipe
4dc57f95e2 Merge remote-tracking branch 'origin/develop' 2024-08-12 16:38:23 +01:00
snipe
9d354ca657 Merge pull request #15266 from uberbrady/checkout_to_fixer
Checkout-to fixer
2024-08-12 16:34:19 +01:00
snipe
316ee6f810 Merge remote-tracking branch 'origin/develop' 2024-08-12 16:30:53 +01:00
snipe
3f2139349e Allow better fallthrough on image
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 16:30:21 +01:00
snipe
f56dd582f9 Merge pull request #15269 from snipe/fixes/smaller_email_logo
Fixes ##15236 - smaller email logo
2024-08-12 16:27:59 +01:00
snipe
225ab47b8e Simplified logic
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 16:23:09 +01:00
snipe
4c350bd5a3 Remove the regular logo fallback, make image capped by height
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 16:21:58 +01:00
snipe
509cc812ea Merge remote-tracking branch 'origin/develop' 2024-08-12 15:58:40 +01:00
snipe
e7fb29fced Fixed copy area for serial
Signed-off-by: snipe <snipe@snipe.net>
2024-08-12 15:58:30 +01:00
Brady Wetherington
a2d11b43de Whoops, these were accidentally committed 2024-08-12 13:50:46 +01:00
Brady Wetherington
f80cf666b1 Mark tests as incomplete for the new artisan assigned_to fixer 2024-08-12 13:46:56 +01:00
snipe
d5f66bc0dd Merge remote-tracking branch 'origin/develop' 2024-08-12 10:10:59 +01:00
snipe
ce5be8ac24 Merge pull request #15100 from Godmartinz/depreciation_percentage
Added Depreciation Percentage as an option
2024-08-12 10:10:25 +01:00
snipe
1e213c31ef Merge remote-tracking branch 'origin/develop' 2024-08-11 10:26:16 +01:00
snipe
1777bb4b93 Pulled searchable relation on model - needs revisit
Signed-off-by: snipe <snipe@snipe.net>
2024-08-11 10:26:02 +01:00
snipe
91874dfe0b Merge remote-tracking branch 'origin/develop' 2024-08-10 19:37:37 +01:00
snipe
5c6c655cdc Added sounds to quickscan checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 19:37:18 +01:00
snipe
0e6eda5e8a Merge remote-tracking branch 'origin/develop' 2024-08-10 18:29:41 +01:00
snipe
60eb602156 Merge pull request #15264 from snipe/fixes/fixed_admin_ordering_on_report
Fixed #15252 - admin ordering on activity report
2024-08-10 18:26:15 +01:00
snipe
24560b9362 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 18:24:49 +01:00
snipe
76b114d820 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 18:21:41 +01:00
snipe
ce33deed86 Remove unused use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:14:34 +01:00
snipe
1e6c172f18 Removed unusued use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:14:20 +01:00
snipe
a1ce9b9285 Added query scope for ordering by admin
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:00:50 +01:00
snipe
6ec3693030 Load admin on actionlog
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:00:34 +01:00
snipe
71729f0b16 Load admin and model on assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:00:20 +01:00
snipe
1c229a8e08 Made notes field sortable
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 17:00:11 +01:00
snipe
07b1e3fb90 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 16:55:48 +01:00
snipe
6294516271 Merge pull request #15263 from snipe/really/remove_pound_sign_for_order_number
Fixed #15248 Removed pound symbol from order number on asset view
2024-08-10 16:18:40 +01:00
snipe
f3331b5045 Removed pound symbol from order number on asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 16:17:07 +01:00
snipe
6a06a91fa2 Merge pull request #15262 from snipe/synk/jquery-validation-from-1.20.1-to-1.21.0
Upgrade jquery-validation from 1.20.1 to 1.21.0
2024-08-10 16:07:47 +01:00
snipe
0cba5ba67e Upgrade jquery-validation from 1.20.1 to 1.21.0
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 16:06:14 +01:00
snipe
b815352a45 Merge pull request #15261 from snipe/security/upgrade_fontawesome
[Snyk] Upgrade @fortawesome/fontawesome-free from 6.5.2 to 6.6.0
2024-08-10 15:57:10 +01:00
snipe
2f299dbb20 Upgrade fontawesome, generate dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-08-10 15:51:24 +01:00
snipe
f76fbe75e0 Merge pull request #15221 from marcusmoore/fixes/bulk-checkin-logging
Fixed accessories and consumables not being logged correctly during bulk check-in
2024-08-08 10:43:59 +01:00
snipe
cc1e356c35 Merge pull request #15232 from marcusmoore/shift-126036
Updated PHPUnit to v10
2024-08-08 01:23:07 +01:00
snipe
8094f3c0e1 Merge pull request #15245 from spencerrlongg/bug/acceptance_issue
Fixed Issue with Acceptances Being Created
2024-08-08 01:22:34 +01:00
snipe
900beaa955 Merge pull request #15244 from snipe/features/play_sound_on_audit
Fixes #10560 - optional ability to play sound on audit
2024-08-08 00:58:30 +01:00
Marcus Moore
6521c02526 Merge branch 'develop' into livewire-importer-improvements
# Conflicts:
#	resources/views/livewire/importer.blade.php
2024-08-07 15:20:39 -07:00
spencerrlongg
2412333152 added conditional to listener 2024-08-07 16:53:06 -05:00
Marcus Moore
4a2d2f7336 Improve variable name 2024-08-07 13:32:30 -07:00
Marcus Moore
d03baa4613 Make diff cleaner 2024-08-07 13:29:45 -07:00
Marcus Moore
41437e4d8f Merge branch 'develop' into fixes/bulk-checkin-logging
# Conflicts:
#	app/Http/Controllers/Users/BulkUsersController.php
2024-08-07 13:06:59 -07:00
snipe
7d220dd8c2 set default
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:58:04 +01:00
snipe
a99ec062e6 Added checkbox for preferences
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:49:07 +01:00
snipe
8fe6395287 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:41:13 +01:00
snipe
b4d51599ee Added sound effects
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:38:50 +01:00
snipe
9350a20189 Include accessories count
This isn’t exactly right right now

Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:19:47 +01:00
snipe
889d5da71e Check for accessories on bulk items
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 20:04:32 +01:00
snipe
5546ab08c2 Only delete user records in accessories_checkouts for bulk delete
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 19:53:18 +01:00
snipe
ef183f256c Merge pull request #15242 from Godmartinz/shortcut_option
Fixed shortcuts to be optional now
2024-08-07 18:56:27 +01:00
Godfrey M
3a96e501cc use old school input 2024-08-07 10:54:06 -07:00
Godfrey M
6b1784f2ee makes shortcuts optional 2024-08-07 10:47:16 -07:00
snipe
1a872b1643 Merge remote-tracking branch 'origin/develop' 2024-08-07 18:15:44 +01:00
snipe
deef9ad181 Merge pull request #15241 from snipe/partial_revert_for_checkout_accessories_to_non_user
Partial revert for checkout accessories to non user
2024-08-07 18:15:08 +01:00
snipe
0dc7e8b8dc Temp removed other selector
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 18:04:52 +01:00
snipe
a5f075548a Default to user
Signed-off-by: snipe <snipe@snipe.net>
2024-08-07 18:04:39 +01:00
Brady Wetherington
1706ddd511 working fixup script, but failing tests. But I have tests! 2024-08-07 16:06:00 +01:00
Marcus Moore
a220986d16 Switch to snake case 2024-08-06 16:13:51 -07:00
Marcus Moore
2a8ac81eed Fix namespace 2024-08-06 15:22:13 -07:00
Marcus Moore
d3cb3c03d2 Rerun composer update using php 8.1 2024-08-06 15:01:01 -07:00
Marcus Moore
c60bc5cdbe Change indents back to 2 2024-08-06 13:51:44 -07:00
Marcus Moore
6cfbf835c7 Migrate phpunit.xml
vendor/bin/phpunit --migrate-configuration
2024-08-06 13:37:53 -07:00
Marcus Moore
047b77e038 Composer update for phpunit, collision, and paratest
composer update phpunit/phpunit nunomaduro/collision brianium/paratest --with-all-dependencies
2024-08-06 13:34:51 -07:00
snipe
766b370264 Merge pull request #15229 from marcusmoore/bug/sc-26552
Disallowed checking out components to different companies and fixed number remaining counts
2024-08-06 21:33:55 +01:00
snipe
da33277234 Merge pull request #15230 from marcusmoore/fixes/test-namespaces
Fixed handful of test namespaces
2024-08-06 21:32:11 +01:00
Marcus Moore
3e832e5e94 Revert "Define test classes as final"
This reverts commit 95516b0343.
2024-08-06 13:31:17 -07:00
Marcus Moore
82e795b642 Revert "Add return types to test methods"
This reverts commit 83fb6826ee.
2024-08-06 13:30:34 -07:00
Shift
95516b0343 Define test classes as final 2024-08-06 20:25:22 +00:00
Shift
83fb6826ee Add return types to test methods 2024-08-06 20:25:22 +00:00
Shift
b1e92ab866 Declare data providers as static 2024-08-06 20:25:21 +00:00
Shift
96241cb67c Adopt PHP attributes in test classes 2024-08-06 20:25:21 +00:00
Shift
b680dab5c9 Ignore PHPUnit cache folder 2024-08-06 20:25:19 +00:00
Shift
984840dc82 Bump PHPUnit dependencies 2024-08-06 20:25:18 +00:00
Marcus Moore
84e447af09 Fix test namespaces 2024-08-06 13:21:36 -07:00
Marcus Moore
c7ddabcc8b Check for FMCS when checking out component 2024-08-06 12:27:15 -07:00
Marcus Moore
bee80fcf8a Remove global scope when counting check outs 2024-08-06 12:16:06 -07:00
Marcus Moore
0aff35b622 Scaffold additional failed tests 2024-08-06 12:07:34 -07:00
Godfrey M
46a6a84ecb adds migration and translations 2024-08-06 11:07:39 -07:00
Marcus Moore
374812f8fe Add failing test 2024-08-06 10:48:38 -07:00
Marcus Moore
94e00b8a3e Use new accessory checkout relationship 2024-08-05 17:26:11 -07:00
Marcus Moore
f2b78d18a4 Merge branch 'develop' into fixes/bulk-checkin-logging
# Conflicts:
#	app/Http/Controllers/Users/BulkUsersController.php
2024-08-05 17:25:54 -07:00
Marcus Moore
17eccfcd8b Formatting 2024-08-05 16:58:27 -07:00
Marcus Moore
01e4382d20 Formatting 2024-08-05 16:58:17 -07:00
Marcus Moore
1c664af326 Remove todo outside of scope 2024-08-05 16:58:08 -07:00
Marcus Moore
392d34422a Remove code handled by ConsumableAssignment:: call above 2024-08-05 16:57:40 -07:00
Marcus Moore
35e7a3163c Implement test case 2024-08-05 16:54:31 -07:00
Marcus Moore
96fafa6952 Improve readability 2024-08-05 16:36:29 -07:00
Marcus Moore
a55693211f Move test class 2024-08-05 16:27:04 -07:00
Marcus Moore
1acd24fdbe Re-order helpers 2024-08-05 16:26:25 -07:00
Marcus Moore
59b7d5db4b Remove comment 2024-08-05 16:25:14 -07:00
Marcus Moore
16aa47509b Implement test for assets 2024-08-05 16:24:52 -07:00
Marcus Moore
d1bb3ef6bf Scaffold two tests 2024-08-05 16:19:09 -07:00
Marcus Moore
5cd9dd4a67 Add assertion to ensure user cannot perform bulk actions on self 2024-08-05 16:17:24 -07:00
Marcus Moore
fc405d9d73 Assert redirected to correct place 2024-08-05 16:14:01 -07:00
Marcus Moore
5786ff5035 Add assertion for success message 2024-08-05 16:11:07 -07:00
Marcus Moore
8a206a6d92 Add assertion 2024-08-05 16:10:12 -07:00
Marcus Moore
67b3ab820f Add todo comments 2024-08-05 16:10:08 -07:00
Marcus Moore
b06501dd02 Add assertions 2024-08-05 16:02:59 -07:00
Marcus Moore
e3049fffd4 Remove comment 2024-08-05 15:50:53 -07:00
Marcus Moore
5ecdb7e07c Add validation test 2024-08-05 15:50:09 -07:00
Marcus Moore
4ed3347f52 Add permission check 2024-08-05 15:43:38 -07:00
Marcus Moore
364775dcfe Improve readability 2024-08-05 15:42:03 -07:00
Marcus Moore
bfebcdc7ed Improve variable name 2024-08-05 15:22:35 -07:00
Marcus Moore
480e4f3a69 Improve readability 2024-08-05 15:16:40 -07:00
Marcus Moore
78a0417ee9 Add another user into the mix 2024-08-05 15:11:18 -07:00
snipe
b83d148b37 Merge pull request #15217 from TelecomsSansFrontieres/feature_extend-search-by-tag
Feature: Extend search capabilities to other assets attributes
2024-08-05 15:38:51 +01:00
Florent Bervas
ad794248fe add a warning message if asset tag not found 2024-08-05 13:54:33 +00:00
Florent Bervas
b804791ff6 feature: extend search capabilities to other assets attributes 2024-08-05 12:26:29 +00:00
snipe
c45bf870b7 Merge pull request #15211 from snipe/feaures/15205_copy_asset_tag
Fixed #15205 - adds copy to asset tag
2024-08-02 20:59:53 +01:00
snipe
a0bd8b6049 Fixed #15205 - adds copy to asset tag
Signed-off-by: snipe <snipe@snipe.net>
2024-08-02 20:56:31 +01:00
akemidx
0f0baa207d note field optional 2024-08-01 17:02:35 -04:00
akemidx
3ff1745f56 setting created 2024-08-01 16:44:02 -04:00
akemidx
552f90ae2c required, but not optional 2024-08-01 16:06:47 -04:00
Godfrey M
ae4f278df1 edited terenaries on notifs 2024-08-01 11:13:20 -07:00
Godfrey M
bc0ff706b0 fixes dashboard box overflow 2024-08-01 10:31:39 -07:00
snipe
28abb8d8cc Hotfix for 405 update asset
Signed-off-by: snipe <snipe@snipe.net>
2024-08-01 12:30:35 +01:00
snipe
24d948a3f6 Merge pull request #15204 from snipe/fixes/405_on_api_asset_update
Fixed (temp) put route
2024-08-01 12:28:23 +01:00
snipe
c1c9c3554e Fixed (temp) put route
Signed-off-by: snipe <snipe@snipe.net>
2024-08-01 12:27:02 +01:00
snipe
fcea564afa Fixed button label
Signed-off-by: snipe <snipe@snipe.net>
2024-07-31 21:44:27 +01:00
snipe
f44abd0b28 Fixed button label
Signed-off-by: snipe <snipe@snipe.net>
2024-07-31 21:43:09 +01:00
Godfrey M
854903805b one more spot 2024-07-31 12:16:41 -07:00
Godfrey M
868f117b67 Merge branch 'status_labels_check_emails' of github.com:Godmartinz/snipe-it into status_labels_check_emails 2024-07-31 12:03:56 -07:00
Godfrey M
b6cac4baae corrects ? usage 2024-07-31 12:03:36 -07:00
snipe
4fcb3df1d9 Merge pull request #15199 from Godmartinz/fix-signature-pad
adds closing brackets to signature pad
2024-07-31 19:23:33 +01:00
Godfrey M
b60e22bcb4 adds closing brackets to signature pad 2024-07-31 11:10:33 -07:00
spencerrlongg
61312c2eec oops, mysql 2024-07-31 12:07:50 -05:00
spencerrlongg
b0063b1d4a test written 2024-07-31 11:57:35 -05:00
akemidx
fffcbdc44d Merge remote-tracking branch 'upstream/develop' into upstream/dev 2024-07-31 07:14:06 -04:00
akemidx
8d1fa362f7 restoring code 2024-07-31 07:13:42 -04:00
snipe
31a2765b30 Merge pull request #15145 from Godmartinz/purge-storage
Added user storage files to purge command
2024-07-31 10:16:08 +01:00
snipe
e79a5b7efe Merge pull request #15193 from Godmartinz/admin-settings
Fixed admin boxes alignment
2024-07-31 08:54:44 +01:00
snipe
ca531e85f3 Merge pull request #15194 from spencerrlongg/bug/sc-26247
Fixed A Translation Issue With Auth
2024-07-31 08:54:09 +01:00
spencerrlongg
0941c0944a ok, found issue, but need to test some things now... 2024-07-30 22:55:15 -05:00
spencerrlongg
9b80843c77 tests a little broken, added some nullchecks 2024-07-30 21:44:22 -05:00
spencerrlongg
8684a3efc3 delete note, add trait to other request 2024-07-30 21:22:46 -05:00
akemidx
fccfce2ae8 first thought 2024-07-30 19:27:37 -04:00
Godfrey M
935d2ce29a fixes admin box alignment 2024-07-30 15:05:09 -07:00
spencerrlongg
437ddc01b4 removed extraneous $request->validate() arguments 2024-07-30 16:26:24 -05:00
Godfrey Martinez
f19e58b352 Merge pull request #21 from Godmartinz/status_labels_check_emails_checkout
adds Status labels to check in and out emails
2024-07-30 09:41:05 -07:00
Godfrey M
eb6f330e67 adds status to check in and out 2024-07-30 09:38:39 -07:00
Godfrey M
f19899543d changed error to info 2024-07-30 09:18:17 -07:00
snipe
3a2611f8e1 Merge pull request #14565 from spencerrlongg/bug/sc-23936
Checks that custom fields exist before saving
2024-07-30 11:36:55 +01:00
Godfrey M
53ad312700 added missing closing bracket 2024-07-29 15:17:32 -07:00
Godfrey M
89d375daad add indents 2024-07-29 15:15:41 -07:00
Godfrey M
d46f9776fe remove text 2024-07-29 15:14:58 -07:00
Godfrey M
f9a47c8a9f adds a try catch 2024-07-29 15:12:48 -07:00
Godfrey M
e395ee1878 adds a try catch 2024-07-29 15:12:32 -07:00
snipe
4971c54b05 Fixed seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 20:17:25 +01:00
snipe
4c5b82ae37 Merge pull request #15188 from Godmartinz/1d_barcode_select_bug
Fixed 1d barcode targeting.
2024-07-29 20:00:21 +01:00
Spencer Long
fd7082c30f Merge branch 'develop' into bug/sc-23936 2024-07-29 14:00:00 -05:00
snipe
8d0b72293f Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-07-29 18:51:19 +01:00
snipe
f3d98f90c0 Add @arne-kroeger as a contributor 2024-07-29 18:51:12 +01:00
snipe
4eccb5ffc6 Merge pull request #15185 from arne-kroeger/feat/accesspories-checkout-to-location-or-asset
Added #14979: add checkout to location and assets functionality to accessories
2024-07-29 18:50:48 +01:00
Godfrey M
86049624c7 retargeted new label engine to correct 1d column 2024-07-29 10:42:26 -07:00
snipe
3972782033 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-07-29 18:27:56 +01:00
snipe
33b86057d1 Version bump
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 18:27:01 +01:00
arne-kroeger
3c3b922eae Adjusted newly added tests to new checkout form 2024-07-29 19:15:01 +02:00
arne-kroeger
e8d0147075 Adjusted missing down on migration and code smells 2024-07-29 19:04:10 +02:00
snipe
c2bcc2e2d9 Merge remote-tracking branch 'origin/develop' 2024-07-29 14:39:13 +01:00
snipe
55f9886412 Merge pull request #15187 from snipe/feature/sc-26458
Use the `pwd_secure_min` value (plus 5) for generated password
2024-07-29 14:38:39 +01:00
snipe
a77ece01a6 Fixed test name
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 14:34:10 +01:00
snipe
1c1101aeac Use the pwd_secure_min value (plus 5) for generated password
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 14:26:18 +01:00
snipe
de04ead55d Merge remote-tracking branch 'origin/develop' 2024-07-29 10:11:39 +01:00
snipe
bc18fac97e Fixed missing div
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 10:11:11 +01:00
arne-kroeger
3a0b03348e added additional tests 2024-07-29 11:06:36 +02:00
arne-kroeger
b18baf74d2 added options to checkout accessoires to locations and assets
Added #14979: add checkout functionality to accessoires
2024-07-29 10:54:53 +02:00
snipe
28c7355697 Fixed missing div
Signed-off-by: snipe <snipe@snipe.net>
2024-07-29 09:52:38 +01:00
snipe
0dd0baa511 Merge remote-tracking branch 'origin/develop' 2024-07-27 10:12:23 +01:00
snipe
c3a296c19f Added qr code back
Signed-off-by: snipe <snipe@snipe.net>
2024-07-27 10:12:13 +01:00
snipe
f6cc923e01 Merge remote-tracking branch 'origin/develop' 2024-07-26 17:29:46 +01:00
snipe
aab29fbb6b Use translated string for restore
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 16:47:40 +01:00
snipe
d9d3ff27ae Merge remote-tracking branch 'origin/develop' 2024-07-26 15:31:52 +01:00
snipe
614d05acb5 Merge pull request #15170 from uberbrady/simplify_css_skin_building
Dynamically iterate through the skin listing to build skins
2024-07-26 15:14:24 +01:00
snipe
e4a82edd3f Merge pull request #15172 from snipe/features/blade_component_for_submit
Use blade component for submit redirect on asset edit/create
2024-07-26 15:13:30 +01:00
snipe
eceaa72781 And more tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 15:07:43 +01:00
snipe
ddf45c5ee9 Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 15:00:16 +01:00
snipe
ff100c0b9f Added more tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 14:58:10 +01:00
snipe
037cc4d098 More tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 14:27:07 +01:00
snipe
ff6e6ef88c Added more tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 13:43:10 +01:00
snipe
e8ec11652f Very basic checkin tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 13:16:31 +01:00
snipe
cd7f276c40 Fixed logging for component
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 13:09:21 +01:00
snipe
fc8bb82a02 Made dropdown wider
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 12:48:18 +01:00
snipe
5d7f1f77a3 Added redirect to checkin/checkout controllers
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 12:48:07 +01:00
snipe
5dea3f4495 Added blade component to checkin/checkout pages
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 12:47:33 +01:00
snipe
c6e709cd36 Added parameters
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 12:45:06 +01:00
Brady Wetherington
daf5a80081 Use a similar loop for the minification step for CSS 2024-07-26 12:03:03 +01:00
snipe
759ab78f80 Added more redirects
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 11:27:36 +01:00
snipe
b6d9f736e3 Pulled use session
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 10:41:28 +01:00
snipe
243ab51def Fixed back button
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 10:40:48 +01:00
snipe
c5603a0e10 Merge remote-tracking branch 'origin/develop' 2024-07-26 10:26:23 +01:00
snipe
57f6ecb1da Added created_by to license view
Signed-off-by: snipe <snipe@snipe.net>
2024-07-26 10:24:13 +01:00
snipe
64082ada1e Updated test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 22:08:51 +01:00
snipe
068535a80c Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 22:08:46 +01:00
snipe
08f4fe5f35 Add status messages to redirect
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 22:02:34 +01:00
snipe
018b5684fc Refactor helper method for redirection
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 22:02:03 +01:00
snipe
73a80a5fbc Use blade component for redirect option
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 21:35:13 +01:00
Brady Wetherington
4c8bf9ae19 Dynamically iterate through the skin listing to build skins 2024-07-25 21:20:06 +01:00
snipe
f77d300549 Merge pull request #15169 from uberbrady/create_directories_when_needed_on_restore
Create intermediate directories on restore if needed - Fixes [SC-25950]
2024-07-25 18:45:54 +01:00
snipe
62655be2d0 Fixed BYOD label
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 18:41:37 +01:00
Brady Wetherington
eb938bdba3 Create intermediate directories on restore if needed 2024-07-25 18:40:26 +01:00
snipe
129d3b35fb Merge pull request #15168 from uberbrady/improve_restore_sanitization
Improve restore sanitization - Fixes [sc-24840]
2024-07-25 18:20:05 +01:00
Brady Wetherington
84df23e1f6 Better handle older SQL dumps that got created in Windows format 2024-07-25 18:07:25 +01:00
snipe
a439d8abe8 Use fully qualified use statements
Signed-off-by: snipe <snipe@snipe.net>
2024-07-25 16:08:46 +01:00
snipe
24b7659c23 Merge pull request #15150 from marcusmoore/chore/sc-26113
Registered custom anonymous blade component directory
2024-07-25 16:08:01 +01:00
Marcus Moore
44dbbeb608 Add accessory and consumable specific checkin methods 2024-07-24 14:17:49 -07:00
Marcus Moore
7161b6416e Add failing test for accessories and consumables checkin 2024-07-24 14:16:42 -07:00
snipe
1331bffaca Merge remote-tracking branch 'origin/develop' 2024-07-24 21:42:41 +01:00
snipe
9b422e5c97 Baremetrics BMPay breaks with CSP turned [sc-25011]
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 21:42:20 +01:00
snipe
0c86855392 Merge remote-tracking branch 'origin/develop' 2024-07-24 21:04:20 +01:00
snipe
962ae5231d Merge pull request #15162 from snipe/fixes/added_location_assets_endpoint
Added assets endpoint for locations
2024-07-24 21:03:43 +01:00
snipe
590d13061a One more test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:57:26 +01:00
snipe
c3a2cdeee9 Added assets endpoint for locations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:53:58 +01:00
snipe
ef77fb91c0 Merge remote-tracking branch 'origin/develop' 2024-07-24 20:20:37 +01:00
snipe
02bd8d7ea1 Merge pull request #15161 from snipe/fixes/500_when_depreciation_is_active_but_no_purchase_date
Fixes 500 when depreciation is active but no purchase date
2024-07-24 20:20:10 +01:00
snipe
da4ec145d7 Removed test no longer needed due to validation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:17:30 +01:00
snipe
ef145e47b4 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:13:15 +01:00
snipe
adf58a06da Added check for purchase date
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:13:11 +01:00
snipe
63f0b5279d Added check for purchase_date
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 20:13:01 +01:00
Godfrey Martinez
c96ccbb6cb Merge branch 'develop' into depreciation_percentage 2024-07-24 12:12:28 -07:00
Godfrey M
950fff31ed fix conflicts 2024-07-24 12:12:04 -07:00
Godfrey M
f05d8281f3 fixes alignment for error msg 2024-07-24 12:06:56 -07:00
Godfrey M
d5c9fa823e adds translations 2024-07-24 11:39:33 -07:00
Godfrey M
99741db645 adds status labels to confirmation emails 2024-07-24 11:24:30 -07:00
snipe
90d5a6d8ab Merge remote-tracking branch 'origin/develop' 2024-07-24 19:16:56 +01:00
snipe
5b8529bc83 Fixed pluralization
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 19:16:08 +01:00
snipe
f76c68f0ed Merge remote-tracking branch 'origin/develop' 2024-07-24 18:10:23 +01:00
snipe
8368fb5c41 Merge pull request #15160 from snipe/fixes/allow_cloning_of_deleted_assets
Allow cloning of deleted assets
2024-07-24 18:09:55 +01:00
snipe
d1c39a737f Fixed double semicolon
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 18:09:32 +01:00
snipe
425bfa4318 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 18:06:21 +01:00
snipe
293abbd1d0 Allow cloning of deleted assets
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 17:49:38 +01:00
snipe
b64b774bd5 Use route model binding on clone, removed unneeded route
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 17:49:21 +01:00
snipe
466ab1e3c0 Removed the banner since we already warn
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 17:40:24 +01:00
snipe
daa9e7810e Merge pull request #15158 from snipe/fixes/ui_cleanup_for_asset_view
Cleaned up UI on asset view
2024-07-24 17:34:17 +01:00
snipe
95a0f3dbe5 Cleaned up UI on asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 17:26:55 +01:00
Brady Wetherington
bb465dbfaa Cut down run number to 100 from 1000 2024-07-24 15:09:23 +01:00
snipe
e5ab12496f Merge pull request #15151 from snipe/snyk-fix-067da5564c4d29b025cd356b125e6ad9
[Snyk] Security upgrade alpine from 3.18.6 to 3.19
2024-07-24 14:22:57 +01:00
snipe
4b906e39be Merge pull request #15155 from snipe/fix_new_alpine
Switch dockerfile to using php8.2 instead of 8.1 due to Alpine changes
2024-07-24 14:00:21 +01:00
Brady Wetherington
0dc8f27240 Switch dockerfile to using php8.2 instead of 8.1 due to Alpine changes 2024-07-24 13:56:27 +01:00
Brady Wetherington
8cbcc237c0 Cleanup of Stale workflow for GH - set to debug-mode to start 2024-07-24 13:27:31 +01:00
snipe
c4135c71d4 Merge remote-tracking branch 'origin/develop' 2024-07-24 13:05:16 +01:00
snipe
172da4d655 Merge pull request #15154 from snipe/fixes/15103_show_eol_to_users
Fixes #15103 - Added EOL and audit into to user profile assets
2024-07-24 13:03:50 +01:00
snipe
6f8ccd4e10 Fixes #15103 - Added EOL and audit into to user profile assets
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 12:54:33 +01:00
snipe
8d36a75342 Merge remote-tracking branch 'origin/develop' 2024-07-24 12:41:20 +01:00
snipe
9457e5b890 Merge pull request #15153 from snipe/fixes/mail_backup_config
Fixed env var for backup config - related to #14964
2024-07-24 12:40:46 +01:00
snipe
bce7a278ae Fixed env var for backup config - related to #14964
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 12:38:58 +01:00
Brady Wetherington
97e3af8fc9 WIP on new GitHub-backed stalebot settings 2024-07-24 12:33:26 +01:00
Brady Wetherington
914e29210a Initial rough stab at re-implementing stalebot 2024-07-24 12:33:26 +01:00
snipe
a6041ae525 Merge remote-tracking branch 'origin/develop' 2024-07-24 10:41:36 +01:00
snipe
ab1e097b7c Early return for requiredness
Signed-off-by: snipe <snipe@snipe.net>
2024-07-24 10:41:14 +01:00
snipe
a781f84aea Merge remote-tracking branch 'origin/develop' 2024-07-24 10:36:23 +01:00
snipe
90a2a808d6 Merge pull request #15149 from spencerrlongg/bug/check_requiredness
Fixed: Requiredness Check Bug
2024-07-24 10:33:45 +01:00
snipe
73e2d8e305 Merge remote-tracking branch 'origin/develop' 2024-07-24 10:32:54 +01:00
snyk-bot
0e1e13f54a fix: Dockerfile.alpine to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-6913411
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249236
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249265
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249419
- https://snyk.io/vuln/SNYK-ALPINE318-BUSYBOX-7249419
2024-07-24 09:11:01 +00:00
Marcus Moore
869c06f454 Register anonymous blade component namespace 2024-07-23 15:41:58 -07:00
spencerrlongg
b61ab423ca ok NOW it should be fine 2024-07-23 17:35:48 -05:00
spencerrlongg
090a595c99 conflict 2024-07-23 17:34:17 -05:00
Spencer Long
bc417308c7 Merge branch 'develop' into bug/check_requiredness 2024-07-23 17:32:43 -05:00
spencerrlongg
e77e16b9aa this works 2024-07-23 17:22:20 -05:00
spencerrlongg
0ae297634e ugh 2024-07-23 16:59:58 -05:00
spencerrlongg
0f2f559d7a test works, helper still needs work. pushing to check something 2024-07-23 16:46:29 -05:00
snipe
57b5b12952 Merge pull request #15148 from marcusmoore/fixes/dates-in-user-import
Fixed start_date and end_date in user importer
2024-07-23 22:37:19 +01:00
snipe
9baaaae1a3 Merge remote-tracking branch 'origin/develop' 2024-07-23 22:15:57 +01:00
snipe
1f4118a146 Fixed rule
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 22:15:37 +01:00
Marcus Moore
f4a3823d88 Handle empty strings for dates by converting them to null 2024-07-23 13:57:28 -07:00
snipe
b2a69efc9d Merge remote-tracking branch 'origin/develop' 2024-07-23 21:42:12 +01:00
snipe
00ebc8b64d Merge pull request #15136 from snipe/fixes/cookie_serialization
Remove cookie serialization
2024-07-23 21:41:44 +01:00
snipe
effd273245 Merge pull request #14458 from spencerrlongg/bug/sc-24884
Add Form Request and Tests for Update Asset API Method
2024-07-23 20:57:47 +01:00
snipe
7858c72b98 Fixed string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 20:45:12 +01:00
snipe
09e2c0beab Merge pull request #15147 from uberbrady/fix_setup_ssl_check
Fix setup ssl check
2024-07-23 20:32:13 +01:00
spencerrlongg
e8864ffb01 test added, permission fixed 2024-07-23 14:29:17 -05:00
Brady Wetherington
d893de2b7e Merge branch 'develop' into fix_setup_ssl_check 2024-07-23 20:24:38 +01:00
Brady Wetherington
7f7cfef81b Mark test as Incomplete, and downgrade error back to debug for tests 2024-07-23 20:24:05 +01:00
Godfrey M
d01972bbe5 adds tests for amount and percent 2024-07-23 11:53:59 -07:00
spencerrlongg
b9fdb5880a quick push 2024-07-23 13:48:43 -05:00
spencerrlongg
1139ed676a $id to $asset->id (thanks tests) 2024-07-23 13:03:25 -05:00
Spencer Long
64be353156 Merge branch 'develop' into bug/sc-24884 2024-07-23 12:55:19 -05:00
Godfrey M
750015684d purges user storage files 2024-07-23 10:42:50 -07:00
snipe
992d16664d Merge remote-tracking branch 'origin/develop' 2024-07-23 18:26:54 +01:00
snipe
900c19b76d Merge pull request #15143 from snipe/fixes/no-NO-language
Switch to nb-NO from no-NO for Norwegian
2024-07-23 18:25:27 +01:00
snipe
effd2bce24 Fixed test to use nb-NO
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 18:22:13 +01:00
snipe
de8816d837 Merge pull request #15144 from snipe/localization/updated_strings_2024_07_23
Updated translations
2024-07-23 18:17:45 +01:00
snipe
593554daed Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 18:14:19 +01:00
snipe
fecd877e8b Migration
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 17:35:06 +01:00
snipe
ba6d8ae8c7 Switch to nb-NO from no-NO
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 17:15:44 +01:00
snipe
175862d3c9 Added route param to message
Signed-off-by: snipe <snipe@snipe.net>
2024-07-23 16:37:01 +01:00
Brady Wetherington
5eea08088d Improve .env file checking to not validate SSL certificates 2024-07-23 16:03:02 +01:00
snipe
c752c2a125 Make the passport cookie name configurable
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 14:22:19 +01:00
snipe
4ac4f9b0a9 Customize cookie name
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 14:17:16 +01:00
snipe
09abcb44bb Remove cookie serialization
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 13:49:47 +01:00
snipe
7f566b9152 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-07-22 10:56:37 +01:00
snipe
30835fe9ba Merge pull request #15134 from snipe/upgrade_bs_table
[Snyk] Upgrade bootstrap-table from 1.22.5 to 1.23.0 #15131
2024-07-22 10:50:53 +01:00
snipe
910e98b573 [Snyk] Upgrade bootstrap-table from 1.22.5 to 1.23.0 #15131
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 10:45:35 +01:00
snipe
4623e40077 Merge pull request #15133 from snipe/fixes/load_english_separately_for_table_locale
Load the english file again in case BS table doesn’t have a translation
2024-07-22 10:40:01 +01:00
snipe
20868b9ede Load the english file again in case BS table doesn’t have a translation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 10:30:42 +01:00
snipe
efc84efabf Merge pull request #15132 from snipe/fixes/disable_remote_login_force_via_env
Hides the “Disable Other Login Mechanisms” option via env
2024-07-22 10:20:34 +01:00
snipe
7c7fa96334 Pulled from the app.php as well
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 10:19:55 +01:00
snipe
e08acb851c Removed env part, just check for the remote user login
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 10:18:33 +01:00
snipe
bbad84c6cc Hides the “Disable Other Login Mechanisms” option via env
Signed-off-by: snipe <snipe@snipe.net>
2024-07-22 10:13:59 +01:00
snipe
f2acb98afa Merge pull request #15128 from snipe/fixes/nicer_consumables_layout
Nicer consumables layout
2024-07-20 17:01:15 +01:00
snipe
38affea3f3 More updates
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 16:57:10 +01:00
snipe
cea31c5b11 Added more generic buttons with variables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 16:53:01 +01:00
snipe
254e2f120b Added clone to consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 16:40:32 +01:00
snipe
2bfee0c29a Few more tweaks
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 16:21:11 +01:00
snipe
c08bd8f88b Nicer consumables layout
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 16:11:45 +01:00
snipe
9818c2f033 Merge remote-tracking branch 'origin/develop' 2024-07-20 08:08:51 +01:00
snipe
f63fd25ce0 Fixed default
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 08:08:29 +01:00
snipe
57ecdd6765 Merge remote-tracking branch 'origin/develop' 2024-07-20 07:43:37 +01:00
snipe
9d890b35c6 Merge pull request #15127 from snipe/fixes/small_default_avatar_tweaks
Fixes #15076 - Removes ability to remove the default avatar from disk
2024-07-20 07:42:39 +01:00
snipe
8fc5c0b5be Use other default avatar, not in the avatars directory
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 07:34:40 +01:00
snipe
c4e7448d31 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 07:25:56 +01:00
snipe
ffd2687734 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 07:25:46 +01:00
snipe
6f3eedf5e6 Removed restoreDefaultAvatar method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 07:25:27 +01:00
snipe
241eb7b031 One more bad sig
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 06:06:27 +01:00
snipe
ca399794c3 Fixed incorrect signature
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 06:05:01 +01:00
snipe
736d4cc59a Use new deleting method in ImageUploadRequest
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 05:55:34 +01:00
snipe
ad85f8be2f Cleaned up
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 05:55:12 +01:00
snipe
be17ef4047 Added option to restore from default demo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 05:55:06 +01:00
snipe
c6c006f143 Added restore from demo method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 05:54:40 +01:00
snipe
10856516ac Split out the image deletion into a separate method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 03:40:16 +01:00
snipe
beac4c8b8a Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 03:39:54 +01:00
snipe
b39b39bc8a Ignore the test uploads directory
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 03:39:05 +01:00
snipe
e373be7dde Skip deleting default avatar from disk on delete
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 01:01:27 +01:00
snipe
ca7c0aa47c Added default avatar to seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 00:59:25 +01:00
snipe
48a8cf6b70 Removed unused default avatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 00:58:57 +01:00
snipe
7ba1646703 Remove unusued default avatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 00:58:42 +01:00
snipe
daa550cc82 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-07-20 00:31:08 +01:00
snipe
e9f9d3c259 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 00:30:03 +01:00
snipe
63377853b8 Merge pull request #15125 from snipe/fixes/display_avatar_on_user_edit
Show existing images on user edit page
2024-07-20 00:29:28 +01:00
snipe
fc86eefeac Show existing images on user edit page
Signed-off-by: snipe <snipe@snipe.net>
2024-07-20 00:27:28 +01:00
snipe
a98ad76c6a Merge remote-tracking branch 'origin/develop' 2024-07-19 22:55:09 +01:00
snipe
32c768792a Merge pull request #15124 from snipe/fixes/path_for_crypt_in_importer
Fixed use statement for Crypt in the importer, removed unused statements
2024-07-19 22:54:18 +01:00
snipe
793cf27318 Fixed use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 22:50:24 +01:00
snipe
ba568b7975 Merge pull request #15123 from snipe/tests/added_bulk_delete_assets
Added tests for bulk asset deletion and restore
2024-07-19 22:36:09 +01:00
snipe
4b5bd76225 Fixed notification use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 22:27:03 +01:00
snipe
a54403ef01 Added bulk asset delete test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 22:26:52 +01:00
snipe
13262c5125 Merge remote-tracking branch 'origin/develop' 2024-07-19 20:05:47 +01:00
snipe
9ea38fbb3a Merge pull request #15122 from snipe/fixes/15121_bulk_delete_and_restore
Fixed #15121 - bulk delete restore logging
2024-07-19 20:03:32 +01:00
snipe
94619e3284 Fixed #15121 - bulk delete restore logging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 19:56:58 +01:00
snipe
8b05ef6db4 Updated url checks
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 19:48:03 +01:00
snipe
8e03083b83 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-07-19 19:07:53 +01:00
snipe
dc2debcd83 Add @DrekiDegga as a contributor 2024-07-19 19:07:41 +01:00
snipe
b7ab8b9e8f Merge pull request #14530 from DrekiDegga/develop
Added #14426: Makes all Manufacturer links dynamic, not just warranty lookup
2024-07-19 19:07:25 +01:00
snipe
c50ab1af67 Merge branch 'develop' into develop 2024-07-19 19:00:56 +01:00
snipe
7773d334ba Merge pull request #15120 from snipe/updated_localizations
Updated strings
2024-07-19 17:54:30 +01:00
snipe
2a0697022e Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-19 17:47:22 +01:00
Marcus Moore
8d1cc22c58 Turn on legacy binding since other components still use it 2024-07-18 12:00:01 -07:00
snipe
e1eb963962 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 19:11:51 +01:00
snipe
87c2dc5bb5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-07-18 19:11:41 +01:00
snipe
06efcd3c46 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-07-18 18:55:18 +01:00
snipe
faa791e94c Merge pull request #15101 from snipe/localizations/more_strings
More localizations
2024-07-18 18:51:35 +01:00
snipe
e328dec9f9 Merge branch 'develop' into localizations/more_strings 2024-07-18 18:51:17 +01:00
snipe
8e60a7b22b Merge pull request #15110 from marcusmoore/fixes/test-namespace-fixes
Fixed a coupled test namespaces
2024-07-18 18:50:27 +01:00
snipe
958b6035e1 Add @r-xyz as a contributor 2024-07-18 18:49:59 +01:00
snipe
94e0739a74 Merge pull request #15115 from r-xyz/alpine-upload-limit
Improved Docker environment settings: implement `PHP_UPLOAD_LIMIT` for Alpine images
2024-07-18 18:49:00 +01:00
snipe
4465aef991 Merge pull request #15114 from snipe/checkout_multiple_accessories
Checkout multiple of an accessory in one checkout
2024-07-18 17:38:19 +01:00
snipe
822bc6f085 Removed response in form request
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 17:37:45 +01:00
snipe
19bd99d159 Updated count
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 17:33:24 +01:00
r-xyz
5c17fefb08 Implement PHP_UPLOAD_LIMIT in Alpine images. 2024-07-18 11:54:58 +02:00
snipe
ee589ca112 Merge pull request #15088 from mauro-miatello/develop
Added EULAs in print user's assets
2024-07-18 09:09:34 +01:00
snipe
f984b45de2 Merge branch 'develop' into checkout_multiple_accessories 2024-07-18 05:11:51 +01:00
snipe
d56252c6b3 Added more back :(
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 05:10:45 +01:00
snipe
44b950cb8e Added back in missing validation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 05:07:50 +01:00
snipe
985714d504 Test passing now - I hope
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 05:04:17 +01:00
snipe
97ead7120e Use from routes for posting
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 04:54:07 +01:00
snipe
670021a482 Apply the optimize fix
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 04:43:46 +01:00
snipe
9858cc5baf Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 04:43:30 +01:00
snipe
fa5b59cf21 Added qty
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 04:29:49 +01:00
snipe
0ef58a9aef Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 03:48:42 +01:00
snipe
0c4e498df3 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 03:48:35 +01:00
snipe
b5b60f22d5 Removed int
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 03:48:21 +01:00
snipe
2f0c74aef0 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 03:48:06 +01:00
snipe
f56006fb6b More refactoring
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 01:46:53 +01:00
Marcus Moore
7685de45f2 Turn off legacy binding 2024-07-17 17:12:14 -07:00
Marcus Moore
199e68ff29 Simplify computed propery 2024-07-17 17:10:12 -07:00
Marcus Moore
81bffccf01 Use better error message 2024-07-17 16:28:26 -07:00
snipe
79a13e3618 Added numCheckedOut method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:26:58 +01:00
snipe
d9b7df5b85 Added form requests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:26:42 +01:00
snipe
0c933bcc5d Cleaned up controllers, use form requests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:25:42 +01:00
snipe
4c4b0f722a Added qty to email notification
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:25:29 +01:00
snipe
6c3cafa72f Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:25:07 +01:00
snipe
16ae23dbeb Updated validation strings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:25:00 +01:00
snipe
4f3064bdb1 Added store accesstory form request
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:24:51 +01:00
snipe
2b0627c1f6 Added accessory checkout request
Signed-off-by: snipe <snipe@snipe.net>
2024-07-18 00:24:28 +01:00
Marcus Moore
cfca1514c0 Swap file_id for activeFileId 2024-07-17 16:22:44 -07:00
snipe
345a4306e8 Added SubstituteBindings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-17 23:02:10 +01:00
snipe
beb0836d69 Updated route
Signed-off-by: snipe <snipe@snipe.net>
2024-07-17 23:01:44 +01:00
Marcus Moore
b4ed01243b Add more details 2024-07-17 13:40:41 -07:00
Marcus Moore
3772a21a51 Move comment up 2024-07-17 13:37:24 -07:00
snipe
1eb16cdb02 Merge pull request #15111 from marcusmoore/fixes/optimize-test
Undo `optimize` command in test after it is completed
2024-07-17 21:03:01 +01:00
snipe
05e278d08b Added qty to email
Signed-off-by: snipe <snipe@snipe.net>
2024-07-17 20:58:21 +01:00
snipe
c21821a864 Added new form fields
Signed-off-by: snipe <snipe@snipe.net>
2024-07-17 20:58:12 +01:00
Marcus Moore
a56f3f85f8 Clear the config and route caching done by optimize command after test 2024-07-17 12:21:46 -07:00
Marcus Moore
ba13b9924b Fix test namespaces 2024-07-17 11:04:35 -07:00
Marcus Moore
04b6cb763f Add todo 2024-07-17 10:58:48 -07:00
snipe
239824681d Merge pull request #15075 from akemidx/checkintranslation
FIXED: Missing Translation on a Tooltip
2024-07-17 18:16:02 +01:00
snipe
0ac82fbbe1 Merge pull request #15084 from snipe/fixes_ldap_sync_locale
Fixes #15067 - updated ldap sync locale to use `app()->getLocale()`
2024-07-17 18:15:32 +01:00
snipe
8c5a9fa38f Merge pull request #15089 from snipe/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.5
Bump codacy/codacy-analysis-cli-action from 4.4.1 to 4.4.5
2024-07-17 16:47:28 +01:00
snipe
2f8306cba8 Merge remote-tracking branch 'origin/develop' 2024-07-17 16:27:16 +01:00
Godfrey M
baa7e7d561 clean up 2024-07-16 20:27:38 -07:00
Godfrey M
ffaacc04ef cleaned up calculateDepreciation method 2024-07-16 20:24:18 -07:00
Marcus Moore
dd32341502 Display message if attempting to delete non-existent file 2024-07-16 17:21:18 -07:00
Marcus Moore
f58e3114a2 Simplify destroy method and update list 2024-07-16 17:17:45 -07:00
Marcus Moore
eba494ad8c Make $activeFile a computed property 2024-07-16 17:03:42 -07:00
Marcus Moore
7e89b58746 Move files to computed property 2024-07-16 16:08:42 -07:00
Marcus Moore
b7744105a0 Migrate import type to component 2024-07-16 14:20:41 -07:00
snipe
65dcb2a9bd Merge pull request #15085 from snipe/small_tweaks_to_oauth_page
Small layout tweaks to oauth page
2024-07-16 21:36:17 +01:00
snipe
d5e1dc54c6 Use translated strings for action log meta
This is only partially complete and I mostly hate it

Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:35:45 +01:00
Marcus Moore
69263f0e5b Migrate header row to component 2024-07-16 13:30:29 -07:00
snipe
a3b2912e89 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:16:23 +01:00
snipe
7f412ec3f5 Missing string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:14:41 +01:00
snipe
94e881e5f0 Cleared up language
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:11:03 +01:00
Godfrey M
5bb47e290f validates percentage on store and new depreciations 2024-07-16 13:07:12 -07:00
snipe
d53a032402 More consistent UI for indented checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:07:03 +01:00
snipe
70d95877d8 Translations for license checkout errors
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 21:02:58 +01:00
Godfrey M
48821f8391 updates transformer, api controller 2024-07-16 12:58:23 -07:00
snipe
bb00edda4e Added basic jquery validation translations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 20:54:48 +01:00
Godfrey M
aaa2858337 battling with handling depreciation percentage and amount 2024-07-16 12:25:19 -07:00
Marcus Moore
017530ba4b Make updating hook more specific 2024-07-16 12:02:50 -07:00
snipe
4895023f3b Translate import button
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 19:56:02 +01:00
snipe
0ed637f0ce Translate importer header
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 19:41:47 +01:00
snipe
45bf428092 Translated “seat” for license seat view
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 19:04:51 +01:00
snipe
e6f2c457a8 Handle localization better, clearer indenting on addresses
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 19:01:50 +01:00
snipe
04f723327e Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 19:01:23 +01:00
snipe
4a9bd95ed3 Added language support for select2
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 18:40:10 +01:00
snipe
78bd950daa Added select2 language files
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 18:39:42 +01:00
snipe
d3070a0be1 Merge remote-tracking branch 'origin/develop' 2024-07-16 17:24:16 +01:00
snipe
a0d461d3e2 Merge pull request #15099 from snipe/fixes/15094_wrong_translation_string
Fixed #15094 - wrong translation string for model on checkout
2024-07-16 17:23:46 +01:00
snipe
eb9e276ba7 Fixed #15094 - wrong translation string for model on checkout
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 17:14:13 +01:00
snipe
0a70bcc0a9 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	CONTRIBUTORS.md
2024-07-16 16:12:26 +01:00
snipe
35160f88e0 Corrected return type
Signed-off-by: snipe <snipe@snipe.net>
2024-07-16 16:09:08 +01:00
Marcus Moore
c8dad528a8 Migrate a couple items out of mount 2024-07-15 16:15:58 -07:00
Marcus Moore
256e989ba1 Add test for importer 2024-07-15 15:49:18 -07:00
Timo Schwarzer
a2ff8f9609 Add Department Manager to single and multiple user views 2024-07-15 12:27:29 +02:00
dependabot[bot]
0ddb447c4c Bump codacy/codacy-analysis-cli-action from 4.4.1 to 4.4.5
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.4.1 to 4.4.5.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.4.1...v4.4.5)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 08:39:24 +00:00
MrM
e49c96a35e Added EULAs in print user's assets
Added EULAs when we want to print all assets assigned to a users and ask him/her to sign.
2024-07-14 19:10:33 +02:00
snipe
2d1aeca949 Re-use existing string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 18:24:56 +01:00
snipe
e06e4db4b7 Small layout tweaks to oauth page
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 18:16:03 +01:00
snipe
51242fcbb2 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-07-13 16:09:03 +01:00
snipe
99be9ddb47 Add @dbakan as a contributor 2024-07-13 16:08:56 +01:00
snipe
be4317361d Merge pull request #15082 from dbakan/fix/optimize-command
Fixed #10224: fix route names for optimize command
2024-07-13 16:08:32 +01:00
Daniel Albertsen
a175b6a38b fix routes and tests 2024-07-13 16:36:14 +02:00
Daniel Albertsen
431da6c903 add test to ensure artisan optimize works 2024-07-13 16:36:14 +02:00
snipe
ab6b8f520e Fixed field name
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 15:25:37 +01:00
snipe
24e58d1455 Do not update users who already exist since that locale may have been overirrden manually
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 15:20:04 +01:00
snipe
f91ad6b2db Use app()->getLocale() to determine imported user’s language
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 15:15:44 +01:00
snipe
eed253bd2f Use app helped instead of facade
Signed-off-by: snipe <snipe@snipe.net>
2024-07-13 15:15:18 +01:00
snipe
b68fcf1de5 Added unaccepted asset test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-12 12:19:40 +01:00
snipe
39810f9ba5 Merge remote-tracking branch 'origin/develop' 2024-07-12 11:05:10 +01:00
snipe
d21ebc6f0d Fixed return type
Signed-off-by: snipe <snipe@snipe.net>
2024-07-12 11:04:56 +01:00
akemidx
ad818cf886 missing translation 2024-07-11 17:13:47 -04:00
Marcus Moore
9793016603 Remove unneeded AuthorizesRequests 2024-07-11 13:32:16 -07:00
Marcus Moore
9e06f2d17f Remove commented code 2024-07-11 13:22:10 -07:00
snipe
fb7d533ff7 Merge pull request #15073 from marcusmoore/feature/livewire-url-prefix
Allow setting a prefix for Livewire's update and asset urls
2024-07-11 21:04:50 +01:00
Marcus Moore
9dd3827222 Allow setting a prefix for Livewire's update and asset urls 2024-07-11 12:43:29 -07:00
snipe
5697370dfe Merge pull request #14722 from Godmartinz/unaccepted_reminder_command
Adds a command to resend acceptance emails
2024-07-11 20:37:04 +01:00
snipe
7464c3622e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-07-11 19:07:54 +01:00
snipe
5132aa0254 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 19:07:30 +01:00
Godfrey M
d4d19569ee adds execution timer 2024-07-11 10:52:47 -07:00
snipe
1a541ce220 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	CONTRIBUTORS.md
2024-07-11 18:38:57 +01:00
Godfrey M
43c7504f89 adds an all option, adds help context for all, seperates logic 2024-07-11 10:03:51 -07:00
snipe
aebe96913a Add @FlorentDotMe as a contributor 2024-07-11 17:31:20 +01:00
snipe
78d24eb451 Merge pull request #15069 from TelecomsSansFrontieres/fix_print-all-assets
Fixed inconsistent attributes order in Print All Assigned report
2024-07-11 17:30:41 +01:00
snipe
c5c5ac58e5 Merge pull request #15071 from snipe/fixes/small_consumables_optimizations
Small consumables optimizations
2024-07-11 17:27:41 +01:00
snipe
1527679f4b Handle deletions on the observer
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 17:26:43 +01:00
snipe
c2fe3b5459 Use the observer to delete associated files and detach users
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 17:00:38 +01:00
snipe
d4a66f9b6c Use better icon for deleting
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 17:00:12 +01:00
snipe
23f1489b2b Added history tab
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:46:49 +01:00
snipe
5108b1f3ed Capture the log meta for what was changed
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:35:16 +01:00
snipe
58bc84436c Fixed incorrect jquery validation class
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:23:05 +01:00
snipe
2415408a50 Prevent ludicrious amount of min_qty
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:22:41 +01:00
snipe
00d7b36c36 Eager load suppliers
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:22:22 +01:00
snipe
67d6f7119d Prevent a ludicrous amount of consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:22:04 +01:00
snipe
42dbc894e0 Better handle numRemaining for consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:21:45 +01:00
snipe
94bfe7d9c8 Require the user exists
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:18:42 +01:00
snipe
d9a114090b Added buttons
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:18:33 +01:00
snipe
b10441c928 Detach associated pivot records
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:01:18 +01:00
snipe
e123eeea9e Added error message if category type is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:00:20 +01:00
snipe
9676d934d2 Drop the with users on the create checkout screen
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 16:00:08 +01:00
snipe
759bb822ff Make sure the user exists
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:59:18 +01:00
snipe
abd79219dd Use form request to check for valid category
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:26:24 +01:00
snipe
2b5463475c Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:25:26 +01:00
snipe
a7a1a377da Added form request for consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:25:07 +01:00
snipe
a6b2f5df1d Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:24:56 +01:00
snipe
da2b64c96d Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:24:08 +01:00
snipe
9e9b07f10f Removed duplicate status check
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:23:59 +01:00
snipe
82743abadc Cleans up the consumables index controller
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 14:15:18 +01:00
snipe
c1937b6ea8 Merge remote-tracking branch 'origin/develop' 2024-07-11 12:01:28 +01:00
snipe
498a443230 Derp
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 12:01:06 +01:00
snipe
7584c30722 Merge remote-tracking branch 'origin/develop' 2024-07-11 12:00:25 +01:00
snipe
34b49ef079 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 11:59:47 +01:00
Florent Bervas
d9a53460ff Fix design inconsistency between assets and assigned assets in Print All Assigned report 2024-07-11 09:41:58 +00:00
snipe
62f4b75156 Merge remote-tracking branch 'origin/develop' 2024-07-11 10:08:25 +01:00
snipe
5364838fc0 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-07-11 10:08:10 +01:00
snipe
8be44f9cf2 Check for time until depreciated
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 10:07:58 +01:00
snipe
68136ea217 Merge pull request #15052 from snipe/jerm/handle-windows-ca-jank-in-upgrade-script
upgrade.php: If we're on windows, make sure we can load intermediate certificates
2024-07-11 09:11:37 +01:00
Godfrey M
1fa6a763bc updated description 2024-07-10 11:09:57 -07:00
Godfrey M
726308bfd5 removed typo 2024-07-10 10:58:45 -07:00
Godfrey M
22ddb695f2 better description 2024-07-10 10:57:47 -07:00
Godfrey M
09b2feac54 updates assets with selected model to inherit asset model eol 2024-07-10 10:56:44 -07:00
Godfrey M
57e1df86c8 finds model and collects assets with such model 2024-07-10 10:21:24 -07:00
snipe
3d5b1b6c6d Merge remote-tracking branch 'origin/develop' 2024-07-10 17:09:56 +01:00
snipe
ec063b4af5 Updated PHP min version
Signed-off-by: snipe <snipe@snipe.net>
2024-07-10 17:07:44 +01:00
snipe
bfa42ff84a Merge pull request #15051 from snipe/jerm/add-upgrade-script-debugging
upgrade.php: More helpful output when we can't read .upgrade_requirements.json
2024-07-10 16:51:30 +01:00
snipe
5f4ee39f2b Merge remote-tracking branch 'origin/develop' 2024-07-10 16:13:00 +01:00
snipe
22aca1af53 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-10 16:12:20 +01:00
snipe
45d7e2dc42 Merge remote-tracking branch 'origin/develop' 2024-07-10 08:56:29 +01:00
snipe
71a5d07698 Fixes #15056 - only try to load avatars if one exists or default is set
Signed-off-by: snipe <snipe@snipe.net>
2024-07-10 08:56:14 +01:00
snipe
fb10c1439a Merge pull request #15057 from spencerrlongg/bug/sc-23212-2
Fixes Potential Exception
2024-07-10 08:27:59 +01:00
snipe
c58c592fb0 Merge pull request #15059 from Godmartinz/export_options
Fixed missing print user assigned filter
2024-07-10 08:25:24 +01:00
spencerrlongg
6932a63217 make some naming a little clearer 2024-07-09 16:32:44 -05:00
snipe
18f7ca860d Merge remote-tracking branch 'origin/develop' 2024-07-09 19:52:20 +01:00
snipe
1a1ccd6bdc Type constrains one more time - who thought this was a good idea?
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 19:50:58 +01:00
Godfrey M
624632d0ca removed push and endpush 2024-07-09 11:41:31 -07:00
spencerrlongg
66255291da test working 2024-07-09 11:13:06 -05:00
spencerrlongg
33b2c7b78a push so i can do something else 2024-07-09 10:35:16 -05:00
snipe
ea881ff95e Merge remote-tracking branch 'origin/develop' 2024-07-09 13:42:03 +01:00
snipe
34e1ff88db Added StreamedResponse
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 13:41:50 +01:00
snipe
c1916d6fe4 Merge remote-tracking branch 'origin/develop' 2024-07-09 13:39:07 +01:00
snipe
f4ffbcf76e Fixed wonky layout on accessory files
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 13:38:50 +01:00
snipe
da9932d147 Merge remote-tracking branch 'origin/develop' 2024-07-09 13:36:06 +01:00
snipe
8a547dab20 Fixed type constraint
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 13:35:57 +01:00
snipe
14fa5d778d Merge pull request #15055 from snipe/more_translations
Fixed API key missing translations
2024-07-09 13:19:46 +01:00
snipe
5597992d63 Fixed API key missing translations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 13:17:46 +01:00
snipe
da42127a7c Merge remote-tracking branch 'origin/develop' 2024-07-09 11:54:17 +01:00
snipe
595408d21f On more binaryfile response
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 11:54:07 +01:00
snipe
090410edb5 Merge remote-tracking branch 'origin/develop' 2024-07-09 11:48:30 +01:00
snipe
491a0f3959 One more typehint
Signed-off-by: snipe <snipe@snipe.net>
2024-07-09 11:47:53 +01:00
Jeremy Price
c8fe002688 upgrade.php: If we're on windows, make sure we can load intermediate certificates
According to https://github.com/curl/curl/issues/12155 and 2d6333101a

Some corporate Windows proxy (mis)configurations don't pass along
intermediate certificates in their TLS handshakes, breaking lots of
things that don't work around it.

This creates a problem in our curl calls when checking for
.upgrade_requirements.json, and seems to be the source of errors for a
few of our users: https://github.com/snipe/snipe-it/issues/14826#issuecomment-2197611342

In this change, we detect when running on windows environments and load
the curl option that works around this.
2024-07-08 22:13:14 -07:00
Jeremy Price
25fabcc1be More helpful output when we can't read .upgrade_requirements.json
Handle json decode errors and display the raw output in such cases, to
better understand what's happening and help debugging
2024-07-08 22:12:09 -07:00
snipe
43d4bc8dc4 Merge remote-tracking branch 'origin/develop' 2024-07-08 22:13:19 +01:00
snipe
09cc9b92d1 Fixed #15050 - erroneous deleted remark
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 22:13:07 +01:00
snipe
ebcc48ec80 Merge remote-tracking branch 'origin/develop' 2024-07-08 22:02:25 +01:00
snipe
bf060d43a7 Fixed typehint on assets controller
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 22:02:11 +01:00
snipe
9b838cedd1 Fixed typehint on asset model files
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 22:00:45 +01:00
snipe
5ca62f3ef8 Merge remote-tracking branch 'origin/develop' 2024-07-08 21:39:31 +01:00
snipe
abf194fbcf Added default avatar into repo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 21:38:25 +01:00
snipe
211f98e971 Revert
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 21:38:03 +01:00
snipe
7f1931af9c Grr
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 21:37:17 +01:00
snipe
7dcb45d7f3 Skip default.png as default
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 21:33:56 +01:00
spencerrlongg
8650923b01 new branch cuz test merge 2024-07-08 12:55:59 -05:00
snipe
9c304f238a Merge pull request #15029 from snipe/fixes/small_docblock_fixes
General cleanup - Docblock fixes, adding type hinting, added tests, added asset model form validator
2024-07-08 17:43:50 +01:00
snipe
202f5077de Removed return
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 17:41:20 +01:00
snipe
4c19b4d831 Added aria-hidden="true" to error icon for accessibility
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 17:39:38 +01:00
snipe
3ae16ff8ca Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-07-08 15:53:42 +01:00
snipe
f3bf74a540 Updated language files
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 15:51:19 +01:00
snipe
de6a230838 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 15:35:35 +01:00
snipe
2e2f59b290 Updated production assets
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 15:29:36 +01:00
snipe
cf92dde1ca Merge pull request #15046 from snipe/localize_bootstrap_table
Added localization for bootstrap-tables
2024-07-08 15:20:39 +01:00
snipe
86c0a3ecad Added localization for bootstrap-tables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 15:12:37 +01:00
snipe
3b3a7e2757 Added more PHP in pgsql tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 14:58:26 +01:00
snipe
c72b36b84a Upgraded acorn from 8.11.3 to 8.12.0
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 14:40:26 +01:00
snipe
ee1afc63f9 Merge pull request #15045 from snipe/snyk/upgrade-jquery_validation
Snyk - Updated jquery validation
2024-07-08 14:38:14 +01:00
snipe
8438652e7d Updated jquery validation
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 14:30:06 +01:00
snipe
c16db436d3 Merge remote-tracking branch 'origin/develop' 2024-07-08 13:21:38 +01:00
snipe
ac9df2fc08 Merge pull request #15043 from snipe/fixes/custom_fields_on_audit
Fixed #15037 - Removed custom fieldsets on auditing - it’s not used (yet)
2024-07-08 13:20:59 +01:00
snipe
eba24b9242 Removed custom fieldsets on auditing - it’s not used
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 13:19:05 +01:00
snipe
8c6ecd35ec Added more basic tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 11:56:24 +01:00
snipe
e98823f7fa Added 403 to sad panda page
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 11:54:49 +01:00
snipe
a8ddb2f44a Added non-circular tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 11:29:30 +01:00
snipe
f32bf35c22 Fixed another rename :-/
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 10:50:03 +01:00
snipe
978a0272a5 Sigh. Renamed again
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 08:37:31 +01:00
snipe
283f24b213 Derp. Renamed file
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 08:34:17 +01:00
snipe
97775fb790 Location test additions
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 08:29:00 +01:00
snipe
7455bf329d Added more locations tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 08:21:31 +01:00
snipe
24ad74f136 Updated factories
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 08:21:18 +01:00
snipe
16d65631aa Removed duplicate tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 07:54:22 +01:00
snipe
0a7e053985 Added basic Department UI tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 07:53:02 +01:00
snipe
1d65781d8d More type-hinting
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 07:07:20 +01:00
snipe
0d6fd2643d More tweaks to the form request
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 05:59:39 +01:00
snipe
b3cc7b1578 More tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 05:59:28 +01:00
snipe
2a796fdc09 Format error
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:23:48 +01:00
snipe
a0914ccb28 Fleshed out tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:22:56 +01:00
snipe
efb9d107cf Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:22:03 +01:00
snipe
34bde52f74 Fixed typos
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:21:34 +01:00
snipe
75da626c85 Check for category ID
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:21:24 +01:00
snipe
1d45e0df79 Added model create test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 03:20:54 +01:00
snipe
5ebcc3b1a0 More type hinting
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 02:36:55 +01:00
snipe
6da6411f3b Added location API index test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 01:46:36 +01:00
snipe
4089b4cd68 Added category tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 01:46:09 +01:00
snipe
96d1aea54a More cleanup
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 00:54:50 +01:00
snipe
8baef8d7c5 Derp. Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 00:26:28 +01:00
snipe
7215746d7a Prevent users from editing category types if there are still items
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 00:23:02 +01:00
snipe
6761ff44cc Removed parens
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 00:22:46 +01:00
snipe
1f28bf14c1 Added category tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 00:21:58 +01:00
snipe
d3b62aa918 Few more
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 22:52:49 +01:00
snipe
a1eafc108d Moar typehinting
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 22:37:58 +01:00
snipe
7330bf5832 Check for invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 21:52:47 +01:00
snipe
d834ef5104 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 21:52:37 +01:00
snipe
ef56f599d2 Use asset model request
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 21:52:29 +01:00
snipe
0f43b3f8f9 Added another test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 21:52:16 +01:00
snipe
c570759370 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 21:14:58 +01:00
snipe
066ec8e26e Added (failing) tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 20:50:18 +01:00
snipe
cc6f1cd585 Added asset model request :(
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 20:50:11 +01:00
snipe
ae9085b11f Modernize use statements, switch to auth()
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 20:49:22 +01:00
snipe
e98284fff5 Modernized helpers and use statements
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 20:48:35 +01:00
snipe
89f01d75d7 Updated test names, added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 19:59:10 +01:00
snipe
8eb68d3901 Merge remote-tracking branch 'origin/develop' 2024-07-04 17:10:43 +01:00
snipe
edd61705dc Merge pull request #15027 from snipe/feature/sc-26112/allow_default_avatar
Added #15015 - ability for admins to select default avatar
2024-07-04 17:10:10 +01:00
snipe
3f20e29901 Moved gthe settings for remote loading to the branding section
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:55:47 +01:00
snipe
36ae162626 Changed my mind :)
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:48:05 +01:00
snipe
00f7cb9dbb Reverse the order for default gravatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:46:12 +01:00
snipe
1ca3dc26eb Removed extra debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:36:48 +01:00
snipe
2f3be267b3 Added some logic around deleting images
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:33:22 +01:00
snipe
5b8f6910fb Marked tests as incomplete :(
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:33:08 +01:00
snipe
9fe26ba814 Reverted the validation - might have an impact on quickstart setup
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:25:39 +01:00
snipe
5e97ed1c7e Added migration
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:24:11 +01:00
snipe
947fb7af7a Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:24:03 +01:00
snipe
44bcc157e5 Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:46 +01:00
snipe
278bf3da13 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:38 +01:00
snipe
446bc81d3a Updated presenter to use new avatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:31 +01:00
snipe
9527aac242 Make site name required at the model
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:17 +01:00
snipe
c57f1f9d7d Use null coalescence
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:22:56 +01:00
snipe
e372527d13 Added default_avatar to settings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:22:36 +01:00
snipe
96be1e1275 Removed duplicate locale directive
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 02:14:10 +01:00
snipe
8ce17d0585 Merge pull request #15025 from snipe/security/upgrade_webpack
Upgrade webpack from 5.91.0 to 5.92.0 #15008
2024-07-04 01:08:17 +01:00
snipe
6af1eaa4e4 Updated webpack to 5.92
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 01:07:26 +01:00
snipe
da01487301 Merge pull request #15023 from snipe/improvements/optimize_queries_for_user_bulk_actions
Added files column to bulk user delete, optimized queries
2024-07-03 23:45:09 +01:00
snipe
708d7b5fc5 Use icons for consistency
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:43:44 +01:00
snipe
62b5a159a9 Added files column
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:31:09 +01:00
snipe
fc7809192d Merge remote-tracking branch 'origin/develop' 2024-07-03 23:20:24 +01:00
snipe
a6d04509a5 Merge pull request #15016 from snipe/improved_user_merge
Fixed #15005 - Improvements  on user merge
2024-07-03 23:19:50 +01:00
snipe
0071596274 Added upload count
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:18:43 +01:00
snipe
59f66051f8 More eager loading
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:18:37 +01:00
snipe
9f1e59cf78 Marcus’ nitpicks
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:01:41 +01:00
snipe
f1f68b8ef6 Merge pull request #15022 from spencerrlongg/livewire-delete-button
Resolved Potential Issue when Deleting Personal Access Tokens
2024-07-03 22:24:25 +01:00
snipe
f22c3cdda9 Merge pull request #15021 from snipe/fixes/removed_non_counts
Removed non-counts from allowed array
2024-07-03 22:21:17 +01:00
snipe
5e15cc3bbe Added markIncompleteIfSqlite() method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 22:18:31 +01:00
spencerrlongg
a6690493b0 resolved 2024-07-03 16:12:55 -05:00
snipe
17a6335d13 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 22:12:06 +01:00
akemidx
ca57f6de85 adding in item=>asset, missed in first commit 2024-07-03 17:07:50 -04:00
snipe
aefaabdb1a Removed non-counts from allowed array
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 21:40:43 +01:00
snipe
9211c8d3b1 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:57:21 +01:00
snipe
eff1980df5 Added console test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:52:22 +01:00
snipe
1553ba5630 Added null coalescence for admin id in case via cli
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:52:12 +01:00
snipe
ec24120d2a Allow admin to be nullable (for cli)
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:35 +01:00
snipe
50df750202 Add merge event
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:23 +01:00
snipe
dab4aced48 Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:09 +01:00
snipe
1774952312 Added additional assertions
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:19:12 +01:00
snipe
d66d6e70a6 Added checkedOutToUser factory for consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:18:53 +01:00
snipe
4635e9269d Added user update log factory
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:18:34 +01:00
snipe
574867536d Standardize query for merging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 19:41:34 +01:00
snipe
5488a4d118 One more test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:36:27 +01:00
snipe
e34f3c7c2c Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:32:41 +01:00
snipe
ceaff7b645 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:30:11 +01:00
snipe
d27a025347 Added factories
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:30:06 +01:00
snipe
2b2853a183 Added acceptance model
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:29:58 +01:00
snipe
a25263f868 Transfer files and acceptances on merge
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:29:49 +01:00
snipe
4b9727067b Merge pull request #15010 from snipe/fixes/translation_strings
Added missing translations
2024-07-03 12:43:50 +01:00
snipe
00fc392a12 Added missing traslations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 12:41:04 +01:00
spencerrlongg
e79111fed5 fix test :( 2024-07-02 16:01:18 -05:00
spencerrlongg
423b48279b merge 2024-07-02 15:53:28 -05:00
spencerrlongg
6f29c0a7cf Merge branch 'refs/heads/develop' into bug/sc-24884
# Conflicts:
#	routes/api.php
2024-07-02 15:48:39 -05:00
snipe
27bc16604b Add @Galaxy102 as a contributor 2024-07-02 09:48:32 +01:00
snipe
86ae4a3513 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-07-02 09:37:40 +01:00
snipe
1da90fe1ec Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-07-02 09:37:05 +01:00
snipe
25ba50d6f7 Merge pull request #14870 from Galaxy102/feature/rotate-labels
Add Label Template: Use with endless 62mm Brother printer rolls
2024-07-02 08:45:42 +01:00
snipe
f22e99aec8 Merge pull request #14983 from snipe/fixes/use_more_modern_request_syntax_in_blades
Use more modern reference for input text
2024-07-02 08:43:34 +01:00
snipe
f027fd5f21 Merge pull request #14986 from marcusmoore/bug/sc-25926
Fixed extension requirement checking in upgrade script
2024-07-02 08:42:45 +01:00
snipe
37a038c24f Merge pull request #15001 from marcusmoore/features/link-user-table-counts-to-section
Added links on user table to tabs on show user page
2024-07-02 08:37:05 +01:00
spencerrlongg
0b60cbc531 remove $rules2 2024-07-01 19:37:49 -05:00
Marcus Moore
3a8f825de5 Link user table counts to section in user show 2024-07-01 14:06:05 -07:00
snipe
d2df83cf2f Merge pull request #14999 from marcusmoore/fixes/hide-edit-profile-button
Removed "Edit Your Profile" button from View Assets page if user is not able to edit their profile
2024-07-01 18:15:47 +01:00
Marcus Moore
d481850d4c Add @can around Edit Your Profile button on view assets page 2024-07-01 10:11:27 -07:00
snipe
e502968707 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-07-01 10:00:28 +01:00
snipe
12dcac4994 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-07-01 10:00:15 +01:00
Konstantin Köhring
6c55e2bd9d Add a Brother compatible 62mm wide label.
Tested with QL-600. Set print mode to landscape.
2024-06-28 09:49:53 +02:00
Konstantin Köhring
2fd357c346 Add rotation attribute to Label class to allow rotation of the generated label PDF.
This is necessary when printing labels with width = label width.
2024-06-28 09:49:53 +02:00
Marcus Moore
0a5e58201a Correctly account for "or" dependent extensions in upgrade script 2024-06-27 12:38:50 -07:00
snipe
d687b20467 Use more modern reference for input text
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 15:05:47 +01:00
snipe
7dbcedad40 Merge pull request #14981 from uberbrady/fix_backup_translations
Fixed #14976, #14975, #14973 - Translation strings aren't always working
2024-06-27 14:36:52 +01:00
snipe
b6e8d28ed3 Merge pull request #14982 from snipe/fixes/check_for_user_on_patch_api
Check that the user exists before trying to fill the request
2024-06-27 14:36:21 +01:00
snipe
85ce47f5bb Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 14:21:27 +01:00
snipe
55c98cc27a Check that the user exists before trying to fill the request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 14:05:28 +01:00
snipe
422f3ec81e Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 13:53:38 +01:00
snipe
54fb91c03b Merge pull request #14831 from marcusmoore/chore/sc-23725/livewire3
Updated Livewire to v3
2024-06-27 13:21:52 +01:00
Brady Wetherington
6df9742664 Built a workaround for backup notification translations 2024-06-27 13:17:16 +01:00
snipe
f23a221750 Merge pull request #14942 from snipe/updates/start_moving_from_collective_forms
WIP - First start at switching to regular html labels
2024-06-27 13:12:29 +01:00
snipe
1837da4508 Merge branch 'develop' 2024-06-26 13:46:40 +01:00
snipe
4637accb51 Built assets, bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 13:35:24 +01:00
snipe
74f067d893 Merge pull request #14974 from uberbrady/improve_saml_behind_proxy
Fixed #14895 and #14919 - set SAML baseurl to a sensible default for docker users and users behind a reverse proxy
2024-06-26 13:34:18 +01:00
snipe
43773954cd Merge pull request #14966 from Godmartinz/css_issue
Fixed importer table background color
2024-06-26 13:33:14 +01:00
Brady Wetherington
30cafef9f2 Add a reasonable-looking SAML baseurl, mosty for users behind proxies 2024-06-26 13:25:11 +01:00
snipe
e1a6b441d7 Merge remote-tracking branch 'origin/develop' 2024-06-26 12:53:18 +01:00
snipe
251f2d82b3 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 12:53:03 +01:00
snipe
e905550778 Merge pull request #14971 from snipe/fixes/updated_translation_string
Fixes #14968 - translate forbidden page
2024-06-26 11:25:51 +01:00
snipe
adee99db34 Fixes #14968 - translate forbidden page
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 11:21:56 +01:00
Godfrey M
eda2eb2283 fixes all dark modes 2024-06-25 10:24:35 -07:00
Godfrey M
a7123a04ba fixes importer background color 2024-06-25 10:19:18 -07:00
Marcus Moore
8a562f1d15 Bump Livewire to 3.5.1 2024-06-25 10:16:44 -07:00
Marcus Moore
d4861a74df Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	composer.lock
2024-06-25 10:15:50 -07:00
snipe
8971cc4b8b Merge pull request #14963 from snipe/fixes/updated_translation_string
Added avif to translation string
2024-06-25 13:45:10 +01:00
snipe
bca6dd41d2 Added avif to translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-25 13:39:36 +01:00
snipe
23c1d664fe Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 22:07:01 +01:00
snipe
c891342fdb Bumoed version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 22:06:52 +01:00
snipe
221c4eeb0c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 21:59:27 +01:00
snipe
bbb1fbfbe8 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 21:59:09 +01:00
snipe
5a874a90ac Merge pull request #14951 from snipe/features/disallow_profile_editing
Added ability to disallow profile editing
2024-06-24 14:11:48 +01:00
snipe
1c14c2fdef Added gates to controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:05:21 +01:00
snipe
73a038afd4 Save new setting
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:03:01 +01:00
snipe
4d55765e28 Added checkbox to settings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:53 +01:00
snipe
2b43f3cb84 Added gate to auth service provider
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:40 +01:00
snipe
52c4885335 Added method for checking if the user can edit their own profile
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:17 +01:00
snipe
aa5fe52e89 Added gate in blade
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:56 +01:00
snipe
ce107dd688 New strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:39 +01:00
snipe
72affd7a5b Added migration
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:31 +01:00
snipe
ba4c51dd68 Removed duplicate key
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:25 +01:00
snipe
294fb1f774 Merge pull request #14925 from snipe/fixes/added_2fa_string
Additional translation strings
2024-06-24 12:11:45 +01:00
snipe
a846afe733 Merge pull request #14950 from snipe/localization/updated_strings_20240621
Updated translations
2024-06-24 11:44:06 +01:00
snipe
5fb3cea0bb Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 11:41:20 +01:00
snipe
4ae89c23cd Merge pull request #14947 from snipe/dependabot/github_actions/develop/docker/build-push-action-6
Bump docker/build-push-action from 5 to 6
2024-06-24 11:27:04 +01:00
snipe
3d32fe662b Merge pull request #14949 from snipe/fixes/depreciation_format
Check that there is a depreciation date before formatting
2024-06-24 11:11:43 +01:00
snipe
468674a517 Check that there is a depreciation date before formatting
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 11:07:41 +01:00
dependabot[bot]
ebe4354a85 Bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 08:14:34 +00:00
snipe
f47bc5ea7d Updated hardware checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 19:40:52 +01:00
snipe
427615f627 Fiest start at switching to regular html labels
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 18:24:23 +01:00
snipe
829b560794 Merge pull request #14941 from snipe/updates/updated_phpunit
Updated PHPunit
2024-06-23 17:43:29 +01:00
snipe
f97a15c5c3 Updated PHPunit
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 17:33:01 +01:00
snipe
25fcf523e3 Merge pull request #14937 from snipe/fixes/user_improvements
Fixed #14935 - improvements and more tests around user deletion
2024-06-22 21:41:07 +01:00
snipe
c1be94c4ad Added another base test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:37:49 +01:00
snipe
3a05d72124 Based restore API test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:35:40 +01:00
snipe
7ec44e46ce Added ability check for restoring users at all
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:35:28 +01:00
snipe
060b17df01 Pulled duplicated test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:34:49 +01:00
snipe
74c78d7577 Added back in commented out test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:09:04 +01:00
snipe
1ef0c1adac Fixed tests! And added more!!
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:07:46 +01:00
snipe
c2e649e2bf Fixed small permissions issue
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:07:37 +01:00
snipe
196db9718e Use class name instead
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:55:58 +01:00
snipe
9f5b264e04 Normalize the tests between UI and API
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:51:56 +01:00
snipe
3825f5fb61 Added more permissions tests to user delete UI
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:47:59 +01:00
snipe
e60dbc883c Removed test code
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:42:34 +01:00
snipe
bbbfa91db9 Fixed wonky rule
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:40:26 +01:00
snipe
5ec8e2da66 Breaking tests :(
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:44 +01:00
snipe
9e59bd5687 Cleaned up controller code a bit
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:36 +01:00
snipe
1d26ccac4e Check for the additional auth for that user
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:06 +01:00
snipe
0e2526f627 Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:32:49 +01:00
snipe
dd9e9c7a6d Fixed return types
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:49:49 +01:00
snipe
e19922abd0 Cleaned up UI controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:49:35 +01:00
snipe
d27bde6047 Added deleted factory for tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:24 +01:00
snipe
61f76dedc6 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:08 +01:00
snipe
06737f45ad Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:02 +01:00
snipe
65e8765bdd Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 17:45:42 +01:00
snipe
c6a0212384 Merge remote-tracking branch 'origin/master' into develop 2024-06-22 17:33:12 +01:00
snipe
e03614d91b Added withtrashed back in
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:40:32 +01:00
snipe
b82770d0a8 One more small fix
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:38:29 +01:00
snipe
55e1326164 Fixed #14935 - user does not exist
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:24:18 +01:00
snipe
b0aff68c8b Merge pull request #14934 from snipe/tests/added_workflow_for_php_8_3
Added php 8.3 test
2024-06-21 22:04:05 +01:00
snipe
6a99855c8c Added php 8.3 test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-21 21:47:40 +01:00
snipe
665aa6eb23 Merge pull request #14924 from snipe/fixes/possible_nicer_handling_for_defaultStatusLabel
Possible fix for #14915 - error on import when status label is not provided and no deployable statuses can be found
2024-06-21 21:37:22 +01:00
snipe
42caacbaf9 Merge pull request #14932 from snipe/fixes/small_deprecations
Fixed small deprecation warnings for PHP8.2
2024-06-21 21:26:16 +01:00
snipe
3531256c3f Fixed deprecations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-21 21:06:43 +01:00
snipe
9a0db72eb4 More strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:40:38 +01:00
snipe
e11a42cf68 Re-use login string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:32:00 +01:00
snipe
114769c2d9 Made requestable items more generic in translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:26:45 +01:00
snipe
9594596b8a Fixed another hard-coded string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:22:27 +01:00
snipe
69cf697aa3 Added 2fa translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:20:52 +01:00
snipe
45dbe5cb77 Return the id, not the entire status label
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:05:38 +01:00
snipe
a1ff35f6ce Possible fix for #14915
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:47:46 +01:00
snipe
077a6949e2 docs: add @Tyree as a contributor 2024-06-20 14:42:19 +01:00
snipe
44022f07ca docs: update @bryanlopezinc as a contributor 2024-06-20 14:41:22 +01:00
snipe
30c1e1e86a Merge remote-tracking branch 'origin/develop' 2024-06-20 14:32:46 +01:00
snipe
9a90813877 Merge pull request #14923 from snipe/localizations/updated_strings
Updated language strings
2024-06-20 14:29:13 +01:00
snipe
1113218c6c Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:23:15 +01:00
snipe
2556c80250 Merge pull request #14922 from snipe/fixes/incorrect_translation_path
Fixed incorrect translation path
2024-06-20 14:10:32 +01:00
snipe
8f8a5c639b Updated profile translation string path
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:09:25 +01:00
snipe
9e9c37c1e8 Fixed weird linebreaks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:09:11 +01:00
snipe
6cbdbcb1f1 Merge pull request #14791 from Godmartinz/label-option-limit
Added some  style changes in label field selector for the `DefaultLabel` template
2024-06-20 13:51:49 +01:00
snipe
c8835bf5db Merge remote-tracking branch 'origin/develop' 2024-06-20 13:40:37 +01:00
snipe
6dfedac7a7 Merge pull request #14912 from bryanlopezinc/addIsWritableTest
Add storage path permissions test
2024-06-20 13:38:56 +01:00
snipe
83794eaf33 Merge pull request #14921 from snipe/fixes/14918_added_lastname_dot_firstname
Added lastname.firstname as email format
2024-06-20 13:38:30 +01:00
snipe
bd1f43f9ee Added lastname.firstname as email format
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 13:36:48 +01:00
snipe
66ffe21ce2 Merge remote-tracking branch 'origin/develop' 2024-06-20 13:09:54 +01:00
snipe
f2e86b7d30 Merge pull request #14920 from snipe/fixes/backup_notifications
Fixed backup notification translations
2024-06-20 13:09:26 +01:00
snipe
5251e6787d Use two-letter fallback code
Ugh, I hate this

Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:58:00 +01:00
snipe
856aee0a72 Updated laravel-backup
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:57:35 +01:00
snipe
6b4c71f966 Updated config
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:57:25 +01:00
snipe
dd6d040da5 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:56:43 +01:00
bryanlopezinc
203b60383f Added storage path permissions test for SettingsController@getSetupIndex 2024-06-19 17:46:59 +01:00
snipe
61ced0b221 Merge remote-tracking branch 'origin/develop' 2024-06-19 11:41:11 +01:00
snipe
ae7675fee0 Added audit date validation back in
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:37:15 +01:00
snipe
66ed26fbf9 Merge remote-tracking branch 'origin/develop' 2024-06-19 11:13:47 +01:00
snipe
98662c2a77 Merge pull request #14908 from snipe/fixes/importer_audit_date
Fixes/importer audit date
2024-06-19 11:12:12 +01:00
snipe
7099358985 Added accessor/mutator
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:11:50 +01:00
snipe
9a706b3e3e Removed datetime validation
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:05:31 +01:00
snipe
71c9b03779 Fixed incorrect field name
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:05:22 +01:00
snipe
dc7b9315b5 Merge remote-tracking branch 'origin/develop' 2024-06-19 10:35:54 +01:00
snipe
6c17b141db Removed duplicate locations_id search
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 10:35:21 +01:00
snipe
5d2cca855e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-19 10:31:04 +01:00
snipe
61e10be04d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 10:29:50 +01:00
snipe
20d5587851 Merge remote-tracking branch 'origin/develop' 2024-06-19 10:23:18 +01:00
snipe
d8eccf03f1 Merge pull request #14896 from snipe/fixes/tls_loading
Possible fix for proxy/reverse proxy
2024-06-19 10:22:36 +01:00
snipe
6e40b58dc5 Merge remote-tracking branch 'origin/develop' 2024-06-19 01:21:52 +01:00
Marcus Moore
30dd8bcf2b Update Livewire 2024-06-18 15:10:59 -07:00
Marcus Moore
f0a11be0b8 Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	composer.lock
2024-06-18 15:10:46 -07:00
snipe
b8882fa00e Merge pull request #14900 from marcusmoore/fixes/81-install
Fixed unable to install on PHP 8.1
2024-06-18 21:53:30 +01:00
Marcus Moore
af337b7018 Move debugbar back to dev dependencies but without updating other packages 2024-06-18 09:46:08 -07:00
Marcus Moore
f60267d208 Revert "Reverted debugbar back into require vs require-dev"
This reverts commit ce338c632d.
2024-06-18 09:42:21 -07:00
snipe
a0c844f4f6 Merge remote-tracking branch 'origin/develop' 2024-06-18 16:12:20 +01:00
snipe
7b84b92e72 Merge pull request #14899 from snipe/fixes/revert_debugbar_dev
Fixed #14898 - (regression) Reverted debugbar back into require vs require-dev
2024-06-18 16:09:51 +01:00
snipe
ce338c632d Reverted debugbar back into require vs require-dev
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 16:06:38 +01:00
snipe
d9f70c16f7 Possible fix proxy/reverse proxy
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 14:44:35 +01:00
snipe
d0299de898 Merge remote-tracking branch 'origin/develop' 2024-06-18 11:25:55 +01:00
snipe
9380c9ec81 Merge pull request #14894 from snipe/fixes/14882_archived_scoping_on_models
Fixed #14882 - Properly scope archived based on settings
2024-06-18 11:24:55 +01:00
snipe
941582ac2a Properly scope archived based on settings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 10:27:11 +01:00
snipe
04560b4475 Merge remote-tracking branch 'origin/develop' 2024-06-18 10:13:57 +01:00
snipe
0b30ad0da2 Removed test file - #14890
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 10:12:57 +01:00
snipe
cb6ea2c6fb Merge remote-tracking branch 'origin/develop' 2024-06-18 09:59:43 +01:00
snipe
89a5bbb10e Merge pull request #14893 from snipe/fixes/rb_3792_ambiguous_query
Prefaced fields with “users” for clarity
2024-06-18 09:58:44 +01:00
snipe
2f59bb74cd Prefaced fields with “users” for clarity
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:52:41 +01:00
snipe
6c6a3649ea Production assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:33:07 +01:00
snipe
05b97db747 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-18 09:32:30 +01:00
snipe
543e4c0666 Bumped version file
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:31:49 +01:00
snipe
e28619f769 Bumped papaparse library
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:30:24 +01:00
snipe
4d8c2d3f4e Merge pull request #14886 from marcusmoore/fixes/debugbar
Bumped debugbar from v3.13.0 to v3.13.5 to fix issue with session messages
2024-06-18 09:22:18 +01:00
snipe
f53eeb8b33 Merge pull request #14887 from marcusmoore/fixes/fix-test-namespace
Fixed namespace for ViewUserTest
2024-06-18 09:20:58 +01:00
snipe
aba6d9b338 Merge pull request #14885 from marcusmoore/tests/asset-model-test-improvements
Added more tests around Asset Model
2024-06-18 09:20:45 +01:00
snipe
cd5bef414c Merge pull request #14884 from marcusmoore/fix/actionlogcontroller-fix
Fixed missing `}`
2024-06-18 09:20:26 +01:00
Marcus Moore
4f2d2ae4b8 Fix namespace for ViewUserTest 2024-06-17 16:37:24 -07:00
Marcus Moore
1bd0ab7389 Move barryvdh/laravel-debugbar from require to require-dev 2024-06-17 16:28:08 -07:00
Marcus Moore
8799276c6e Bump debugbar from v3.13.0 to v3.13.5 2024-06-17 16:25:39 -07:00
Marcus Moore
672aabf4ac Add more tests for Asset Model index and store methods 2024-06-17 14:51:59 -07:00
Marcus Moore
796d6909d5 Add missing } 2024-06-17 14:40:06 -07:00
Marcus Moore
a3dea99bbb Fix category edit form component 2024-06-17 14:24:16 -07:00
Marcus Moore
fc351a1896 Remove .live from oauth clients 2024-06-17 13:03:27 -07:00
Marcus Moore
d9164281ab Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	resources/views/livewire/oauth-clients.blade.php
2024-06-17 12:57:04 -07:00
snipe
cbb5b6e846 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-17 15:58:27 +01:00
snipe
08bd39dbba Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 15:57:32 +01:00
snipe
430808e180 Merge remote-tracking branch 'origin/develop' 2024-06-17 15:52:13 +01:00
snipe
6976dc2b26 Merge pull request #14879 from snipe/fixes/better_ui_for_oauth
Fixed weird layout in admin oauth [sc-25673]
2024-06-17 15:51:11 +01:00
snipe
27063d5bae Fix weird layout in admin oauth [sc-25673]
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 15:44:07 +01:00
snipe
5be86b9dbb Merge remote-tracking branch 'origin/develop' 2024-06-17 13:43:45 +01:00
snipe
afc78524fc Merge pull request #14877 from snipe/fixes/spatie-backup-config
Updated config
2024-06-17 13:42:02 +01:00
snipe
eb33a2451f Updated config
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 13:36:52 +01:00
snipe
891a0a0965 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-06-17 13:05:31 +01:00
snipe
50f0797850 Added aria hidden to icon
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 13:05:27 +01:00
snipe
36cdf0e0be Merge pull request #14876 from snipe/fixes/small_footer_issues
Fixed small footer issues
2024-06-17 12:53:52 +01:00
snipe
d9cc3c3ec7 Removed extra divs
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 12:52:23 +01:00
snipe
069a1608de Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-17 12:10:13 +01:00
snipe
60accfd601 Bumped version file
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 12:09:30 +01:00
snipe
b1f2051b43 Merge remote-tracking branch 'origin/develop' 2024-06-17 11:58:11 +01:00
snipe
233e4af7f8 Added base asset models test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:57:30 +01:00
snipe
dc1b808a28 Fixed static request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:47:21 +01:00
snipe
91a423e60e Bumped php max version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:27:55 +01:00
snipe
bd03a6d206 Production assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:18:44 +01:00
snipe
d87da78eb5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	app/Http/Controllers/Users/UsersController.php
#	config/version.php
#	public/css/build/AdminLTE.css
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all-defer.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-06-17 11:18:33 +01:00
snipe
f3e82c2c80 Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:59:17 +01:00
snipe
569f05a99e Built prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:45:04 +01:00
snipe
ece7c22df9 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:44:20 +01:00
snipe
4eefd39172 Bumped requirements
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:42:59 +01:00
snipe
daae5d6859 Merge pull request #14724 from phil-flip/develop
Added Proper Docker Compose and .env.docker-setup files
2024-06-16 15:49:15 +01:00
snipe
df76769a29 Merge pull request #14871 from marcusmoore/chore/move-test
Moved `AssetFilesTest`
2024-06-13 23:10:36 +01:00
Marcus Moore
fe72639925 Move AssetFilesTest 2024-06-13 14:25:25 -07:00
Marcus Moore
c3e6e1144f Merge branch 'develop' into chore/sc-23725/livewire3 2024-06-12 15:12:40 -07:00
snipe
cacb5d62dc Merge pull request #14800 from snipe/fixes/importer_tweaks
Importer tweaks
2024-06-12 12:51:11 +01:00
snipe
a8b47a55bc Merge pull request #14801 from snipe/fixes/companyable_trait_on_users
Allow CompanyableTrait trait on users
2024-06-12 12:42:56 +01:00
snipe
3159fdec9f FFS
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:40:43 +01:00
snipe
ea990a5381 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:31:41 +01:00
snipe
134183ef16 Shuffled tests around again
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:12:15 +01:00
snipe
67ab2536bc Updated test names
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:03:33 +01:00
snipe
756a2ac25c Added API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 11:58:12 +01:00
snipe
acaceb4103 Moved tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 11:57:50 +01:00
snipe
7e3d66ec53 Merge branch 'develop' into fixes/companyable_trait_on_users 2024-06-12 11:27:26 +01:00
snipe
1ca9bb5aa8 Merge pull request #14698 from Scarzy/features/asset_file_upload_from_api
Added #9413: Asset file upload from API
2024-06-12 11:18:06 +01:00
snipe
c641b733e1 Merge pull request #14834 from bryanlopezinc/AddAppUrlTest
Added test for app url config
2024-06-12 11:14:17 +01:00
snipe
16cf6bc852 Merge pull request #14843 from marcusmoore/chore/sc-25767
Added GitHub workflow for tests in Postgres
2024-06-12 09:53:55 +01:00
Marcus Moore
c51b7d7104 Inline variable 2024-06-10 12:22:23 -07:00
Marcus Moore
5c0ca92fd7 Switch to using workflow_dispatch for PostgreSQL tests 2024-06-10 10:24:10 -07:00
snipe
241e9bc253 Merge pull request #14847 from uberbrady/users_index_api_optimization
Optimization for listings of large numbers of users
2024-06-10 13:57:49 +01:00
Brady Wetherington
c8820adb56 Add two new 'with()' relationships to Users API index query 2024-06-10 13:29:53 +01:00
snipe
0f4c6dd5b0 Merge pull request #14830 from snipe/chore/sc-25756/better_validation_for_relations_on_delete
Better validation for relations on delete
2024-06-07 18:10:41 +01:00
snipe
f8ab9f62f6 Merge pull request #14842 from Godmartinz/adjust-preview-window
Fixed label preview window position
2024-06-07 18:09:56 +01:00
Phil
217ed03b8e add DB_PORT 2024-06-07 12:04:10 +02:00
Godfrey M
77e6058e4c remembers chosen label 2024-06-06 13:55:15 -07:00
Godfrey M
4a60026162 moves preview down by field definitions 2024-06-06 13:42:06 -07:00
Godfrey M
3621292a0e removes unnecessary height 2024-06-06 13:28:05 -07:00
Marcus Moore
6c296ccf8e Use "postgres" instead of "postgres:14" 2024-06-06 13:27:39 -07:00
Godfrey M
6df1c36011 oops 2024-06-06 13:24:02 -07:00
Marcus Moore
924da00f3e Add Postgres GitHub workflow for tests 2024-06-06 13:21:00 -07:00
Godfrey M
44dae22a3c adjust label preview window 2024-06-06 13:18:19 -07:00
bryanlopezinc
d35e251d6e Added test for app url config 2024-06-05 21:46:43 +01:00
snipe
e19d2d6ec9 Merge pull request #14832 from snipe/fixes/added_consumables_to_inventory_email
Fixed #14812 - added consumables to individual inventory report
2024-06-05 20:42:35 +01:00
snipe
871255f28c Fixed #14812 - added consumables to individual inventory report
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 20:40:45 +01:00
Marcus Moore
9044aa4ed9 Import class 2024-06-05 11:48:47 -07:00
Marcus Moore
60c7efae3c Remove commented code 2024-06-05 11:48:10 -07:00
Marcus Moore
48fc6ca60e Remove commented code 2024-06-05 11:46:57 -07:00
snipe
7ac315e1eb Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:50:45 +01:00
snipe
374c6845d6 Added test if user has assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:16:28 +01:00
snipe
c5cbe37007 Added view permissions for the redirects
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:13:51 +01:00
snipe
a2346e4666 Changed numbers
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:09:57 +01:00
snipe
2479ccc4c6 Fixed accessory assignment
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:07:18 +01:00
snipe
64dd8f5d65 Missed a use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:03:33 +01:00
snipe
47420a802a More (failing) tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:02:04 +01:00
snipe
5cdb2b7163 Check that the user was not aready deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:00:35 +01:00
snipe
d4c080c7e4 Use the form request on the UI controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:40:32 +01:00
snipe
065a47a446 Use the DeleteUser request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:28:44 +01:00
snipe
5bd9ecb8df Created DeleteUser request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:28:37 +01:00
snipe
1cdec61be6 Use more modern mutator/accessory syntax
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:56:54 +01:00
snipe
b0ddb26e73 Fixed variable name, $field
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
181bafd012 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
e054fc1ef1 Removed noisy import debugging, made nicer output
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
9d9ad86dd5 Added mutators and accessors for dates
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
afe4e5d62e Added date parser
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
52950f1322 Refactored date parsing
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
026c80992e Pull the log reference
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
0ee2b74ff3 Added date parsers for new date fields
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
3a0f7eca54 Put asset EOL date back in the Item Importer
I have no idea why this is necessary

Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
f4d530b4b1 Removed filename column since it’s never worked
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
4ccbfb56a4 Make sure the status label is deployable
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
d02904c9a3 Added new fields
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
c8279c0b99 Moved asset-only date stuff into the asset importer
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
f4f184e115 Removed noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
b2a86e312b Added last_checkout and last_checkin as fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
9d56617caf Moved expected checkin date on view
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
de7b8940fe Merge pull request #14828 from fe80/fix/controller-signature-s3
fix(ActionlogController): add missin class Illuminate\Support\Facades…
2024-06-05 09:58:03 +01:00
snipe
09e94ec176 Reordered withTrashed() and find()
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 09:57:24 +01:00
snipe
832ceeba56 Fixed missing endpush
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 09:57:10 +01:00
fe80
ea7c3c8485 fix(ActionlogController): add missing class Illuminate\Support\Facades\Storage 2024-06-05 10:55:27 +02:00
snipe
bc36c8074e Merge pull request #14807 from bryanlopezinc/AddTestToCheckEnvVisibility
Added test for .env visibility for setup page
2024-06-05 09:50:54 +01:00
snipe
9fccafa3ac Merge pull request #14816 from uberbrady/hotfix_autoincrement_workaround
Don't save next autoincrement base if it's going to fail, next
2024-06-05 09:47:40 +01:00
snipe
fa083098fc Merge pull request #14819 from snipe/localization/new_strings_2024_06_03
Updated strings
2024-06-05 09:46:41 +01:00
snipe
7688c437c0 Merge pull request #14824 from Godmartinz/select-2-redirect-fix
Fixed select 2 Behavior
2024-06-05 09:46:25 +01:00
snipe
697ac83040 Merge pull request #14825 from marcusmoore/chore/test-organization
Re-organized test suite
2024-06-05 09:46:08 +01:00
snipe
a742105c21 Merge pull request #14827 from fe80/fix/controller-signature-s3
fix(ActionlogController): correct signature image for s3 bucket
2024-06-05 09:40:21 +01:00
fe80
7a76ec9e02 fix(ActionlogController): correct signature image for s3 bucket 2024-06-05 10:08:15 +02:00
Marcus Moore
b2a0e7958b Inject alpine on label engine page 2024-06-04 17:03:36 -07:00
Marcus Moore
99439f0a5c Define property 2024-06-04 16:14:07 -07:00
Marcus Moore
ef91c8123e Remove unneeded re-render of select2 2024-06-04 15:49:57 -07:00
Marcus Moore
5eb5742b3d Define property 2024-06-04 15:49:39 -07:00
Marcus Moore
296cf3e34b Update OauthClients component 2024-06-04 15:37:41 -07:00
Marcus Moore
e98c3f92c1 Update domain name 2024-06-04 10:49:29 -07:00
Marcus Moore
d202dfc225 Organize API tests into domains 2024-06-04 10:48:53 -07:00
Godfrey M
6202f6157a fix select2 behavior 2024-06-04 08:41:00 -07:00
Marcus Moore
b1e8e5389b Make most test names singular 2024-06-03 16:54:59 -07:00
Marcus Moore
95f6381da4 Update tests names to VerbNounTest 2024-06-03 16:53:15 -07:00
Marcus Moore
b07e3b4a91 Remove API from test class name 2024-06-03 16:50:56 -07:00
Marcus Moore
86bd9a2674 Move test method to existing test 2024-06-03 16:49:44 -07:00
Marcus Moore
29a36839aa Move existing API checkin and checkout tests under domain directory 2024-06-03 16:29:53 -07:00
snipe
85cb7c92e7 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-03 20:44:40 +01:00
Brady Wetherington
e827bc9a07 Tests on asset tags that are maximum integers and *almost* maximum... 2024-06-03 17:31:56 +01:00
snipe
a6f19a1657 docs: add @U-H-T as a contributor 2024-06-03 17:06:43 +01:00
snipe
6229d0c616 Merge pull request #14758 from U-H-T/features/add_logo_support_for_Brother_TZe24
add logo support for Brother TZe24mm labels
2024-06-03 17:02:18 +01:00
snipe
bc6c969f21 Merge pull request #14814 from snipe/dependabot/github_actions/develop/crowdin/github-action-2
Bump crowdin/github-action from 1 to 2
2024-06-03 16:58:10 +01:00
snipe
8f4ede7785 Merge pull request #14817 from snipe/fixes/hotfix_for_14815
Fixes #14815 - Fixed translation string
2024-06-03 16:48:54 +01:00
snipe
877adb082c Fixed translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-03 16:40:52 +01:00
Brady Wetherington
90818bb147 Don't save next autoincrement base if it's going to fail, next 2024-06-03 15:58:57 +01:00
dependabot[bot]
f767a94c84 Bump crowdin/github-action from 1 to 2
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1 to 2.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](https://github.com/crowdin/github-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 08:18:51 +00:00
bryanlopezinc
89e50b94d3 Fix Failing sqlite test 2024-06-03 08:09:05 +01:00
snipe
c4d97d095f Merge pull request #14809 from snipe/features/more_tests
Added a few more tests
2024-06-01 04:25:19 +01:00
snipe
67fb3f10d5 Tightened up tests with better checks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:24:47 +01:00
snipe
ea8d390596 MOAR TESTS
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:01:09 +01:00
snipe
cff382605c Fixed some missing strings and checks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:01:04 +01:00
snipe
52af8afac2 Added company scoping test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 03:10:29 +01:00
snipe
03b0268dc2 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 03:00:45 +01:00
snipe
c09e93e288 Updated delete users API tests, moved non-API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 02:59:04 +01:00
snipe
694e3b7f3a Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 00:42:16 +01:00
snipe
32c367090b Updated test names
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:13:27 +01:00
snipe
abcfe2b757 Derp. Spelling.
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:12:13 +01:00
snipe
f7687008b7 Added more tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:59 +01:00
snipe
b156264684 Tidied up scoping to be better for testing
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:53 +01:00
snipe
3f9a80942e Removed manual companyable from non-API views
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:23 +01:00
snipe
dc62e393c3 Hotfix for user permissions
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 21:22:21 +01:00
snipe
46be0f6610 Merge pull request #14808 from snipe/fixes/small_redirect_tweaks
Small UI tweaks and redirects when asset model is invalid
2024-05-31 20:46:07 +01:00
snipe
dd0a16c3d5 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 20:42:32 +01:00
snipe
a15ed6eaee Wrap disabled <a> links in a span for tooltips
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 19:29:29 +01:00
snipe
3005565bba Slight tweak to language
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 19:29:12 +01:00
snipe
cf45e7536f Redirect with error if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:51:58 +01:00
snipe
1d97d95c10 UI and styling tweaks
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:48:34 +01:00
snipe
4a1b1675cb Use storage helper
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:48:09 +01:00
snipe
8c5249ba4b Disable buttons on view page if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:53 +01:00
snipe
b936591240 Warn and disable on checkout if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:34 +01:00
snipe
76e664d647 Warn and disable the checkout button if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:18 +01:00
snipe
0253c2a756 Lauout tweaks, warn and disable button if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:57 +01:00
snipe
d27613f55c Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:41 +01:00
snipe
ca8d478e87 Redirect if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:32 +01:00
bryanlopezinc
c63c17d49f Added test for .env visibility for setup page 2024-05-31 17:33:57 +01:00
snipe
801e58d52e Removed manual scoping
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:58:15 +01:00
snipe
06e9625c64 Use hasUser() to avoid table collisions and infinite loop
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:58:07 +01:00
snipe
5800e8d8e9 Added companyable trait
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:57:34 +01:00
snipe
623aa58163 Removed unused statement
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:57:25 +01:00
snipe
45cfec5b29 Merge pull request #14797 from bryanlopezinc/AddTestsForSettings
Added test for setup page
2024-05-31 02:31:35 +01:00
Marcus Moore
5a9a231359 Remove alpinejs 2024-05-30 16:57:20 -07:00
Marcus Moore
1736bf5510 Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	app/Livewire/LoginForm.php
#	package.json
#	resources/views/livewire/login-form.blade.php
2024-05-30 16:56:50 -07:00
snipe
ee8931f886 Merge pull request #14799 from marcusmoore/chore/remove-unused-component
Removed unused Livewire component
2024-05-31 00:54:43 +01:00
Marcus Moore
1a1b891309 Remove unused Login Livewire component 2024-05-30 16:49:05 -07:00
Marcus Moore
2eaac3d381 Fix select2 re-renders 2024-05-30 16:20:04 -07:00
Marcus Moore
f03249898a Update id syntax in custom fields component 2024-05-30 16:12:52 -07:00
snipe
0981cfa902 Built assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 20:22:50 +01:00
snipe
37fbcfa22b Merge pull request #14798 from Godmartinz/redirect_back_to_asset_fix
Fixed checkin option from appearing
2024-05-30 19:41:02 +01:00
Godfrey M
0ee441a976 adds hidden as well 2024-05-30 11:19:06 -07:00
Godfrey M
cf8de3baa9 fix checkin option from appearing 2024-05-30 11:11:35 -07:00
bryanlopezinc
404ee238a3 Added test for setup page 2024-05-30 14:37:24 +01:00
snipe
5a5d171ba2 Put session facade back - derp
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 14:15:08 +01:00
snipe
aadee068b3 Merge pull request #14740 from Godmartinz/redirect_back_to_asset
Added Redirect options to asset check in/out
2024-05-30 14:14:04 +01:00
snipe
a46e2ebfd8 Small tweaks to user export, user view translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:59:00 +01:00
snipe
f710b1aac3 Merge pull request #14614 from akemidx/feature/sc-19796
ADDED: Export User Permissions (Superuser & Admin)
2024-05-30 13:41:26 +01:00
snipe
f6fe6e70b9 Merge branch 'develop' into redirect_back_to_asset 2024-05-30 13:38:11 +01:00
snipe
bed8861179 Merge pull request #14796 from snipe/chore/sc-25715/axios
Upgraded axios
2024-05-30 13:17:23 +01:00
snipe
180d7b1b5b Upgraded axios
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:13:25 +01:00
snipe
386416ee5d Merge pull request #14795 from snipe/bug/sc-25687/papaparse
Upgraded papaparse
2024-05-30 13:04:00 +01:00
snipe
6b5aa91f3d Upgraded papaparse
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:00:57 +01:00
Marcus Moore
e80b80f5d1 Remove manual livewire tags 2024-05-29 16:04:05 -07:00
Marcus Moore
9e35441281 Importer fixes 2024-05-29 15:50:42 -07:00
Godfrey M
e28ad50bec fixes the color change 2024-05-29 15:34:08 -07:00
Scarzy
f48c5ee252 Fix an error message 2024-05-29 22:32:45 +01:00
Scarzy
98a94dec29 Change some errors to be 404
The asset or file was not found, so 500 wasn't the best choice of error
code
2024-05-29 22:17:36 +01:00
Marcus Moore
7d95e7765d Add a few .prevents 2024-05-29 14:13:29 -07:00
Marcus Moore
ee75b30683 Enable legacy_model_binding 2024-05-29 14:06:27 -07:00
Scarzy
ca9d4e3155 Get the tests for download and delete working 2024-05-29 22:01:49 +01:00
Scarzy
633bcbb6c4 Get the file upload test working
Added the upload functionality to the get and delete tests, but I
currently don't seem to be able to reference the correct file ID
2024-05-29 22:01:49 +01:00
Scarzy
2d4af61e6c Begin to add some tests
There is currently only really a test for listing, and only for the
empty list response
2024-05-29 22:01:49 +01:00
Scarzy
45329912e6 Give a better response to listing no files on an asset
HTTP500 was never a good choice. Now it sends back an empty array
2024-05-29 22:01:49 +01:00
Scarzy
b9d56a8ecc Fix some routes
Names of some of the routes overlapped with others in an incompatible
way. This makes the names more distinct
2024-05-29 22:01:48 +01:00
Scarzy
91c1e53e52 Fix the test file location 2024-05-29 22:01:48 +01:00
Scarzy
73a87a8ea8 Add the framework of a test 2024-05-29 22:01:48 +01:00
Scarzy
bb0a614c39 Update some comments 2024-05-29 22:01:48 +01:00
Scarzy
f11ea79406 Add some sanity checks that the asset actually exists 2024-05-29 22:01:48 +01:00
Scarzy
e817b20840 Fix some responses to be more appropriate
Error/success was mixed up
2024-05-29 22:01:48 +01:00
Scarzy
516f766a44 Remove some debug code 2024-05-29 22:01:48 +01:00
Scarzy
f5791c79a5 Change the returns to be API appropriate 2024-05-29 22:01:48 +01:00
Scarzy
f6a1a76095 Add an endpoint for deleting a file 2024-05-29 22:01:48 +01:00
Scarzy
bbb9145744 Add an API endpoint to download files 2024-05-29 22:01:48 +01:00
Scarzy
194853d860 Remove a redundant line 2024-05-29 22:01:48 +01:00
Scarzy
92670d5711 Add the ability to list files for an asset 2024-05-29 22:01:48 +01:00
Scarzy
8a2ea971e1 Add an API assets files controller
Based heavily on the Assets assets files controller.
Added errors related to to the files management.
Added the API endpoints for file upload and show, but only upload is
currently tested/works.
2024-05-29 22:01:48 +01:00
Marcus Moore
8d924b60d7 Replace references to @this in importer 2024-05-29 13:51:57 -07:00
Marcus Moore
34595c266d Update script tag 2024-05-29 13:16:30 -07:00
Marcus Moore
638ae9bdd5 Use new id method 2024-05-29 13:15:59 -07:00
Godfrey M
713ce7836f add some css in label field selector 2024-05-29 13:07:33 -07:00
Marcus Moore
093c6652a8 Update select2 snippet for Livewire 3 2024-05-29 12:58:24 -07:00
Marcus Moore
17f0ac1eae Set view correctly 2024-05-29 12:57:43 -07:00
Marcus Moore
43616d1874 Remove alpine reference from webpack 2024-05-29 12:30:20 -07:00
Marcus Moore
9dc4f2ca80 Migrate config 2024-05-29 12:24:17 -07:00
Marcus Moore
73e3ac7dd8 Migrate to $dispatch 2024-05-29 12:18:31 -07:00
Marcus Moore
8ff639913d Migrate away from dispatchBrowserEvent() 2024-05-29 12:17:36 -07:00
Marcus Moore
45419586fe Migrate away from wire:model.prevent 2024-05-29 12:11:33 -07:00
Marcus Moore
d8a480b2a8 Migrate to wire:model.blur 2024-05-29 12:11:02 -07:00
Marcus Moore
29d87246a2 Migrate away from wire:model.defer 2024-05-29 12:10:46 -07:00
Marcus Moore
58e638d3cb Migrate to wire:model.live 2024-05-29 12:08:25 -07:00
Marcus Moore
b52380f376 Migrate to new namespace 2024-05-29 12:07:48 -07:00
Marcus Moore
4ae74fb7f6 Remove alpinejs from package.json 2024-05-29 12:06:54 -07:00
Marcus Moore
7d1acd3d79 Update Livewire via composer 2024-05-29 12:04:06 -07:00
snipe
12e107a71b Merge pull request #13062 from ak-piracha/feature/snipe-12892-bulk-consumable-checkout
Bulk Consumable Checkout
2024-05-29 19:42:25 +01:00
snipe
fba72e1e8d Merge pull request #14789 from snipe/fixes/14781_broken_wrench_icon
Fixed #14781 - Fixed broken wrench icon on some browsers in manufacturer section
2024-05-29 19:23:21 +01:00
snipe
7bbee053c6 Updated fa icon call
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 19:19:45 +01:00
snipe
6ea1a3bacf Merge pull request #14788 from snipe/security/Snyk-Upgrade-jquery-ui-from-1.13.2-to-1.13.3-#14735
Updated jquery-UI
2024-05-29 18:47:39 +01:00
snipe
603afe4466 Updated jquery-UI
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 18:44:39 +01:00
snipe
037ee8c07a Merge pull request #14787 from snipe/fixes/return_redirect_fixes_for_docblock
Fixes path for redirect response
2024-05-29 18:28:00 +01:00
snipe
df1cef59d5 Fixes path for redirect response
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 18:01:40 +01:00
snipe
3fcd196c04 Merge pull request #14786 from snipe/security/upgrade_bs_tables
#14743 - Upgrade bootstrap-table from 1.22.3 to 1.22.5
2024-05-29 13:12:07 +01:00
snipe
8ee5e7cd0a #14743 - Upgrade bootstrap-table from 1.22.3 to 1.22.5
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 13:10:46 +01:00
snipe
1ec85063ee Merge pull request #14785 from snipe/fixes/updates_facade_paths
Fixed/updated facade paths
2024-05-29 13:03:13 +01:00
snipe
92ba889cae Updated/removed facades
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:53:51 +01:00
snipe
f17162c2e2 Use artisan facade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:40:05 +01:00
snipe
fb233c0aa4 Cleaned up facade names and references
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:38:15 +01:00
snipe
369c819a27 Merge pull request #14754 from Godmartinz/footer_user_bug
Removed extra div from User Details.
2024-05-29 11:29:02 +01:00
snipe
f1eb4bd3a5 Merge pull request #14349 from snipe/jerm/update-mailer-configs
Update mailer configurations for Symfony mailer
2024-05-29 11:25:55 +01:00
snipe
2f828683da Merge pull request #14783 from snipe/fixes/fixed_category_test_depreciation_warning
Fixed deprecation warning on category test
2024-05-29 11:19:31 +01:00
snipe
13db151297 Fixed deprecation warning on category test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 11:06:51 +01:00
snipe
bb95c231e5 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 10:55:12 +01:00
snipe
dcea14fb99 Merge pull request #14778 from uberbrady/fix_8_3_compat
Allows Snipe-ITv7 to install on PHPv8.1-8.3
2024-05-29 10:55:02 +01:00
snipe
282fed27da Add @bryanlopezinc as a contributor 2024-05-29 10:46:59 +01:00
snipe
cf3ffe9c74 Merge pull request #14782 from bryanlopezinc/ReduceIDeErrors
Reduce IDE errors in App\Http\Controllers\SettingsController
2024-05-29 10:46:03 +01:00
bryanlopezinc
5d01a06245 Reduce IDE errors in App\Http\Controllers\SettingsController 2024-05-29 08:07:49 +01:00
snipe
02cdda56e2 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 02:00:25 +01:00
snipe
ffecd97665 Bumped laravel in readme
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 02:00:21 +01:00
snipe
779cf9418e Merge pull request #14780 from marcusmoore/fixes/sqlite-tests-in-gh
Fixed sqlite tests in GitHub Actions
2024-05-29 01:59:12 +01:00
Marcus Moore
34b4452645 Skip "migrating" and run passport:keys for sqlite testing in GH 2024-05-28 17:41:01 -07:00
snipe
da1c4c23e6 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 00:26:37 +01:00
snipe
a5d0a21757 Fixed string path
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 00:26:33 +01:00
snipe
29454f7288 Merge pull request #14779 from marcusmoore/fixes/fix-group-create-endpoint
Fixed Array to string conversion exception in group create api endpoint
2024-05-28 23:26:34 +01:00
Brady Wetherington
e271711c5b Added the clock-lts repo which allows use on php8.1-8.3 2024-05-28 22:50:09 +01:00
Marcus Moore
4c78da3bbf Re-add json encoding of permissions 2024-05-28 13:03:09 -07:00
Marcus Moore
71bab2c315 Improve test case 2024-05-28 13:02:44 -07:00
snipe
fceba13b03 Merge pull request #14777 from snipe/fixes/reportscontroller_optimizations
Reports controller query optimizations
2024-05-28 18:08:27 +01:00
snipe
8ac3937bf4 Commented model loading on asset model
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:03:19 +01:00
snipe
1c1729854e Use statics for location, supplier, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:02:22 +01:00
snipe
14c78d9065 Use static for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:02:09 +01:00
snipe
b1cb9259da Re-use total to avoid duplicate count
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:01:47 +01:00
snipe
7d2af61989 Merge pull request #14775 from snipe/bug/sc-25676/groups_api
Fixed #14771: improvements to groups API
2024-05-28 15:33:36 +01:00
snipe
03b5c2e246 Fixed bad translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:21:28 +01:00
snipe
33d5d5e24f Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:21:13 +01:00
snipe
3df2a4a70b Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:16:44 +01:00
snipe
6b41970e97 Check that selected is an array
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:15:31 +01:00
snipe
92eb6eb1b6 Add unique constraint to name
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:09:31 +01:00
snipe
206238e83f Merge pull request #14773 from snipe/bug/sc-25674/location_currency_on_edit
Pass accessory's currency if set by location
2024-05-28 10:29:20 +01:00
snipe
df882bbcbc Pass item’s currency if set by location
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 10:24:10 +01:00
snipe
6c1c3a99dd Bumped current_snipeit_version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 19:22:24 +01:00
snipe
54067ec449 Fixed pre-version in version.php
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 18:21:46 +01:00
snipe
4c11e97922 Bumped version to dev, bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 18:20:32 +01:00
Brady Wetherington
8df9007a8e Merge branch 'snipeit_v7_laravel10' into develop 2024-05-27 18:08:27 +01:00
snipe
702b944698 Merge remote-tracking branch 'origin/develop' 2024-05-27 15:46:07 +01:00
snipe
172d24fd3c Merge pull request #14770 from uberbrady/add_locations_parent_index
Add index to 'parent_id' for users with large number of locations
2024-05-27 15:43:49 +01:00
Brady Wetherington
28b450fd3c Add index to 'parent_id' for users with large number of locations 2024-05-27 15:38:42 +01:00
snipe
485caf1d92 Merge pull request #14755 from marcusmoore/chore/sc-25103/add-tests-around-asset-checkout
Added tests around asset checkout
2024-05-25 11:33:33 +01:00
snipe
29cd75a6d2 Merge pull request #14766 from snipe/chore/sc-25656/minus_icon_for_fieldsets
Changed icon, added translation
2024-05-25 11:19:56 +01:00
snipe
b3fe10baa8 Merge branch 'snipeit_v7_laravel10' into chore/sc-25656/minus_icon_for_fieldsets 2024-05-25 11:19:43 +01:00
snipe
093cc9faf0 Merge pull request #14767 from snipe/chore/sc-25657/improved-translations
Improved translations
2024-05-25 11:19:14 +01:00
snipe
be4e809254 Merge pull request #14762 from marcusmoore/chore/update-v7-test
Fixed test by removing non-existent trait
2024-05-25 11:18:54 +01:00
snipe
dc5e15f919 Added translation for external link
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 11:02:07 +01:00
snipe
ad7b291062 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:55:48 +01:00
snipe
b54c1caa74 Improved translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:43:28 +01:00
snipe
c3cf123189 Better translation for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:39:47 +01:00
snipe
3a2900621c Changed icon, added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:20:52 +01:00
Godfrey M
442903ea5e trying to get link to work, fixed up markup and url 2024-05-23 16:08:18 -07:00
Marcus Moore
639cbf6d53 Remove passport:install command 2024-05-23 15:56:58 -07:00
Marcus Moore
e03b5754a8 Combine steps 2024-05-23 15:54:32 -07:00
Marcus Moore
4ce86a061f Set DB_CONNECTION 2024-05-23 15:43:59 -07:00
Marcus Moore
fa6e170feb Install passport 2024-05-23 14:01:06 -07:00
Marcus Moore
51f72daba1 Debugging step 2024-05-23 13:55:03 -07:00
spencerrlongg
8ce577db37 adds @snipe's rules for undeleted assigned targets 2024-05-23 15:51:26 -05:00
Godfrey M
d3ab152d30 adds reminder notification constructor and updates markdown 2024-05-23 12:47:02 -07:00
Marcus Moore
a130033480 Revert "Add Install Passport step"
This reverts commit ef95ede833.
2024-05-23 12:45:38 -07:00
Marcus Moore
ef95ede833 Add Install Passport step 2024-05-23 12:32:34 -07:00
Spencer Long
cdb1140f10 Merge branch 'develop' into bug/sc-24884 2024-05-23 13:53:00 -05:00
Marcus Moore
d06e5f25b0 Remove old trait from test 2024-05-23 11:51:08 -07:00
U-H-T
2777ac96cc add logo support for Brother TZe24mm labels 2024-05-23 11:10:23 +02:00
snipe
fd42f1ef24 Merge remote-tracking branch 'origin/develop' 2024-05-23 08:39:31 +01:00
snipe
8b3ff5a82d Handle potentially deleted admin users in license export
Signed-off-by: snipe <snipe@snipe.net>
2024-05-23 08:39:15 +01:00
Marcus Moore
482ebfbb68 Implement test 2024-05-22 17:21:29 -07:00
Marcus Moore
67c4fa2966 Improve event assertions 2024-05-22 17:14:10 -07:00
Marcus Moore
a3389a31cd Update test name and add todo 2024-05-22 17:10:16 -07:00
Marcus Moore
8d74a976a1 Merge branch 'develop' into chore/sc-25103/add-tests-around-asset-checkout 2024-05-22 16:09:27 -07:00
Marcus Moore
6d104251b3 Remove todo 2024-05-22 15:40:54 -07:00
Marcus Moore
f16c79bb9a Improve event assertions 2024-05-22 15:38:23 -07:00
Marcus Moore
1fe22e4b7b Re-order scenarios 2024-05-22 13:33:41 -07:00
Marcus Moore
c7fa2c04ad Add scenario 2024-05-22 13:33:12 -07:00
Marcus Moore
8ca882d1c8 Complete a scenario 2024-05-22 13:23:49 -07:00
Marcus Moore
5d368990dc Fix assertion 2024-05-22 13:15:51 -07:00
Brady Wetherington
4adbd7af4c Merge branch 'develop' into snipeit_v7_laravel10 2024-05-22 21:02:11 +01:00
Marcus Moore
1935a4aca3 Improve scenario naming 2024-05-22 12:47:33 -07:00
Godfrey M
c4d96f6ea3 removed extra div 2024-05-22 12:35:32 -07:00
snipe
986d5641f6 Merge remote-tracking branch 'origin/develop' 2024-05-22 18:39:25 +01:00
snipe
e163d5cfc7 Merge pull request #14753 from snipe/chore/sc-24895/add_exif_to_upgrade_php_file
Added exif to required extensions
2024-05-22 18:31:47 +01:00
snipe
b1e7c772ae Added exif to required extensions
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 18:27:52 +01:00
snipe
dce1854ac4 Merge remote-tracking branch 'origin/develop' 2024-05-22 18:04:53 +01:00
snipe
c4b4923ff8 Add @LeePorte as a contributor 2024-05-22 18:04:24 +01:00
snipe
c20d10d4f2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-22 17:50:14 +01:00
snipe
b0479d543d Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-22 17:49:33 +01:00
snipe
81704c1d40 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:49:29 +01:00
snipe
d3798bf251 Merge pull request #14752 from snipe/fixes/better_handle_data_file_mismatch_in_user_files
Nicer handling of erroring when filename+log do not match
2024-05-22 17:47:39 +01:00
snipe
4bb7c1701f Fiddled with storage facade a little more
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:44:49 +01:00
snipe
5fd0f56258 Use proper storage facade for checking if the file exists
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:38:49 +01:00
snipe
37d7e89e93 Fixed error message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:29:43 +01:00
snipe
3ab197075a Nicer handling of erroring when filename+log do not match
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:20:03 +01:00
Brady Wetherington
12e8ac8b41 Merge pull request #14751 from uberbrady/docker-permissions-fix-rebased
Fixed #12299: permissions on storage dir in Docker (rebased)
2024-05-22 16:57:35 +01:00
Lee Porte
6783dc1312 Fixed #12299: permissions on storage dir in Docker
Fixes #12299, where currently there is no recursive permissions set on
/var/www/html/storage/ during build time. As a result this requires
users to run an exec into the container and change the permissions
before they are able to initiate the setup. Without this a 500 error is
thrown and little is evident in the docker logs as to what the issue
is.
2024-05-22 16:54:07 +01:00
snipe
b489c71fa2 Removed generated file
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 13:09:02 +01:00
snipe
cf5f6f9b13 Created by OWASP Threat Dragon 2024-05-22 13:06:32 +01:00
snipe
860432acc5 Merge remote-tracking branch 'origin/develop' 2024-05-22 12:45:26 +01:00
snipe
c9f7847fb3 Merge pull request #14745 from snipe/fixes/self_api_endpoint
Refactor group syncing on user edit API endpoint
2024-05-22 12:43:22 +01:00
snipe
6fad085a7d Removed debug in test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:37:49 +01:00
snipe
4b23ef4021 Added new test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:35:03 +01:00
snipe
bb96a190fd Moved validator
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:34:48 +01:00
snipe
e1eb457f3d Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:03:46 +01:00
snipe
51025aad57 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:03:38 +01:00
snipe
14c4765be2 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:52 +01:00
snipe
3afe996755 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:47 +01:00
snipe
0891bd747a Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:31 +01:00
Godfrey M
f2693ee957 conditionally fixed redirect select option 2024-05-21 14:08:35 -07:00
Godfrey M
0327e71f0f made message the keys, cleaned up array 2024-05-21 13:26:29 -07:00
Godfrey M
69c2cf2c4f fixed assetcheckin test, created redirect option test 2024-05-21 13:13:25 -07:00
Godfrey M
9f02be0823 removed extra div 2024-05-21 10:15:18 -07:00
Godfrey M
b5553af8ed rename variable 2024-05-21 10:11:53 -07:00
Godfrey M
4d6f4303f5 fixed partial up 2024-05-21 10:11:01 -07:00
Godfrey M
8a0afae90f fixed query, fixed no email logic, needs new markdown 2024-05-21 09:42:00 -07:00
snipe
34f1ea1c0e Re-order gating and refactor group syncing
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 10:00:49 +01:00
snipe
e3561ad38e Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 09:56:57 +01:00
snipe
a7ccf0efff Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 09:56:51 +01:00
snipe
f422c2ecad Merge pull request #14741 from Godmartinz/footer-issue
removed extra div tags
2024-05-20 20:44:27 +01:00
Godfrey M
db9c435ae0 removed extra div tags 2024-05-20 10:48:57 -07:00
Godfrey M
a53f89cd2c remove license checkout changes p2 2024-05-20 10:26:45 -07:00
Godfrey M
280c03dcad remove license checkout changes 2024-05-20 10:25:59 -07:00
Godfrey M
e70fb42f87 remove license redirects 2024-05-20 10:22:01 -07:00
Brady Wetherington
f633dbba64 Merge branch 'develop' into snipeit_v7_laravel10 2024-05-20 12:55:29 +01:00
snipe
cc0f2d7074 Merge remote-tracking branch 'origin/develop' 2024-05-20 11:22:34 +01:00
snipe
a820f248c8 Merge pull request #14736 from snipe/fixes/small_translation_additions
Fixes/small translation additions
2024-05-20 11:21:47 +01:00
snipe
6a6272ace3 Translate no records found message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:47 +01:00
snipe
bcb747f886 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:37 +01:00
snipe
771c85e347 Translated account save message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:31 +01:00
snipe
e5c358a1fe Merge pull request #14731 from snipe/features/csp_env
Fixed #14664 - allow additional urls in env for CSP
2024-05-16 22:25:11 +01:00
snipe
52c906f6b8 Added to env.example
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 22:21:52 +01:00
snipe
ca1555d962 Fixed #14664 - allow additional urls in env for CSP
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 22:19:18 +01:00
snipe
0d4f13219b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-16 22:00:07 +01:00
snipe
7fdbbc846e Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 21:59:38 +01:00
snipe
dbbbb103a0 Merge pull request #14730 from snipe/localizations/updated_strings
Updated translations
2024-05-16 21:58:24 +01:00
snipe
2182ea1ce8 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 21:57:19 +01:00
snipe
f2cc9ec1dd Merge remote-tracking branch 'origin/develop' 2024-05-16 19:57:46 +01:00
snipe
54b24434e1 Set file name variable
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 19:56:58 +01:00
snipe
653ad562a4 Updated codacy link
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 18:56:44 +01:00
snipe
7743b03129 Merge remote-tracking branch 'origin/develop' 2024-05-16 18:51:27 +01:00
snipe
84a601f364 Merge pull request #14729 from snipe/fixes/attribute_for_purchase_date
Sets purchase date as date (versus datetime) in labels
2024-05-16 18:49:49 +01:00
snipe
88d131666c Sets purchase date as date (versus datetime) in labels
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 18:40:49 +01:00
snipe
d691f3b315 Merge remote-tracking branch 'origin/develop' 2024-05-16 16:37:47 +01:00
snipe
00a9d5f33e Merge pull request #14719 from snipe/fixes/add_next_audit_date_to_assets_form
Added next audit date to assets form
2024-05-16 16:33:49 +01:00
snipe
eb0fd2f519 Removed stricter validation :(
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 16:29:11 +01:00
snipe
81efaa7481 Merge branch 'develop' into fixes/add_next_audit_date_to_assets_form 2024-05-16 16:13:21 +01:00
snipe
2539c9e697 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 16:01:41 +01:00
snipe
3dfd471fa4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-05-16 15:33:50 +01:00
snipe
4119526889 Merge pull request #14728 from snipe/fixes/smarter_decryption_in_activity
Only attempt to decrypt custom fields in activity log if the value is not empty
2024-05-16 15:31:18 +01:00
snipe
6b3346d90c Only attempt to decrypt if there is a value
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:28:25 +01:00
snipe
312ce51de6 Removed more debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:25:57 +01:00
snipe
09914f508f Removed more debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:16:52 +01:00
snipe
45eda0f611 Removed debug lines
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:09:27 +01:00
snipe
de088d452f Merge pull request #14451 from Godmartinz/add_decline_note_to_acceptance
Adds a note text area to asset acceptances/declines
2024-05-16 15:06:05 +01:00
snipe
2f18430ce4 Merge pull request #14725 from snipe/features/added_security_dot_txt
Added security.txt file
2024-05-16 09:59:46 +01:00
snipe
8d67e02d63 Added security.txt file
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 09:56:11 +01:00
Phil
1b85eea28e added new compose and env files 2024-05-16 02:13:31 +02:00
Godfrey M
fb9a5f928f removed license changes 2024-05-15 16:39:26 -07:00
Phil
4459483862 moved env. to own dev-file 2024-05-16 01:06:47 +02:00
Phil
a0cf7ecc98 moved file to dev-specific naming-scheme 2024-05-16 00:05:59 +02:00
Godfrey M
c658a0fcb4 fixes description 2024-05-15 13:20:05 -07:00
Godfrey M
f40284c413 adds acceptance reminder command 2024-05-15 13:04:58 -07:00
snipe
8e35a56386 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 20:01:04 +01:00
snipe
30f738646e Merge pull request #14700 from marcusmoore/chore/sc-25471
Updated alpine to the latest version (3.13.10)
2024-05-15 19:59:51 +01:00
snipe
55281313d8 Merge pull request #14474 from Godmartinz/asset-location-update-bug
Fixed user assets not updating when a user changes location
2024-05-15 19:20:14 +01:00
Godfrey M
786799225c remove dd 2024-05-15 10:37:07 -07:00
snipe
c137fafa97 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 18:10:43 +01:00
snipe
cb22a3d556 Updated comments again :-/
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 17:52:50 +01:00
snipe
c7accb4599 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 17:38:42 +01:00
snipe
72c85f93b6 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:47:45 +01:00
snipe
c1d5b8713b Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
8310b91e00 Use UploadFileRequest for audit files
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
71b5bf2eef Added visual on the hardware view screen
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
ab8b40745e Added next audit date to create/edit asset screen
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
16ec47573b Added help text to bulk edit blade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
556d0b44a3 Added asset
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
0734d5b0b6 Added help text
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
f158a369a4 Added/updated string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
bdbfb0f2a1 Added accessor and mutator for next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
e5653eaa93 Save new data
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
3c4098038d Fail early if no tag
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
8841e21dc9 Removed quickscan header
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
f5e03b264f Show additional help text if help text is given
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
eb09a99eb0 Merge pull request #14707 from spencerrlongg/bug/sc-24912
Bulk Edit Tests and Tweaks
2024-05-15 11:22:31 +01:00
Godfrey M
dc418a7033 need to make variables names uniform 2024-05-14 14:09:54 -07:00
Godfrey M
15cc4345ab adds dynamic redirects to Assets 2024-05-14 13:25:52 -07:00
Godfrey Martinez
5272824d85 Merge branch 'develop' into asset-location-update-bug 2024-05-13 10:47:25 -07:00
snipe
9bce0f2ff7 Format fix
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 18:19:14 +01:00
snipe
d2e7e11dca Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 12:48:28 +01:00
snipe
6823aabf92 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-13 10:53:07 +01:00
snipe
f2dddc1226 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 10:51:44 +01:00
snipe
957becabb9 Merge pull request #14715 from snipe/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.1
Bump codacy/codacy-analysis-cli-action from 4.4.0 to 4.4.1
2024-05-13 10:26:33 +01:00
dependabot[bot]
7df03722ee Bump codacy/codacy-analysis-cli-action from 4.4.0 to 4.4.1
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.4.0...v4.4.1)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 08:53:06 +00:00
snipe
4642f50d6b Merge remote-tracking branch 'origin/develop' 2024-05-11 15:14:57 +01:00
snipe
2decc3d6d3 Merge pull request #14711 from snipe/jerm/fix-all-query-in-sidebar-middleware
Fix memory-hog query in AssetCountForSidebar middleware
2024-05-11 01:35:09 +01:00
Jeremy Price
2adc4ffa96 Fix memory-hog query in AssetCountForSidebar middleware
https://github.com/snipe/snipe-it/pull/14702/files introduced a bug
where instead of doing a quick `select count(*)` of assets, it did a `select *` of
assets, moving the count from the database to the PHP process.

This caused OOM issues in memory-constrained environments with lots of
assets, and also presented a speed issue even when memory limited were
increased.

Additionally, given this populates the sidebar, this was likely an issue
on every page load that included the sidebar.

The fix is simply removing the `all()->`, ending up with Asset::count(),
which yields the desired `select count(*)` DB query.
2024-05-10 12:54:40 -07:00
snipe
c8fbf7640c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-05-08 12:16:17 +01:00
snipe
46779ca865 Merge pull request #14697 from snipe/bug/sc-25502/disable_delete_if_not_deletable_user
Fixed UI where delete button was not disabled even if the user couldn't be deleted
2024-05-08 12:06:33 +01:00
snipe
86661e79d1 Merge pull request #14702 from Toreg87/fixes/total_asset_count
Fixes #14701 - wrong total asset count
2024-05-08 11:52:46 +01:00
Tobias Regnery
b2a5d86e30 Fixes #14701 - wrong total asset count
The total asset count in the sidenav shows the ready to deploy count instead of the total count.
Fix this by adjusting the query to all assets. Also respect the setting for archived assets.
Add a default value for total assets, since we are now using the settings-variable, which is not available during the setup process.

While at it, move the block for total assets before the ready to deploy assets to match the ordering of the sidenav.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2024-05-08 09:34:35 +02:00
Marcus Moore
d7f0ee49b7 Update Alpine to 3.13.10
Includes fix to new label engine.
2024-05-07 17:08:05 -07:00
spencerrlongg
5b86ee7291 a couple more tests 2024-05-07 17:19:00 -05:00
spencerrlongg
ad2ba252ee two new test 2024-05-07 15:11:33 -05:00
spencerrlongg
17ef20ea92 alright, in a working place 2024-05-07 14:08:47 -05:00
snipe
8c327e6523 Handle user not found properly
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 19:16:56 +01:00
snipe
386b2839e8 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 18:59:24 +01:00
snipe
934593e0b6 Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 18:09:55 +01:00
snipe
a7aa178f24 Used localized strings
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:56:07 +01:00
snipe
69122034e7 Fixed icon table headers
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:55:33 +01:00
snipe
1117f4289d Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:55:10 +01:00
snipe
97bc4a092f Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:40:48 +01:00
snipe
d942b8f1fb Fixed alias names
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:40:35 +01:00
snipe
49dc9767b6 Added debugging :(
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 15:54:43 +01:00
snipe
482965197d Added users, locations to presenter, transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:41 +01:00
snipe
410b547f3c Added users and locatipon count to API
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:28 +01:00
snipe
f769e8247f Added ManagedUsers method, additional checks in isDeletable()
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:15 +01:00
snipe
2b4a536f85 Added CSS for users, locations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:06:54 +01:00
snipe
92ae069629 Disable button in UI if user cannot be deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:06:35 +01:00
snipe
6f40b21986 Merge remote-tracking branch 'origin/develop' 2024-05-07 08:38:09 +01:00
snipe
3084521521 Merge pull request #14693 from snipe/fixes/14692_view_share_undefined
Fixes #14692 - set default variables for sidebar totals
2024-05-07 08:37:10 +01:00
snipe
4f12c86e74 Fixes #14692 - set default variables for sidebar totals
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 08:34:22 +01:00
snipe
204de99a64 Merge remote-tracking branch 'origin/develop' 2024-05-07 08:12:31 +01:00
snipe
fd929f5dd9 Merge pull request #14690 from marcusmoore/import-settings-properly
Load settings in `SendUpcomingAuditReport` command
2024-05-07 07:42:34 +01:00
Marcus Moore
7e9c8ba290 Remove duplicate settings call 2024-05-06 17:08:16 -07:00
Marcus Moore
6f639f7bf0 Load settings properly in SendUpcomingAuditReport command 2024-05-06 16:44:14 -07:00
snipe
3594ed67d1 Removed back buttons on settings index
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 20:48:32 +01:00
snipe
d36a06d8e1 Merge remote-tracking branch 'origin/develop' 2024-05-06 20:34:49 +01:00
snipe
c816b960b5 Fixed stray closing paren
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 20:34:36 +01:00
Brady Wetherington
5b02a43957 Merge branch 'develop' into snipeit_v7_laravel10 2024-05-06 18:44:03 +01:00
snipe
4913e56086 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-06 18:43:48 +01:00
snipe
4d00bb98d1 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 18:39:55 +01:00
snipe
db2baae758 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-05-06 18:37:52 +01:00
snipe
fdecdf4b15 Merge pull request #14689 from KorvinSzanto/develop
Capitalize `N` instead of `y` since no is default
2024-05-06 17:48:16 +01:00
Korvin Szanto
5c1d4aff23 Capitalize N instead of y since no is default 2024-05-06 09:00:33 -07:00
snipe
bf0edcb92e docs: add @gitgrimbo as a contributor 2024-05-06 12:59:26 +01:00
snipe
39fa8ef3c0 docs: add @chandanchowdhury as a contributor 2024-05-06 12:55:47 +01:00
snipe
9e8a369bc8 docs: add @PP-JN-RL as a contributor 2024-05-06 12:54:35 +01:00
snipe
3f3fe8935f docs: add @jeffclay as a contributor 2024-05-06 12:54:20 +01:00
snipe
82387630c7 docs: add @squintfox as a contributor 2024-05-06 12:54:06 +01:00
snipe
16c5033514 docs: add @Q4kK as a contributor 2024-05-06 12:53:34 +01:00
snipe
46ffaee1e4 docs: add @franceslui as a contributor 2024-05-06 12:53:06 +01:00
snipe
d936f92a7d docs: add @mustafa-online as a contributor 2024-05-06 12:52:46 +01:00
snipe
b424ddf42d docs: add @koiakoia as a contributor 2024-05-06 12:51:40 +01:00
snipe
b3d5a893fc Fixed text
via (@koiakoia )

Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:49:54 +01:00
snipe
69ea6eebae Merge pull request #14688 from snipe/security/Upgrade-tableexport.jquery.plugin-from-1.28.0-to-1.30.0
[Snyk] Upgrade tableexport.jquery.plugin from 1.28.0 to 1.30.0 #14656
2024-05-06 12:47:01 +01:00
snipe
0892c34125 [Snyk] Upgrade tableexport.jquery.plugin from 1.28.0 to 1.30.0 #14656
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:45:33 +01:00
snipe
52e14d501f Merge pull request #14687 from snipe/security/upgrade_fontawesome_from-6.5.1-to-6.5.2
Upgrade fontawesome from 6.5.1 to 6.5.2
2024-05-06 12:22:50 +01:00
snipe
4d093160fc Upgrade @fortawesome/fontawesome-free from 6.5.1 to 6.5.2 #14647
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:21:34 +01:00
snipe
0bcca99573 Merge pull request #14686 from snipe/security/upgrade_alpine_to_3.13.8
[Snyk] Upgrade alpinejs from 3.13.5 to 3.13.8 #14646
2024-05-06 12:16:00 +01:00
snipe
63516c4a4f [Snyk] Upgrade alpinejs from 3.13.5 to 3.13.8 #14646
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:12:59 +01:00
snipe
19fb79ffff Merge pull request #14661 from ubc-cpsc/bugfix/CVE-2024-32489
Upgrade tecnickcom/tcpdf from version 6.7.4 to 6.7.5 to address the security vulnerability CVE-2024-22640
2024-05-06 11:58:31 +01:00
snipe
02835de13d Merge pull request #14679 from mustafa-online/develop
Improve RTL support
2024-05-04 15:47:14 +01:00
Mustafa Online
55b004d53d Improve RTL support 2024-05-04 13:32:42 +02:00
Mustafa Online
c1b72a8ce6 Revert "Improve RTL support"
This reverts commit fa0bea87e6.
2024-05-04 13:31:52 +02:00
Mustafa Online
fa0bea87e6 Improve RTL support
I'm starting to make some improvements to RTL support, more PR's to come to address other parts.
2024-05-04 13:17:48 +02:00
Godfrey M
c94a7613ca dropdown redirect options, helper function and session variable added 2024-05-02 12:16:20 -07:00
snipe
d146426dd8 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 14:02:53 +01:00
snipe
1e1782c232 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-05-02 14:02:36 +01:00
snipe
dab5874fd7 Merge pull request #14391 from snipe/features/add_Brother_188mm_tape_label
Added Brother 18mm label type
2024-05-02 13:14:04 +01:00
snipe
4850227c04 Merge pull request #14655 from snipe/feature/sc-25381/simpler_overdue_endpoints
Refactored due/overdue for audit, added due/overdue for checkin API endpoint and GUI
2024-05-02 13:11:51 +01:00
snipe
eb9a654cc3 Moved settings call higher
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:37:41 +01:00
snipe
4224bc0c43 Removed extra settings param
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:36:57 +01:00
snipe
f893b23129 Refactored title blade areas
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:35:52 +01:00
snipe
8c65880504 Changed badge to span in default blade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:35:41 +01:00
snipe
53cadf80fa Removed assertions for factories
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:24:31 +01:00
Robert-Azelis
3ea5d4ee40 Update BulkAssetsController.php
Fix for bulk updarte of purchase date to calculate new EOL
2024-05-02 12:55:17 +02:00
spencerrlongg
e177993bcc notes and some playing around, push for eod 2024-05-01 16:57:11 -05:00
spencerrlongg
6a7f3ecc2e new test not quite working, almost there 2024-05-01 16:12:56 -05:00
spencerrlongg
39cc99c89b all initial attributes set in test 2024-04-30 22:22:59 -05:00
spencerrlongg
25480293dc change keys to values, add test 2024-04-30 18:03:26 -05:00
Godfrey M
5fa0c87ab0 null debugbar 2024-04-30 12:02:11 -07:00
Godfrey M
75aa01791a adds location select to the create new user vice asset checkout 2024-04-30 11:54:33 -07:00
Frances Lui
8b3bfc6bc9 Fixes CVE-2024-32489 2024-04-29 16:33:00 -07:00
snipe
19cff25300 Merge pull request #14651 from marcusmoore/bug/sc-25402
Fixed `purchase_cost` not being allowed to be a string when creating asset via api
2024-04-27 03:39:10 +01:00
snipe
848e1fe1f6 Refactored audit alerts
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:26:00 +01:00
snipe
fe147adec3 Refactor checkin alert
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:10:54 +01:00
snipe
103809b65f Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:01:43 +01:00
snipe
a398496dd4 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:01:27 +01:00
snipe
839db8ef44 Refactored due-or-overdue methods
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:27 +01:00
snipe
bfd0530597 Fixed notification
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:13 +01:00
snipe
494ec5cd9c Added tests for due-or-overdue
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:04 +01:00
snipe
fc61a4b88d Fixed badge HTML
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:50:58 +01:00
snipe
50d8b02f8b Removed unused scope
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:23:27 +01:00
snipe
860764a436 Use totals for sidebar
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:12:21 +01:00
snipe
52d6a8990a Check that the asset is not already checked in
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:06:46 +01:00
snipe
87de67e4a9 Fixed test for checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:06:26 +01:00
snipe
8356b57fb4 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:34 +01:00
snipe
3f04afee5c Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:26 +01:00
snipe
2117f61e8c More view sharing for sidebar
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:15 +01:00
snipe
d40604b574 Removed debugging, added date cast
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:05 +01:00
snipe
76129e9011 Use trans_choice for title
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:59:13 +01:00
snipe
9c8411c7ff Added checkin due blade
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:56 +01:00
snipe
c661d732b3 Refactored sidenav links for audit
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:44 +01:00
snipe
fbe9daace6 Use pattern in API route
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:29 +01:00
snipe
651001bf6e Removed duplicate routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:15 +01:00
snipe
9167f8a3ba Cleaned up tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:57:07 +01:00
snipe
6dc9ccffcd Refactor api for handling audit/expected checkins
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:56:57 +01:00
snipe
4b4e3badb7 Removed hardware audit overdue blade
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:53:36 +01:00
snipe
fe4dd23d39 Removed “all” text
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:49:12 +01:00
snipe
de6d71cc3b Use plural api endpoints in blades
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:47:19 +01:00
snipe
9e44052709 Switch to plural route name for API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:46:58 +01:00
snipe
2d112f227a Call the asset factory directly
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:37 +01:00
snipe
bd8737d986 Changed sidenav badge class
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:21 +01:00
snipe
4b6d236eb7 Added class for sidebar menu badges
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:06 +01:00
snipe
bf058bd5c6 Use updated scopes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:56 +01:00
snipe
dfaf01e8aa Updated asset counters
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:47 +01:00
snipe
2888dd6fd8 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:37 +01:00
snipe
2e92ee8eee Switch to whereBetween so tests run on sqlite
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:23 +01:00
snipe
14b6a75507 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:38 +01:00
snipe
2484a9db2c Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:29 +01:00
snipe
bfc30794c5 Updated badge styling
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:22 +01:00
snipe
27bc7a847b Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:11 +01:00
Marcus Moore
2a71877bec Add additional condition 2024-04-25 17:04:07 -07:00
Marcus Moore
30bd920497 Add conditional 2024-04-25 16:24:12 -07:00
Marcus Moore
1d5b48b88d Add comment and improve method 2024-04-25 16:22:15 -07:00
spencerrlongg
97a6152ea9 update comment per @uberbrady 2024-04-25 17:47:55 -05:00
spencerrlongg
03f091a77f ammended note, got real rule in there 2024-04-25 17:17:42 -05:00
Marcus Moore
4295bad12f Separate test cases 2024-04-25 14:07:56 -07:00
Marcus Moore
3a2eeaea7a WIP: Future-proof rules being converted to array syntax 2024-04-24 17:40:40 -07:00
Marcus Moore
12418ae91b WIP: allow EU style purchase cost via api 2024-04-24 17:18:29 -07:00
Marcus Moore
783a24eb68 Add test for ParseCurrencyMethod 2024-04-24 17:17:42 -07:00
Brady Wetherington
3f5c5cbe82 Merge branch 'develop' into snipeit_v7_laravel10 2024-04-24 16:24:43 +01:00
snipe
2439758ef3 Merge pull request #14587 from Godmartinz/License-export-button
Added a License Export function and button
2024-04-24 04:42:56 +01:00
spencerrlongg
8696a423b0 another option 2024-04-23 17:38:40 -05:00
spencerrlongg
107f8db9bc another option 2024-04-23 17:35:33 -05:00
spencerrlongg
b11c900a4c fix bracket, + overwrite required rulesets 2024-04-23 16:29:07 -05:00
akemidx
ac4aa97103 develop reheading 2024-04-23 17:05:50 -04:00
akemidx
0bc93c6a1e space 2024-04-23 15:31:37 -04:00
Spencer Long
53ccd196d7 Merge branch 'develop' into bug/sc-24884 2024-04-23 13:57:59 -05:00
snipe
685f1cbfb8 Merge pull request #14499 from Godmartinz/remove_encrpyt_from_labels
Removed encrypted fields from label options
2024-04-23 13:31:38 +01:00
snipe
e2d1e6b0c5 Merge pull request #14608 from akemidx/bug/sc-25232
Left Sidebar Was Not Respecting Theme
2024-04-23 12:32:48 +01:00
snipe
56cb9a0f4e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2024-04-23 10:28:50 +01:00
snipe
c8c81a360c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-23 10:26:43 +01:00
snipe
bdd43b7134 Merge pull request #14602 from uberbrady/fix_saving_encrypted_custom_fields
Re-enabled updating encrypted custom fields via API [sc-41465]
2024-04-23 10:20:55 +01:00
snipe
c50d5a678a Merge pull request #14616 from akemidx/bug/sc-25235
REMOVED: Dark Theme Button Text Coloring
2024-04-23 09:20:57 +01:00
Godfrey M
96b3af7cbc fixed view from sending all custom fields 2024-04-22 18:27:34 -07:00
Godfrey Martinez
9e7bbc968d Merge pull request #15 from Godmartinz/License-export-button_p2
adds licenses available, updated teranslations
2024-04-22 17:59:52 -07:00
Godfrey M
5fc6771543 adds licenses available, updated teranslations 2024-04-22 17:58:49 -07:00
akemidx
0d049a0be7 conflict resolution 2024-04-22 20:09:40 -04:00
akemidx
01c24ab4cd translating text 2024-04-22 19:16:14 -04:00
Marcus Moore
155f5f35cd Remove todo 2024-04-22 15:47:05 -07:00
snipe
7ad6caf30a Merge pull request #14632 from marcusmoore/bug/sc-25384
Added "select" option to top of data sources in new label engine
2024-04-22 20:40:31 +01:00
Marcus Moore
ac8aab0043 Add default "select an option" to data source options 2024-04-22 12:22:10 -07:00
Godfrey M
14ddf36d46 removed two duplicate translations 2024-04-22 10:43:11 -07:00
Godfrey M
25f1167c9d adds company scoping to license export 2024-04-22 10:38:55 -07:00
Godfrey M
420225c2d5 Merge branch 'refs/heads/develop' into License-export-button 2024-04-22 10:33:30 -07:00
Marcus Moore
45f5eaac5b Extract CanSkipTests trait 2024-04-22 10:32:37 -07:00
snipe
5229dd65ce Merge remote-tracking branch 'origin/develop' 2024-04-22 15:02:51 +01:00
snipe
cfe39afc11 Merge pull request #14630 from snipe/bug/sc-25377/double_encoding_assets_and_model_notes_on_upload
Removed escaping on notes for file uploads
2024-04-22 14:59:55 +01:00
snipe
2aa3ce15bd Removed escaping on notes for file uploads
Signed-off-by: snipe <snipe@snipe.net>
2024-04-22 14:55:02 +01:00
snipe
c9873da732 Merge pull request #14628 from snipe/bug/sc-25375/icon_mimetype_validation_fix
Added `ico`, `image/x-icon`, `image/vnd.microsoft.icon` to favicon validation
2024-04-22 13:58:08 +01:00
snipe
8dd71f99cc Added ico, image/x-icon,image/vnd.microsoft.icon to favicon validation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-22 13:54:19 +01:00
Brady Wetherington
ab45975883 Mark custom fields tests as 'incomplete' if the DB is mysql 2024-04-22 13:11:36 +01:00
snipe
7f38ca239e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-04-19 16:24:32 +01:00
snipe
c3b982e759 Merge pull request #14622 from snipe/bug/sc-25363/z-index-bs-table-check-boxes-fix
Reeduced z-index of bs table override
2024-04-19 16:11:21 +01:00
snipe
e330e80c46 Reeduced z-index of bs table override
Signed-off-by: snipe <snipe@snipe.net>
2024-04-19 16:06:43 +01:00
akemidx
f0836d4d3a changes for button hover, removing text color changes. also added in a border for yellow and black themes 2024-04-18 19:36:35 -04:00
akemidx
1289920217 black button border 2024-04-18 19:29:56 -04:00
snipe
a6a58094c9 Merge remote-tracking branch 'origin/develop' 2024-04-18 14:26:53 +01:00
snipe
424cbd3248 Removed noisy debug
Signed-off-by: snipe <snipe@snipe.net>
2024-04-18 14:25:54 +01:00
snipe
e59b9627c7 Merge pull request #14511 from jeffclay/features/14508_pdo_ssl_verify
Fixed #14508: Added PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT options to database.php …
2024-04-18 14:23:00 +01:00
snipe
f080c0cdcd Merge pull request #14578 from Q4kK/features/add_no_interactive
Feat: add no-interactive flag for `upgrade.php`
2024-04-18 14:19:38 +01:00
snipe
29bda2ef7d Merge pull request #14613 from marcusmoore/additional-test-cases
Added test cases around modifying user groups via api
2024-04-18 13:53:03 +01:00
akemidx
e8d9701a26 array key existing 2024-04-17 19:16:25 -04:00
Marcus Moore
1d64692fd6 Add two test cases 2024-04-17 15:23:26 -07:00
snipe
6f195cb8ec Merge pull request #14591 from snipe/bug/sc-25258/naive_fix_for_user_scoping
First fix for user FMCS scoping
2024-04-17 21:49:53 +01:00
snipe
4c02a63acc Removed activated attribute on test users
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 20:29:51 +01:00
snipe
0fc9fc7516 Minor updates to tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 20:29:01 +01:00
snipe
4450351b75 Only sync groups if API user is superadmin
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 11:06:50 +01:00
snipe
9bb15aaf1b Added individual gates to keep response consistent with other company-ed things
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:57:49 +01:00
snipe
65dd729e19 Additional gates
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:57:20 +01:00
snipe
c21142605d Added strings
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:47:56 +01:00
snipe
86e274faa3 Added API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:47:48 +01:00
snipe
5e8c129c7f Revert accidental commit
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 09:26:50 +01:00
snipe
ab3b5ca4ef Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 09:26:07 +01:00
Marcus Moore
60a5afd752 Merge branch 'factory-refactors' into fix_saving_encrypted_custom_fields 2024-04-16 17:15:22 -07:00
Marcus Moore
9d0ea857fe Import facade 2024-04-16 17:14:17 -07:00
Marcus Moore
f763aea4fc Update tests to send post request 2024-04-16 17:13:18 -07:00
Marcus Moore
e16c04250e Improve model factories 2024-04-16 16:58:28 -07:00
Marcus Moore
ad99aa460b Remove unneeded imports 2024-04-16 15:09:49 -07:00
Marcus Moore
e47f64f62d Separate test methods 2024-04-16 15:03:05 -07:00
Marcus Moore
c6d9da1571 Remove unneeded fields in factory state 2024-04-16 12:36:41 -07:00
Marcus Moore
ab561d1ce8 Simplify factory state 2024-04-16 12:36:13 -07:00
akemidx
f39ba0136c errant carraige return 2024-04-16 14:26:18 -04:00
akemidx
df60045bfe sidebar hover fix 2024-04-16 14:21:47 -04:00
akemidx
5e122f780f sidebar_hover_color 2024-04-16 14:00:20 -04:00
Marcus Moore
eefe377159 Correct order of arguments 2024-04-16 10:51:33 -07:00
q4kK
20920c262d Feat: add no-interactive flag for upgrade.php
Having a no-interactive flag is useful because attempting
to automate snipe-it upgrades is currently extremely janky.
You have to either:
  a) read the prompts and pass in the input (the "correct" way)
  b) pipe in input, e.g. `yes` and hope no new prompts
  are added.

With the `no-interactive` flag, this can be fixed by both
allowing new prompts to be added without conflict
to user prompts, but also allowing automated upgrades (you could
choose to crash, or assign defaults).
2024-04-16 11:54:50 -05:00
Brady Wetherington
870612be1c Break 'update' API statements into its own test file. Split tests up 2024-04-16 15:34:28 +01:00
Brady Wetherington
266424ff0e Some simple renames for better readability as suggested by Marcus 2024-04-16 15:17:02 +01:00
snipe
a8d48b758e Merge pull request #14594 from marcusmoore/bug/sc-25314/multiple-label-fields-on-one-row
Fixed label fields only showing first option
2024-04-15 18:53:03 +01:00
Brady Wetherington
67a8e0b5c6 This re-enables the ability to update encrypted custom fields via the API 2024-04-15 18:46:11 +01:00
snipe
7b7d424962 Merge pull request #13880 from Godmartinz/department-validation-bug
Fixed department validation to allow updates
2024-04-12 10:50:26 +01:00
Marcus Moore
a4e959818a Add comment 2024-04-11 17:23:28 -07:00
Marcus Moore
c3a71cc182 Improve variable names and add comment 2024-04-11 16:44:13 -07:00
Marcus Moore
da03cfdbe5 Formatting 2024-04-11 16:39:29 -07:00
Marcus Moore
2b137d76fa Trim string to avoid leading whitespace if label is empty 2024-04-11 16:38:22 -07:00
Marcus Moore
81b8c111ca Allow multiple fields to be displayed in one row 2024-04-11 15:00:14 -07:00
snipe
fce98b9ca4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2024-04-11 18:58:50 +01:00
snipe
c0dcae16f7 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 18:57:06 +01:00
snipe
c604f08749 Small tweaks for troubleshooting :(
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 18:47:55 +01:00
snipe
da21424416 Merge pull request #14581 from marcusmoore/bug/sc-25237
Fixed assigned to field in new label engine
2024-04-11 15:36:18 +01:00
snipe
b5c83721ad Merge pull request #14577 from Godmartinz/signature_pad_upgrade
Upgraded Signature-pad.js  && Fixed Resizing Canvas on mobile
2024-04-11 15:35:47 +01:00
snipe
9b21fca1a0 Merge pull request #14558 from akemidx/bug/sc-25192
Fixed: Header Dropdown Menus had no hover coloring in dark themes
2024-04-11 15:35:33 +01:00
snipe
af94b07771 Merge pull request #14582 from akemidx/feature/sc-25288
Reduce Extra Space in Header Dropdown
2024-04-11 15:35:11 +01:00
snipe
0d23d28a65 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 15:15:56 +01:00
snipe
710370ac24 Added scoping for destroy
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:58:25 +01:00
snipe
ed0a441e4d Refactor destroy method
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:52:03 +01:00
snipe
24e87cc0bb Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:51:49 +01:00
snipe
460693c153 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:40:13 +01:00
snipe
f54a94bd4c Refactorered methods
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:40:00 +01:00
snipe
a19b86add0 Re-ordered scoping for admins, added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:39:37 +01:00
snipe
570944a48b Updated translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:38:52 +01:00
snipe
5829b02323 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:38:47 +01:00
Marcus Moore
5567a1e9ac Formatting 2024-04-10 17:37:11 -07:00
Marcus Moore
fa5016713f Implement test 2024-04-10 17:29:44 -07:00
Marcus Moore
f28a82de71 Implement some tests, scaffold others 2024-04-10 17:27:07 -07:00
Marcus Moore
7c2fae7b9d Scaffold api test cases 2024-04-10 17:08:45 -07:00
Marcus Moore
70934e54cf Remove unneeded comment 2024-04-10 16:34:14 -07:00
Marcus Moore
f6ad275030 Clean ups 2024-04-10 16:28:48 -07:00
Marcus Moore
6666a78936 Organization 2024-04-10 16:19:04 -07:00
Marcus Moore
bbb2cdcceb Add note 2024-04-10 16:15:43 -07:00
Marcus Moore
6b6e18695f Account for null asset in factory state 2024-04-10 16:12:47 -07:00
Marcus Moore
b63962e90b Add additional assertions 2024-04-10 16:01:15 -07:00
Marcus Moore
4434de6241 Add test case 2024-04-10 15:47:26 -07:00
Godfrey M
a2bca0e358 fixed comments 2024-04-10 15:05:21 -07:00
Marcus Moore
6d572424ac Add validation around dates 2024-04-10 14:02:25 -07:00
Marcus Moore
d371d14c1f Implement test 2024-04-10 13:49:07 -07:00
Marcus Moore
72eda1e909 Improve naming 2024-04-10 13:29:31 -07:00
Marcus Moore
7dbf8a8a8e Add tests for asset and location check out 2024-04-10 13:28:52 -07:00
Godfrey M
133fdd7a37 fix conditional 2024-04-10 12:31:04 -07:00
Godfrey M
0849262243 fixed notes 2024-04-10 12:19:34 -07:00
Godfrey M
17095feb33 fix typo 2024-04-10 12:15:48 -07:00
Godfrey M
f42ae46338 exports all licenses 2024-04-10 12:14:44 -07:00
Marcus Moore
37ebf1827f Organization 2024-04-10 12:12:44 -07:00
Marcus Moore
e65252725a Add simple test for LogListener 2024-04-10 11:52:59 -07:00
Marcus Moore
6f53f2ac64 Finish implementing test case 2024-04-10 11:43:50 -07:00
Godfrey M
e2679852ce added export button, half the logic for export method 2024-04-10 11:31:30 -07:00
Marcus Moore
deaba46e1c Merge branch 'develop' into chore/sc-25103/add-tests-around-asset-checkout 2024-04-10 11:01:35 -07:00
snipe
989dab6259 Moved company scoping methods to group them together
Signed-off-by: snipe <snipe@snipe.net>
2024-04-10 14:35:13 +01:00
snipe
adacdc038d Apply company scoping for users
Signed-off-by: snipe <snipe@snipe.net>
2024-04-10 12:34:32 +01:00
akemidx
f0aefaac42 padding fix 2024-04-09 17:51:42 -04:00
Marcus Moore
1aeaa0094a Fix assigned to in labels 2024-04-09 13:52:54 -07:00
akemidx
6d3fa12f37 white texty for dropdown lists 2024-04-09 14:52:43 -04:00
Godfrey M
052f1eedd0 fixes signature canvas refresh on mobile 2024-04-09 10:30:33 -07:00
Godfrey M
858da800be attempting to lock screen orientation 2024-04-09 09:40:39 -07:00
snipe
954cac3af7 Merge remote-tracking branch 'origin/develop' 2024-04-08 10:56:04 +01:00
snipe
d0f171ebc6 Merge pull request #14567 from snipe/bug/sc-25257
Remove city as required field on location modal
2024-04-08 10:54:09 +01:00
snipe
90cf612ac7 Remove city as required field on location modal
Signed-off-by: snipe <snipe@snipe.net>
2024-04-08 10:50:52 +01:00
snipe
802b5863ab Merge remote-tracking branch 'origin/develop' 2024-04-08 08:49:54 +01:00
snipe
4baa949a99 Merge pull request #14557 from Godmartinz/add-audit-date-to-labels
Added audit dates to label options
2024-04-08 04:59:53 +01:00
snipe
3bed04a6d3 Merge pull request #14559 from Godmartinz/ldap_location_bug
Fixed  ldap location syncing incorrect locations for users.
2024-04-08 04:59:27 +01:00
spencerrlongg
99d7155729 translation strings 2024-04-07 19:50:53 -05:00
spencerrlongg
f30439a544 small refactor, pretty much good to go now though 2024-04-07 17:07:46 -05:00
spencerrlongg
997eddfed1 cleanup + notes for monday 2024-04-04 18:23:03 -05:00
Godfrey M
d548b800d5 nullifies location after ldap user sync 2024-04-04 15:43:33 -07:00
spencerrlongg
52340aca78 just about wrapped up 2024-04-04 17:41:10 -05:00
akemidx
f7f199d929 black hover bg for dark yellow theme 2024-04-04 15:51:46 -04:00
akemidx
5519fddb78 new clean branch for color change 2024-04-04 15:50:30 -04:00
spencerrlongg
e1fb446888 this is a pretty good start, need to know about other PR 2024-04-04 14:20:03 -05:00
Godfrey M
a9ed748fb2 adds audit dates to label options 2024-04-04 11:39:49 -07:00
steve@degga.net
83443ad2b5 Sometimes I should just slow down. 2024-04-04 11:36:21 -04:00
steve@degga.net
3fcc067481 Removes accidental changes on two lines 2024-04-04 10:27:44 -04:00
snipe
dcba2bfd25 Merge pull request #14529 from mauro-miatello/develop
Hide/Show encrypted values in hardware list
2024-04-04 15:07:58 +01:00
snipe
72c91ead8b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-04-04 15:06:37 +01:00
snipe
774d0aa90c Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 15:05:35 +01:00
snipe
2eea67ce34 Merge pull request #14547 from Godmartinz/user-dropdown-media-change
Fixed alignment of dropdown menu for user in nav bar
2024-04-04 15:04:36 +01:00
snipe
db1c44f921 Merge pull request #14552 from snipe/bug/sc-25229/redirect_if_already_checked_in
Redirect on checkin if the asset is already checked in
2024-04-04 15:01:43 +01:00
snipe
e11287ec25 Redirect on checkin if the asset is already checked in
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 15:00:55 +01:00
snipe
4f10adfb76 Merge remote-tracking branch 'origin/develop' 2024-04-04 14:27:35 +01:00
snipe
f22803c59f Merge pull request #14551 from snipe/bug/sc-25221/ambiguous_id_in_custom_report
Fixed ambiguous id clause in custom report
2024-04-04 14:25:43 +01:00
snipe
a72d4e5dc1 Fixed ambiguous id clause in custom report
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 14:23:58 +01:00
steve@degga.net
3e564eaf19 fixed accidentally forgot update a call to the old dynamicWarrantyUrl() method in hardware/view.blade.php 2024-04-03 20:09:37 -04:00
spencerrlongg
0a90df2b14 alright conflicts resolved 2024-04-03 14:40:14 -05:00
Spencer Long
4ab75c1c03 Merge branch 'develop' into bug/sc-24884 2024-04-03 14:08:41 -05:00
Godfrey M
08f9aae8ae adds note to log listener and checkout accept notif 2024-04-03 11:59:47 -07:00
Godfrey M
43c32fa1bf fix class name in migration 2024-04-03 11:47:08 -07:00
Godfrey M
5afe024644 changed translation on asset acceptancen blade 2024-04-03 11:40:48 -07:00
Godfrey M
c01bdb42fc renamed migration 2024-04-03 11:39:17 -07:00
Godfrey M
e3ef8d295f Merge remote-tracking branch 'origin/add_decline_note_to_acceptance' into add_decline_note_to_acceptance 2024-04-03 11:37:05 -07:00
Godfrey M
ce1d677cdc adds note to acceptance 2024-04-03 11:36:03 -07:00
Godfrey M
df5cacf8a2 removed front end if statement 2024-04-03 11:06:05 -07:00
Godfrey M
bb2c73348d only grabs custom Fields that are not encrpyted 2024-04-03 11:03:58 -07:00
Godfrey M
4327653d70 remove db cleaner for encrypted selections 2024-04-03 10:57:41 -07:00
Godfrey M
5f7f4c9b91 aligns dropdown menu for user in nav 2024-04-03 10:41:50 -07:00
snipe
d44202e55b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-04-03 13:09:48 +01:00
snipe
df95447ea4 New dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-03 13:08:08 +01:00
snipe
01852c7188 Merge pull request #14520 from Godmartinz/loading_overlap_bug
fixes z-index of table load
2024-04-03 13:07:14 +01:00
snipe
79c5697042 Fixed dev - take 2!
Signed-off-by: snipe <snipe@snipe.net>
2024-04-03 13:06:49 +01:00
Brady Wetherington
65e21faa3e Merge branch 'develop' into snipeit_v7_laravel10
Hopefully, last merge?
2024-04-02 20:34:04 +01:00
steve@degga.net
bf10fd0cf0 Rename dynamicUrl() method 2024-03-31 22:37:41 -04:00
steve@degga.net
83ce04dc8d Fixes syntax error. 2024-03-31 22:31:06 -04:00
steve@degga.net
f7bbec6be4 Makes all manufacturer URLs dynamic, not just warranty lookup. 2024-03-31 22:18:44 -04:00
MrM
658ba092e2 Hide encrypted values in hardware list
Encrypted values are now hidden also in hardware list, clicking on them show the decrypted value
2024-03-31 18:55:58 +02:00
MrM
b221d99e7b Encrypted values enhancement
Show asterisks instead of the value, respecting the length of the field
2024-03-31 12:27:35 +02:00
snipe
b7af049589 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-03-29 13:20:22 +00:00
snipe
c2d863da99 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-29 13:19:22 +00:00
snipe
6f9ba6ede4 Merge remote-tracking branch 'origin/develop' 2024-03-29 12:49:22 +00:00
snipe
df4e6a0023 Fixed typo in Polish
I will fix this in CrowdIn shortly

Signed-off-by: snipe <snipe@snipe.net>
2024-03-29 12:47:43 +00:00
snipe
d60fa65f85 Merge remote-tracking branch 'origin/develop' 2024-03-28 21:59:36 +00:00
snipe
8081a82fe4 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-03-28 21:58:58 +00:00
snipe
f42e5d5292 Reverting the store/update asset API responses for now
This currently breaks the Jamf integration - need a better longer term plan.

Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 21:58:49 +00:00
snipe
5a3f5b03d0 Merge pull request #14456 from akemidx/feature/sc-25079/legacy-locations
Default Locale value changed to en-US
2024-03-28 21:47:40 +00:00
akemidx
721902c2d4 committed for later 2024-03-28 16:44:44 -04:00
Godfrey M
a450530c74 fixes z-index of table load 2024-03-28 11:44:55 -07:00
snipe
2b4886f37f Commented out Heroic deploy for now 2024-03-28 17:43:18 +00:00
snipe
b45de3e17f Update README.md
Added alert notations
2024-03-28 17:41:46 +00:00
snipe
b2eea3e5a5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-03-28 13:02:51 +00:00
snipe
f411c0fdd8 Merge pull request #14518 from snipe/fixes/downgrade_alpine
Downgrade alpine to 3.13.5
2024-03-28 12:59:52 +00:00
snipe
74d8431d01 Downgrade alpine to 3.13.5
Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 12:58:43 +00:00
snipe
3ea0cd75a5 Merge remote-tracking branch 'origin/develop' 2024-03-28 12:27:24 +00:00
snipe
5f6c746d25 Merge pull request #14517 from snipe/bug/sc-25186/label_index
Check that the array key exists in the label engine
2024-03-28 12:26:20 +00:00
snipe
1f2d30ebf4 Check that the array key exists
Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 12:25:29 +00:00
akemidx
e6b366020a lots of attempts and syntax, but no go 2024-03-27 19:05:59 -04:00
snipe
6dd6b45829 Merge remote-tracking branch 'origin/develop' 2024-03-27 20:43:34 +00:00
snipe
e5800a2dac Merge pull request #14516 from snipe/fixes/fixed_sorting_on_last_checkin_assets_api
Fixes/fixed sorting on last checkin assets api
2024-03-27 20:39:12 +00:00
snipe
0d3d172108 Make last_checkin searchable and fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 20:37:40 +00:00
snipe
86677b5f13 Make last_checkin sortable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 20:37:25 +00:00
snipe
3f5b94f8ad Merge remote-tracking branch 'origin/develop' 2024-03-27 19:52:23 +00:00
snipe
cf8cb8521b Merge pull request #14515 from squintfox/fixes-results-not-limited-by-api-params
Fixes #14289: /reports/activity API endpoint returns too many results due to orwhere
2024-03-27 19:51:58 +00:00
spencerrlongg
cec84b857b fixed last audit date + test 2024-03-27 14:39:23 -05:00
Robert Spadaro
ccd00caa70 Wrap where logic in additional where statement to protect appended params 2024-03-27 15:36:00 -04:00
spencerrlongg
1d4a7a7b02 added audit dates 2024-03-27 14:05:30 -05:00
snipe
57010b4c23 Merge pull request #14500 from Godmartinz/add-accessory-signature-to-print-all
Added signature to user print report for Accessories and Consumables
2024-03-27 19:02:59 +00:00
snipe
545a185614 Merge pull request #14262 from akemidx/bug/sc-24812
Last Checkin Date added to Hardware View and Index
2024-03-27 19:02:25 +00:00
snipe
1572e339f9 Merge pull request #14514 from snipe/localizations/new_translations_march_224
Updated translations
2024-03-27 19:01:23 +00:00
snipe
7782e5cc93 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 18:59:28 +00:00
Godfrey Martinez
bcdda551b3 Merge pull request #12 from Godmartinz/remove_jquery
removes jquery and updates translation
2024-03-27 11:58:11 -07:00
Godfrey M
bc66c0f223 removes jquery and updates translation 2024-03-27 11:56:47 -07:00
spencerrlongg
701411c1b9 get rid of a couple unnecessary changes 2024-03-27 13:53:57 -05:00
Spencer Long
013463aafc Merge branch 'develop' into bug/sc-24884 2024-03-27 12:45:45 -05:00
Jeff Clay
1b8c7ff4ec Added PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT options to database.php and updated .env files to provide value for the new option. 2024-03-27 11:38:13 -05:00
snipe
3bb81d1e4d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-03-27 16:18:28 +00:00
snipe
756c44fcba Merge pull request #14510 from snipe/snyk/Upgrade-alpinejs-from-3.13.5-to-3.13.6
[Snyk] Upgrade alpinejs from 3.13.5 to 3.13.6
2024-03-27 16:14:53 +00:00
snipe
befa4428d0 Merge pull request #14509 from snipe/feature/sc-25173/filter_assigned_user_assets_by_category_id
Added ability to filter in user's assigned assets by category ID and model ID
2024-03-27 16:13:51 +00:00
snipe
60c678680a [Snyk] Upgrade alpinejs from 3.13.5 to 3.13.6
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 16:12:57 +00:00
snipe
8bc9688d71 Added ability to filter on category ID and model ID from user’s asset API
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 16:04:00 +00:00
spencerrlongg
39c15b2868 reformat array 2024-03-27 10:35:25 -05:00
Godfrey M
aa8af2220c trying to remove an encrypted field but not all fields 2024-03-26 16:10:08 -07:00
akemidx
b124b9af4d adding in change to settings table 2024-03-26 16:50:39 -04:00
snipe
ae403da8c1 Merge pull request #14502 from marcusmoore/bug/sc-25004/pwd_secure_complexity-validation
Added validation around `pwd_secure_complexity`
2024-03-26 20:05:04 +00:00
Marcus Moore
b5b8777c94 Extract translation string 2024-03-26 12:23:57 -07:00
snipe
850f85ff59 Merge pull request #14369 from spencerrlongg/bug/sc-24343
Add new validator for custom field checkboxes and fix asset model default updates
2024-03-26 19:22:29 +00:00
Godfrey M
84cc88831d adds signature for components 2024-03-26 12:18:10 -07:00
Godfrey M
f4f9b165a7 moves signature check inside of td 2024-03-26 11:24:34 -07:00
Godfrey M
3222d4c8df adds signature check 2024-03-26 09:18:34 -07:00
Godfrey M
3173ead2e7 adds accessory signature to user print report 2024-03-26 09:11:54 -07:00
Godfrey M
040f826c52 removes encrypted fields as a selectable option for labels 2024-03-26 08:57:18 -07:00
snipe
89d733d442 Merge remote-tracking branch 'origin/develop' 2024-03-26 14:53:24 +00:00
snipe
df49e8350f Merge pull request #14498 from snipe/features/limit_report_by_admin
Fixed #14495 - Allow user_id to be passed to limit to only specific admins
2024-03-26 14:52:03 +00:00
snipe
3ced85080a Fixed #14495 - Allow user_id to be passed to limit to only specific admins
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 14:45:20 +00:00
snipe
0611ab9b4c Merge remote-tracking branch 'origin/develop' 2024-03-26 12:29:39 +00:00
snipe
f450cafe3e Fixed missing div
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:29:25 +00:00
snipe
1f29eb1875 Merge pull request #14494 from snipe/features/add_supplier_address_to_licenses
Added supplier details to license view
2024-03-26 12:20:57 +00:00
snipe
a4e5ae0938 Removed duplicates
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:20:27 +00:00
snipe
77dacfcc30 Show if deleted supplier
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:19:29 +00:00
snipe
0d9b6eaf71 Added supplier details to license view
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:18:04 +00:00
snipe
7060ffaf34 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-03-26 11:17:07 +00:00
snipe
02a37e2f89 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 10:16:46 +00:00
snipe
9c1b1bc2b5 Removed fre-order columns - it’s not currently used
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 10:15:46 +00:00
snipe
b34156ca25 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-03-26 09:58:35 +00:00
snipe
61bdb57b5d Merge pull request #14492 from snipe/feature/sc-25142/deeplink_search_urls
Fixed #14483 - adds deeplinking to search/sort/pagination
2024-03-26 09:55:50 +00:00
snipe
9df84e235c Check for config variable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 09:54:40 +00:00
snipe
566ba4783e Fixed #14483 - adds deeplinking to search/sort/pagination
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 09:50:01 +00:00
snipe
b41b4b1732 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:48:44 +00:00
snipe
ccf9457c45 Merge pull request #14491 from PP-JN-RL/patch-1
Added Dymo Labelwriter 1933081
2024-03-26 08:46:03 +00:00
snipe
53aabdab66 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:33:40 +00:00
snipe
8ff85c952e Fixed labelwriter 2112283 namespace
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:33:30 +00:00
Phil J R
afe1cb8234 Create LabelWriter_1933081.php
Added a longer version of the existing label (25 x 54mm vs. 25 x 89mm) due to better availability and to support longer asset names.
2024-03-26 08:29:47 +00:00
snipe
bd42505799 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:23:40 +00:00
snipe
6c735c97c6 Merge pull request #14490 from snipe/bug/sc-25141/bad_method_call_model_restore_from_view
Fixed #14482 - bad method call model restore from view
2024-03-26 08:21:27 +00:00
snipe
31a57cdf14 Fixed #14482 - bad method call on restore from view
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:18:59 +00:00
snipe
7ebbef25e7 Standardize button styling
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:18:36 +00:00
Phil J R
f836342194 Rename Label_Writer_2112283.php to LabelWriter_2112283.php
Fix the name of LabelWWriter_2112283 to be consistent with the existing one.
2024-03-26 08:16:00 +00:00
spencerrlongg
5cf1a6c300 new validator for radio buttons 2024-03-25 21:03:13 -05:00
Marcus Moore
bd506820b7 Display error message 2024-03-25 17:59:39 -07:00
Marcus Moore
5815607924 Add validation for pwd_secure_complexity 2024-03-25 17:45:41 -07:00
spencerrlongg
9b40c9788f rm commented tests 2024-03-25 18:58:49 -05:00
snipe
67b5e9093e Merge pull request #14488 from marcusmoore/bug/pass-last-audit-date-through-for-validation
Handle badly formatted `last_audit_date` in `StoreAssetRequest`
2024-03-25 20:57:20 +00:00
Marcus Moore
57d1c036ec Improve method name 2024-03-25 13:53:30 -07:00
Marcus Moore
71722b753d Little bit of clean up 2024-03-25 13:49:03 -07:00
Marcus Moore
a2625c889a Improve comment 2024-03-25 13:48:32 -07:00
Marcus Moore
c98b9da612 Pass last_audit_date through for model level validation if not a date 2024-03-25 13:47:24 -07:00
Marcus Moore
675717ff82 Add failing test 2024-03-25 13:46:22 -07:00
snipe
83ef7c6fe8 Merge pull request #14486 from marcusmoore/bug/sc-25139
Fixes `last_audit_date` not being stored via API correctly
2024-03-25 19:49:54 +00:00
Marcus Moore
5f4c964309 Account for last_audit_date not being provided 2024-03-25 12:45:11 -07:00
Marcus Moore
66ba96d531 Set last_audit_date to valid format in StoreAssetRequest 2024-03-25 12:38:12 -07:00
snipe
d67b2da064 Merge pull request #14485 from PP-JN-RL/patch-1
Created Dymo LabelWriter Label 2112283
2024-03-25 16:50:10 +00:00
Phil J R
e45fd4088f Created Dymo LabelWriter Label 2112283
I have added the layout for the Dymo LabelWriter 2112283 Labels.
They are: DYMO 2112283 DURABLE SMALL MULTI PURPOSE LABELS (160 LABELS) - 25 X 54MM
2024-03-25 16:31:20 +00:00
spencerrlongg
7e4a0eedf0 rm dumb note 2024-03-25 10:46:26 -05:00
snipe
3f812f696d Merge pull request #14472 from snipe/fixes/last_audit_date_via_api
Added validation for last_audit_date and next_audit_date
2024-03-25 14:35:42 +00:00
Godfrey M
633249b08a user assets get updated when a user changes location 2024-03-21 15:15:40 -07:00
Godfrey M
c62a022252 replaced for loop with eloquent query update 2024-03-21 14:34:47 -07:00
Godfrey M
21c3b1fbd2 rename declined message to note, increased width of textarea 2024-03-21 14:03:25 -07:00
snipe
e9e6f925bf Updated validation
Signed-off-by: snipe <snipe@snipe.net>
2024-03-21 18:34:39 +00:00
snipe
828b84084d Added validation for last_audit_date and next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-03-21 18:29:38 +00:00
snipe
a6a0bfacc2 Merge remote-tracking branch 'origin/develop' 2024-03-21 18:03:19 +00:00
spencerrlongg
60ca634eff remove interactswithsettings 2024-03-21 12:04:53 -05:00
spencerrlongg
be282dd038 resolve a couple issues 2024-03-21 09:26:45 -05:00
snipe
c4b7e77498 Merge pull request #14089 from spencerrlongg/bug/escaped_quotes_in_listbox
Use `htmlentities()` instead of `htmlspecialcharacters()` on Custom Field Listbox Values
2024-03-21 12:55:25 +00:00
snipe
91c7180bfd Merge pull request #14469 from snipe/feature/sc-19515/2fa_reset_log
Added 2FA reset log entry
2024-03-21 12:52:22 +00:00
Marcus Moore
b368acf941 Implement test case 2024-03-20 17:46:09 -07:00
snipe
7c39f516b9 Merge pull request #14421 from marcusmoore/fixes/add-minimal-validation-around-asset-tags
Adds a minimal amount of validation around asset_tags in AssetsController
2024-03-21 00:04:44 +00:00
snipe
ce1ddcfcee Merge pull request #14438 from marcusmoore/chore/sc-25071
Removed the need to add `InteractsWithSettings` to each test case
2024-03-21 00:03:34 +00:00
snipe
945e8b402f Only offer the 2FA reset if the user already has 2FA set up
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:52:51 +00:00
snipe
5ed2bd0fb7 Skip the normal edit observer
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:52:22 +00:00
snipe
bc908b854d Added icon
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:44:47 +00:00
snipe
2067b1138a Added the log item
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:58 +00:00
snipe
1ffbdee156 Updated 2FA text to not be google authenticator specific
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:30 +00:00
snipe
bd2812cac1 Added new string
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:12 +00:00
snipe
f2a5eac256 Tightened up 2FA text
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:05 +00:00
snipe
b4e647dbd1 Merge remote-tracking branch 'origin/develop' 2024-03-20 21:31:04 +00:00
Marcus Moore
530291f81c Implement some tests 2024-03-20 14:28:27 -07:00
snipe
de18e449a6 Merge pull request #14464 from snipe/features/toggle_all_columns
Added "toggle all" to column selector
2024-03-20 21:26:23 +00:00
snipe
dce19e0bea Set names and actions to switchable = false
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:25:50 +00:00
snipe
1f586d3102 Removed data-show-columns-toggle-all data attribute
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:25:16 +00:00
snipe
e5d01170d2 Fixed locale, added showColumnsToggleAll and minimumCountColumns
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:24:59 +00:00
Marcus Moore
393dc51167 Add assertions around the event dispatch 2024-03-20 13:44:26 -07:00
spencerrlongg
8cc1397ace rm a couple unnecessary 2024-03-20 15:36:53 -05:00
Marcus Moore
984cc7a4f2 Scaffold tests around asset checkout via web 2024-03-20 13:29:25 -07:00
spencerrlongg
e7b9903341 delete some extra lines 2024-03-20 15:29:06 -05:00
spencerrlongg
e3e01e07b1 final cleanup 2024-03-20 15:23:45 -05:00
spencerrlongg
d18aa1db98 some more cleanup + tests 2024-03-20 15:18:15 -05:00
snipe
0f11963127 Merge remote-tracking branch 'origin/develop' 2024-03-20 19:01:03 +00:00
snipe
d8378f2a10 Merge pull request #14468 from snipe/features/added_default_location_to_print_all_assigned
Added default location to print all assigned
2024-03-20 18:57:01 +00:00
snipe
a0a5480c97 Added default location to print all assigned
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 18:55:47 +00:00
spencerrlongg
c155e4a7c9 new test for not found assets 2024-03-20 13:52:22 -05:00
spencerrlongg
fdf0be09db all tests passing 2024-03-20 13:43:01 -05:00
spencerrlongg
e1addc5aef oops, typo from conflict resolve 2024-03-20 13:16:36 -05:00
Spencer Long
b4b4927370 Merge branch 'develop' into bug/sc-24884 2024-03-20 12:36:39 -05:00
snipe
3391108551 Merge remote-tracking branch 'origin/develop' 2024-03-20 12:57:30 +00:00
snipe
52551dad0f Merge pull request #14465 from snipe/features/14460_add_avif_format
Added #14460 add avif format
2024-03-20 12:39:14 +00:00
snipe
321414f6e3 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:38:48 +00:00
snipe
7787fe42c8 Added avif to helpers
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:30:28 +00:00
snipe
3b66912742 Fixed #14460 - added support for avif
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:25:02 +00:00
snipe
278a25c63b Added toggle all to column selector
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:14:41 +00:00
snipe
0d124bb5a1 Fixed indent
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:08:35 +00:00
snipe
417caae589 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:07:18 +00:00
snipe
3d306aacc5 Fixed mismatched HTML tag
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 11:52:51 +00:00
snipe
ea4ecaea03 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-03-20 11:04:34 +00:00
snipe
6c90f9e395 Merge pull request #14462 from snipe/fixes/small_ui_tweaks_for_country_dropdown
Wider country dropdown
2024-03-20 11:01:39 +00:00
snipe
ddf81ba135 Wider country dropdown
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 11:00:06 +00:00
snipe
8ebb41caa6 Merge pull request #14461 from snipe/security/update_bs_tables
[Snyk] Upgrade bootstrap-table from 1.22.2 to 1.22.3 #14455
2024-03-20 10:39:05 +00:00
snipe
faf48b1684 [Snyk] Upgrade bootstrap-table from 1.22.2 to 1.22.3 #14455
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 10:37:53 +00:00
snipe
b8232d205b Merge pull request #14457 from Godmartinz/bulk_delete_locations_bug
Fixed Bulk delete locations bug
2024-03-20 10:35:45 +00:00
spencerrlongg
0ffceb9691 some notes and a little progress 2024-03-20 00:07:52 -05:00
spencerrlongg
1e810d2426 most tests now passing, still one broken 2024-03-19 19:47:26 -05:00
spencerrlongg
c0110e7f29 some more tests and refinement 2024-03-19 19:27:35 -05:00
Godfrey M
62745923cf fixes API location delete 2024-03-19 15:25:28 -07:00
Godfrey M
090466123f add withCount to query instead 2024-03-19 15:18:18 -07:00
Godfrey M
38a3e36cd6 fixes translation usage 2024-03-19 14:32:21 -07:00
Godfrey M
e8dc634a40 fixes translation usage 2024-03-19 14:30:53 -07:00
Godfrey M
0d0984a400 Bulk Delete Locations does not work [sc-25100] 2024-03-19 14:26:40 -07:00
spencerrlongg
86ab880c90 buncha progress 2024-03-19 15:34:59 -05:00
akemidx
8640cad033 was using lcoations and not locale. fixed 2024-03-19 16:11:32 -04:00
akemidx
dc29717623 fixing default 2024-03-19 15:51:05 -04:00
Godfrey M
866f0a9f56 syncs assets location to users location 2024-03-19 11:58:49 -07:00
snipe
814914924f Merge remote-tracking branch 'origin/develop' 2024-03-19 15:51:07 +00:00
snipe
c7083488b2 Merge pull request #14447 from snipe/feature/sc-25020_better_print_view
Add additional options to print all assigned view
2024-03-19 15:01:50 +00:00
snipe
4b4d383509 Removed - it’s for another PR
Signed-off-by: snipe <snipe@snipe.net>
2024-03-19 15:00:26 +00:00
Godfrey M
b9986033cc removed abbr. of variable, changed variable types in migration 2024-03-18 16:03:40 -07:00
akemidx
3680e04817 migration to set legacy locations to an standardized format 2024-03-18 18:29:59 -04:00
snipe
21e23baa37 Fixed ternary
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 21:28:46 +00:00
snipe
fcd130ae15 Layout improvements
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 21:17:46 +00:00
Godfrey M
8b52d5da85 fixed typos, reordered jquery, fixed migrations 2024-03-18 12:36:54 -07:00
Marcus Moore
d1dffb84dc Remove InteractsWithSettings trait for remaining tests 2024-03-18 12:33:45 -07:00
Marcus Moore
541350916d Merge branch 'develop' into chore/sc-25071
# Conflicts:
#	tests/Feature/Api/Users/UpdateUserApiTest.php
#	tests/Feature/Notifications/AccessoryWebhookTest.php
#	tests/Feature/Notifications/AssetWebhookTest.php
#	tests/Feature/Notifications/ComponentWebhookTest.php
#	tests/Feature/Notifications/ConsumableWebhookTest.php
#	tests/Feature/Notifications/LicenseWebhookTest.php
2024-03-18 12:33:31 -07:00
Godfrey M
01afa9a749 declined notes are reflected in the action logs 2024-03-18 10:50:15 -07:00
Godfrey M
57f5d4a570 deleted_msg saves to db 2024-03-18 10:45:47 -07:00
Godfrey M
4588393b76 adds declined msg to mail notif, updates lang files and checkout acceptance controller 2024-03-18 10:25:55 -07:00
Godfrey M
0fd99d410e adds a text field and jquery to show/hide text field 2024-03-18 09:36:09 -07:00
snipe
002fd4ce30 Nicer formatting for signoff
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:44:51 +00:00
snipe
7b4ecb275f Use trans choice for language
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:29:01 +00:00
snipe
2df5d3a8ff Fixed column selector
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:06:08 +00:00
snipe
7070bad53b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-03-18 12:32:22 +00:00
snipe
da62d6af26 Merge pull request #14445 from snipe/fixes/check_for_valid_license_category_on_view_assets
Make sure the category is still valid before displaying on view assets
2024-03-18 12:30:15 +00:00
snipe
d0d4d14787 Make sure the category is still valid before displaying on view assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 12:29:00 +00:00
snipe
09d69b214b Merge pull request #14436 from marcusmoore/chore/sc-24901
Organized notification test cases
2024-03-18 12:20:23 +00:00
snipe
0e2aaebda4 Merge pull request #14406 from mauro-miatello/develop
Hide/Show ecnrypted values when click on the lock icon
2024-03-18 12:19:54 +00:00
snipe
ec2c58163f Merge pull request #14437 from marcusmoore/chore/sc-25070
Removed dead test code
2024-03-18 12:19:35 +00:00
Godfrey M
05a8d3030b correct column name 2024-03-16 19:54:48 -07:00
Godfrey M
595dad0f18 updates all assets assigned to user with new location 2024-03-16 19:51:40 -07:00
Marcus Moore
a28bee86ba Extract method 2024-03-14 16:33:49 -07:00
Marcus Moore
fb64892971 Re-order 2024-03-14 16:26:27 -07:00
Marcus Moore
95ff692b14 Improve InteractsWithSettings name 2024-03-14 15:06:52 -07:00
Marcus Moore
8003615b1f Move InteractsWithSettings to TestCase 2024-03-14 14:15:11 -07:00
Marcus Moore
948dc3c974 Remove duplicate trait 2024-03-14 13:11:53 -07:00
Marcus Moore
1afb724606 Remove commented (and old) test cases 2024-03-14 13:11:43 -07:00
Marcus Moore
451281d833 Delete test cases with only commented code 2024-03-14 13:11:27 -07:00
Marcus Moore
485f11c945 Move trait usage to parent TestCase 2024-03-14 12:56:49 -07:00
Marcus Moore
dbc79655b0 Cleanup 2024-03-14 12:02:56 -07:00
Marcus Moore
02f6aa6161 Add group tag for new test case 2024-03-14 11:19:36 -07:00
Marcus Moore
07c5264b41 Organize email check in notifications test 2024-03-14 11:17:47 -07:00
Marcus Moore
7c178a6a78 Merge branch 'develop' into chore/sc-24901
# Conflicts:
#	tests/Feature/Notifications/AssetWebhookTest.php
2024-03-14 11:13:14 -07:00
snipe
f56d53d7c1 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 17:14:33 +00:00
snipe
4cd4a936d8 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 15:43:47 +00:00
snipe
7bae4c39c6 Merge pull request #14401 from uberbrady/fix_locale_warning
Fix [sc-25008] - correct and improve legacy language warnings
2024-03-14 15:42:28 +00:00
snipe
d55d95bbea Merge pull request #14415 from Godmartinz/date_picker_z_order
Fixed z-index of date-picker
2024-03-14 15:39:11 +00:00
snipe
5e48d56561 Merge pull request #14427 from marcusmoore/bug/sc-25014
Removes the unused `mediconesystems/livewire-datatables` package
2024-03-14 15:35:53 +00:00
snipe
6a5098fb0c Merge remote-tracking branch 'origin/develop' 2024-03-14 13:26:38 +00:00
snipe
4e835e1772 Merge pull request #14430 from snipe/bug/sc-25066/fixed_requestable_search
Move requestable scope below sorting, etc
2024-03-14 13:25:44 +00:00
snipe
cce8cb4f5e Move requestable scope below sorting, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 13:24:22 +00:00
Marcus Moore
8aed26aab1 Remove unneeded test cases 2024-03-13 16:56:54 -07:00
Marcus Moore
01d5d4c2c8 Improve data provider name 2024-03-13 16:37:50 -07:00
spencerrlongg
f6ab0f8f46 lots of cleanup to do, but this DOES work 2024-03-13 15:57:10 -05:00
spencerrlongg
f01b205486 some changes 2024-03-13 15:10:51 -05:00
Marcus Moore
592385cb07 Remove mediconesystems/livewire-datatables package 2024-03-13 11:58:03 -07:00
spencerrlongg
8962ced038 push to switch branches 2024-03-13 10:40:50 -05:00
snipe
85123b3e66 Rework print page
Still seeing a weird error tho, not done yet

Signed-off-by: snipe <snipe@snipe.net>
2024-03-13 12:36:17 +00:00
spencerrlongg
04d7884af8 some more testing stuff 2024-03-12 23:17:40 -05:00
spencerrlongg
6732b6601e some cool progress, but something with unique not working 2024-03-12 18:33:59 -05:00
Marcus Moore
0fcf223960 Add minimal validation for asset_tags 2024-03-12 12:00:10 -07:00
Godfrey M
bf0bd06f20 put important back 2024-03-11 15:56:53 -07:00
Godfrey M
f07b0b6bd7 removed important 2024-03-11 15:54:59 -07:00
Godfrey M
717b26c834 fixes z-index of date-picker 2024-03-11 15:53:59 -07:00
snipe
8bb8eab69b Merge remote-tracking branch 'origin/develop' 2024-03-11 15:00:38 +00:00
snipe
693d1c9452 Merge pull request #14413 from snipe/fixes/deprecation_on_strtoupper
Fixed deprecation warning on `strtoupper()`
2024-03-11 14:59:55 +00:00
snipe
b049bb1d5c Check for null on select
Signed-off-by: snipe <snipe@snipe.net>
2024-03-11 14:55:49 +00:00
snipe
c5c6b3bbc6 Starting the revised print page
Signed-off-by: snipe <snipe@snipe.net>
2024-03-11 14:23:25 +00:00
snipe
1df56a7cab Merge pull request #14407 from snipe/bug/sc-25019_added_created_at_pivot
Added created_at to license pivot
2024-03-10 16:40:56 +00:00
snipe
3f5cc2507d Used updated_at instead
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 16:39:49 +00:00
snipe
5a85424295 Added created_at to license pivot
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 16:33:04 +00:00
snipe
a53a8cca74 Merge remote-tracking branch 'origin/develop' 2024-03-10 14:40:41 +00:00
snipe
3fdee881f9 Merge pull request #14404 from snipe/fixes/Uninitialized-string-offset-0-in-labels
Fixed uninitialized offset in labels in new label engine
2024-03-10 14:40:12 +00:00
snipe
a289dfaf88 Cleanup
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 14:33:53 +00:00
MrM
8abd359b5b Script to hide / show encrypted values in web ui
added a function to show/hide encrypted values with a simple trick because ClipboardJS can't copy display:none element's value
2024-03-10 15:18:54 +01:00
MrM
9359809b4f Hide / Show encrypted values in web ui
added a span element to hide encrypted values
2024-03-10 15:09:46 +01:00
snipe
cde5502f94 Handle blank labels on asset label fields
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 14:03:21 +00:00
spencerrlongg
eb8f1dd553 some cleanup 2024-03-09 12:29:26 -06:00
spencerrlongg
c8341d9dc4 aha, got it working. 2024-03-08 19:48:47 -06:00
spencerrlongg
b239b3a4db some good progress, lots of testing needs to be done on the new inclusion of SubstituteBindings 2024-03-08 18:24:41 -06:00
spencerrlongg
04e0a9d4a5 commented tests for now 2024-03-08 13:14:59 -06:00
snipe
28ec0b8ebb Removed debugging console lines
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 17:19:31 +00:00
snipe
37dfecf098 Fixed uninitialized offset in labels
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 16:46:56 +00:00
snipe
9d8ce872a4 Merge remote-tracking branch 'origin/develop' 2024-03-08 14:56:21 +00:00
snipe
07880dfe50 Merge pull request #14400 from snipe/localizations/updated_strings
Updated language strings, added Somali
2024-03-08 14:07:32 +00:00
snipe
7eed9f8542 Added Somali
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 14:06:21 +00:00
Brady Wetherington
a2e70dd6b2 Fix [sc-25008] - correct and improve legacy language warnings
The legacy language warning was misfiring when a user's language
didn't match the APP_LOCALE from .env.

Additionally, we weren't properly warning when the legacy-language
came from Settings or from the user themselves. Both of which should
be impossible but still probably not a bad idea to warn on it, anyways
2024-03-08 14:04:21 +00:00
snipe
b9aeded957 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 14:01:34 +00:00
snipe
027361f079 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-03-08 10:01:21 +00:00
snipe
ff10d1540f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 10:00:00 +00:00
snipe
0f63fa23e0 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	package-lock.json
2024-03-08 09:08:29 +00:00
snipe
22ef569e5e Merge branch 'security/snyc_Upgrade-webpack-from-5.90.1-to-5.90.2_14395' into develop 2024-03-08 08:50:26 +00:00
snipe
f3663f0983 [Snyk] Upgrade webpack from 5.90.1 to 5.90.2 #14395
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 08:45:49 +00:00
snipe
112ddaf55b Merge pull request #14394 from marcusmoore/fixes/check-endpoint-is-set-for-checkout-in-notifications
Ensure Chat and Teams endpoints are not blank before attempting to send webhook on checkout and check in
2024-03-08 08:44:52 +00:00
snipe
bda6fdf09c Merge pull request #14395 from snipe/snyk-upgrade-9e465161f7c9fd096a214ca3ad2fae7b
[Snyk] Upgrade webpack from 5.90.1 to 5.90.2
2024-03-08 08:44:07 +00:00
snyk-bot
a62198f33f fix: upgrade webpack from 5.90.1 to 5.90.2
Snyk has created this PR to upgrade webpack from 5.90.1 to 5.90.2.

See this package in npm:
https://www.npmjs.com/package/webpack

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-03-08 06:20:14 +00:00
Marcus Moore
4b0bfc52b4 Ensure webhook endpoint is set before attempting to send to google or microsoft 2024-03-07 18:10:10 -08:00
snipe
78868813b1 Merge remote-tracking branch 'origin/develop' 2024-03-08 01:05:07 +00:00
snipe
e8be178ac7 Merge pull request #14393 from marcusmoore/bug/sc-24862
Guard against checking require acceptance on non-existent relationship in accessory model
2024-03-08 01:04:26 +00:00
Marcus Moore
695428cd44 Guard against unrelated category 2024-03-07 16:59:01 -08:00
snipe
9ae779e442 Merge remote-tracking branch 'origin/develop' 2024-03-07 23:44:30 +00:00
snipe
db92febdc7 Merge pull request #14392 from snipe/fixes/removed_unneeded_starts_with_validation_string
Removed unneeded validation message
2024-03-07 23:42:58 +00:00
snipe
5cf10cec34 Remloved unneeded validation message
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 23:40:30 +00:00
snipe
7939c691f7 Added Brother 18mm label type
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 22:04:12 +00:00
snipe
ea2d54b0f7 Merge remote-tracking branch 'origin/develop' 2024-03-07 21:22:01 +00:00
snipe
c66267a0f9 Merge pull request #14389 from Godmartinz/remove-pdf-for-old-labels
old engine works as intended
2024-03-07 21:06:57 +00:00
snipe
f1d2f24534 Merge pull request #14388 from marcusmoore/bug/sc-25001
Fixed attempting to run bulk actions on an empty asset collection
2024-03-07 21:03:45 +00:00
Godfrey M
d83974e07f old engine works as intended 2024-03-07 13:03:10 -08:00
Marcus Moore
f270f30728 Redirect if no assets are returned from query 2024-03-07 12:30:08 -08:00
snipe
55c237913c Merge remote-tracking branch 'origin/develop' 2024-03-07 15:11:33 +00:00
snipe
806671df7c Merge pull request #14385 from snipe/feature/sc-24971_convert_unencrypted_custom_fields
Added console command to encrypt previously unencrypted fields
2024-03-07 15:08:19 +00:00
snipe
d64ee42ec3 Wrapped in a transaction
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 15:04:08 +00:00
snipe
fe08f39900 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 14:43:06 +00:00
snipe
5123ab57c9 Added console command to encrypt previously unencrypted fields
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 14:40:52 +00:00
snipe
313b327cd7 Bumped hash for master
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 11:34:38 +00:00
snipe
855d922a3e Merge remote-tracking branch 'origin/develop' 2024-03-07 11:31:38 +00:00
snipe
cbe07ad23b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 11:30:54 +00:00
snipe
b3aba4ad99 Merge pull request #14379 from chandanchowdhury/master
Fix #13515: Cannot restore backup
2024-03-07 11:30:06 +00:00
snipe
21ad7f549d Merge remote-tracking branch 'origin/develop' 2024-03-07 10:34:30 +00:00
snipe
4b13fa45c5 Merge pull request #14320 from Godmartinz/default_label_bug
Default label setup with custom fields
2024-03-07 10:33:43 +00:00
snipe
485d40c752 Merge remote-tracking branch 'origin/develop' 2024-03-07 10:30:31 +00:00
snipe
8346ae8235 Merge pull request #14370 from ubc-cpsc/bugfix/CVE-2024-27354
Fixes CVE-2024-27354 and CVE-2024-27355 in phpseclib/phpseclib
2024-03-07 10:28:31 +00:00
snipe
109c0f202a Merge remote-tracking branch 'origin/develop' 2024-03-07 10:19:06 +00:00
snipe
4231058aa1 Merge pull request #14371 from Godmartinz/RB17900_notification_bug
Adds User email check when sending Asset acceptance reminder
2024-03-07 10:18:19 +00:00
snipe
6156d67e4a Merge remote-tracking branch 'origin/develop' 2024-03-07 10:17:05 +00:00
snipe
58bf036f52 Merge pull request #14380 from Godmartinz/1dbarcode_unselected_bug
Fixed 1dbarcodes to populate based on settings
2024-03-07 10:16:37 +00:00
Godfrey M
ff7d25c0f2 simplified 1dbarcode logic 2024-03-06 15:30:53 -08:00
Godfrey M
5f0b7f328c if statement order change 2024-03-06 15:24:03 -08:00
Godfrey M
6559581bad conditions 1dbarcode to populate based on settings 2024-03-06 15:10:42 -08:00
Godfrey M
d78262f52b resolved merge conflicts 2024-03-06 14:48:47 -08:00
snipe
bd566324ed Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:20:23 +00:00
chandanchowdhury
b65bf5082d Fix #13515: create directories expected by RestoreFromBackup.php 2024-03-06 15:11:41 -05:00
snipe
939e4cba3e Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:05:16 +00:00
snipe
015a8763a0 Merge remote-tracking branch 'origin/develop' 2024-03-06 20:04:48 +00:00
snipe
02862d80eb Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:04:31 +00:00
snipe
7b0a3fc6d3 Merge remote-tracking branch 'origin/develop' 2024-03-06 20:01:23 +00:00
snipe
b40b31b7b1 Merge pull request #14378 from snipe/security/snyk_Upgrade-jspdf-autotable-from-3.8.1-to-3.8.2-14365
Upgrade jspdf-autotable from 3.8.1 to 3.8.2 #14365
2024-03-06 19:55:59 +00:00
snipe
149d3d13d1 Upgrade jspdf-autotable from 3.8.1 to 3.8.2 #14365
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 19:55:19 +00:00
snipe
0f64d66cd8 Merge remote-tracking branch 'origin/develop' 2024-03-06 19:48:55 +00:00
snipe
a85e2f7aad Merge pull request #14372 from snipe/bug/sc-24158
Added route parameter
2024-03-06 19:45:33 +00:00
snipe
4f883b1264 Merge pull request #14375 from Godmartinz/Label-info_fix
Fixed Labels: bulk actions are handled before sorting
2024-03-06 19:44:59 +00:00
Godfrey M
feb78d00cf conditionally shows label fields if on old label engine only 2024-03-06 11:25:49 -08:00
Godfrey M
c9d54baa10 bulk actions are handled before sorting 2024-03-05 15:47:52 -08:00
Godfrey M
940f54dab1 revert some changes 2024-03-05 15:45:35 -08:00
Godfrey M
d83827a44e bulk actions are handled before sorting 2024-03-05 15:43:41 -08:00
spencerrlongg
3a0a13d06d tests written but something not working... 2024-03-05 16:35:06 -06:00
snipe
23f8e35716 Added route parameter
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 20:39:56 +00:00
spencerrlongg
a251e61d73 rm commented code and add comment 2024-03-05 13:40:44 -06:00
spencerrlongg
af06b1cd06 hide encryption option for checkbox and radio 2024-03-05 13:37:30 -06:00
Brady Wetherington
5b9120ba6c Merge branch 'develop' into snipeit_v7_laravel10 2024-03-05 19:22:37 +00:00
snipe
7769a93a10 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 19:07:40 +00:00
snipe
95a6c7058f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 19:06:55 +00:00
Godfrey M
6c3a668400 checks to see if a user has an email before sending them a reminder email. 2024-03-05 10:30:24 -08:00
spencerrlongg
ad0f873ece rm validation stuff 2024-03-05 11:58:00 -06:00
Joël Pittet
3008a4ed7a Fixes CVE-2024-27354 and CVE-2024-27355 2024-03-05 09:55:56 -08:00
spencerrlongg
eac01868ca not all working, but pushing to work on something else 2024-03-05 11:02:55 -06:00
Godfrey M
95ef3a336b Merge branch 'develop' into default_label_bug 2024-03-04 12:03:54 -08:00
snipe
9a5c1b8126 Merge pull request #14362 from Godmartinz/labels-not-generating-properly
Fixes inconsistencies with generating labels
2024-03-04 18:49:44 +00:00
Godfrey M
e926db76a0 fixes inconsistencies with generating labels 2024-03-04 10:26:38 -08:00
snipe
9419c7fdeb Fixed contributing link
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:42:26 +00:00
snipe
9dbb4abe7e Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:30:05 +00:00
snipe
19e0fb7955 Reverting CSP change
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:25:14 +00:00
snipe
5b9b21a7d1 Merge pull request #14357 from snipe/fixes/stricter_csp_rules
Removed unsafe-inline and unsafe-eval
2024-03-01 11:48:51 +00:00
snipe
93e69ab0c6 Removed unsafe-inline and unsafe-eval
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:44:49 +00:00
snipe
bc5c559413 Merge pull request #14356 from snipe/fixes/set_csp_rule_to_true_by_default
Set CSP headers to true by default
2024-03-01 11:37:53 +00:00
snipe
9b2fcbff08 Set CSP headers to true by default
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:36:37 +00:00
snipe
ad2674d20b Merge pull request #14355 from snipe/localization/new_strings
Updated language strings
2024-03-01 11:18:12 +00:00
snipe
10ac2c830f Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:17:02 +00:00
snipe
df3053eafb Merge pull request #14354 from snipe/bug/sc-24911
Use SVG cleaner on favicons
2024-03-01 10:19:59 +00:00
snipe
aaae952acb Use SVG cleaner on favicons
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 10:17:57 +00:00
Jeremy Price
8ace30ee23 Update mailer configurations for Symfony mailer
Newer Laravel uses Symfony mailer instead of SwiftMailer, and that means
that some configs and functionality have changed

In this change, we update config/mail.php with the new config layout and
name/functionality changes

of note:

* New configuration layout supporting lots of new/different mailers
* MAIL_DRIVER has become MAIL_MAILER, though we'll support both
* MAIL_ENCRYPTION is mostly useless, and we mark it as such -- symfony
  mailer detects which type of encryption to use automagically.
* MAIL_TLS_VERIFY_PEER is now available in case of self-signed
  certificates on the mail server, of if you want to access it by a
  different name, or by IP

Accordingly, we also update the .env examples, docker configs, and
the .env builder in the snipeit.sh installation script with the above
changes
2024-02-28 23:37:52 -08:00
akemidx
eb0657c953 Merge branch 'develop' into bug/sc-24812 2024-02-28 17:22:16 -05:00
snipe
b1cd44341b Merge pull request #14347 from snipe/feature/sc-24856_requestable_page
Dynamically show models/assets on requestable page
2024-02-28 15:04:48 +00:00
snipe
3da47cdacd Removed header for consistency
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 15:03:34 +00:00
snipe
658dda916c Changed operator
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 15:01:00 +00:00
snipe
7c3d8b896b Updated asset transformers/presenters to display requestable status
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:55 +00:00
snipe
1ce9df7998 New translation
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:27 +00:00
snipe
a0cbf66c81 Only show tabs if there are requestable assets/models
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:20 +00:00
snipe
a4941031cb Merge pull request #14260 from marcusmoore/chore/sc-24808
Added tests around asset check in and added missing actions to the api controller action
2024-02-28 13:34:12 +00:00
snipe
9fd6aea325 Merge pull request #14281 from Godmartinz/preview-label-fields
Added better label previews with the new label engine
2024-02-28 11:48:05 +00:00
snipe
a52181c995 Merge pull request #14283 from akemidx/bug/sc-24788
FIXED: Checked in Assets Did Not Show in Custom Report when Selecting a Valid Checked Out Date
2024-02-28 11:47:46 +00:00
snipe
ee75df0f0a Merge pull request #14346 from snipe/feature/sc-18728
Added `min_amt` functionality to licenses
2024-02-28 11:26:25 +00:00
snipe
92eff653f1 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:26:03 +00:00
snipe
1e66985a78 Merge pull request #14344 from snipe/features/added_created_by_to_groups
Added created_by to groups table
2024-02-28 11:19:52 +00:00
snipe
a059a42799 Added use Auth to API controller
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:14:48 +00:00
snipe
b5603fbfe9 Added min amt to license blade
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:09:07 +00:00
snipe
a0423a9cc3 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:56 +00:00
snipe
4ab7112988 Added validation and fillable attributes for min_amt
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:47 +00:00
snipe
767cf96010 Added min_amt to form
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:33 +00:00
snipe
4ffb7790df Added min_amt to API transformer/presenter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:07:18 +00:00
snipe
3ccc55a78f Added license min amt formatter for BS table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:06:50 +00:00
snipe
d0d29e03db Migration for min_amt on licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:06:01 +00:00
snipe
92b7c4b5ec Allow sorting on min_amt
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:05:13 +00:00
snipe
dff7c43aed Added minimum account check for licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:05:02 +00:00
snipe
9efbcbbd5e Added min_amt to licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:04:42 +00:00
snipe
31fa0a7044 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:04:32 +00:00
snipe
fcb2bf7fea Merge pull request #14335 from mauro-miatello/develop
Copy encrypted custom fields
2024-02-28 09:04:11 +00:00
snipe
0bd27d61b0 Added created_by to groups table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 08:15:59 +00:00
snipe
369ecfa490 Merge pull request #14341 from marcusmoore/chore/sc-24900
Generate unique department names in factory
2024-02-28 07:07:45 +00:00
Marcus Moore
551354b1bb Add group annotation for tests 2024-02-27 18:05:18 -08:00
Marcus Moore
03b7891edc Remove unneeded factory states 2024-02-27 18:03:53 -08:00
Marcus Moore
8978dff054 Consolidate helpers into trait 2024-02-27 18:01:08 -08:00
Marcus Moore
d20844fefa Improve readability by extracting additional helpers 2024-02-27 17:57:12 -08:00
Marcus Moore
cd579a04dd Improve readability by extracting fireCheckOutEvent method 2024-02-27 17:52:18 -08:00
Marcus Moore
15b8140bff Fix test helper 2024-02-27 17:48:17 -08:00
Marcus Moore
9a93ad2e06 Remove unneeded factory state 2024-02-27 17:46:27 -08:00
Marcus Moore
bd4d3aa52b Improve readability by extracting additional helpers 2024-02-27 17:44:19 -08:00
Marcus Moore
bf32ab177f Improve readability by extracting fireCheckInEvent method 2024-02-27 17:37:07 -08:00
Marcus Moore
2ea883aa15 Move Notification::fake() to setUp method 2024-02-27 17:23:30 -08:00
Marcus Moore
43cc296582 Consolidate additional tests 2024-02-27 17:14:35 -08:00
Marcus Moore
4c1aadd74e Improve naming and inline helper 2024-02-27 17:09:22 -08:00
Marcus Moore
7d3719bf70 Consolidate some slack notification tests 2024-02-27 17:07:40 -08:00
Marcus Moore
c08164d864 Update test names 2024-02-27 16:48:17 -08:00
Marcus Moore
b156aa74a5 Update helper name 2024-02-27 16:45:49 -08:00
Marcus Moore
87ba2cb407 Generate unique names for departments 2024-02-27 12:47:56 -08:00
Marcus Moore
5084e5d3ef Improve variable type 2024-02-27 12:23:26 -08:00
Marcus Moore
a5516e3511 Improve trait name 2024-02-27 12:06:29 -08:00
Marcus Moore
0e460baf82 Improve readability 2024-02-27 12:03:36 -08:00
Godfrey M
ef52777ffb removed conditional 2024-02-27 11:33:00 -08:00
Godfrey M
b67ceab849 fields appear in preview, but not bulk generate labels 2024-02-27 11:29:19 -08:00
Marcus Moore
69022bb8b6 Implement test 2024-02-27 11:12:35 -08:00
akemidx
5ffade663a unstash 2024-02-26 18:41:58 -05:00
spencerrlongg
c025e25839 just the basics and notes, pushing to keep track 2024-02-26 14:32:50 -06:00
Marcus Moore
29d729171c Align test with actual values passed from the web 2024-02-26 11:13:39 -08:00
MrM
9475871edb Fix multiple tooltip issue
If there are multiple tooltips, they all report the message "copied" because there is no element selection. This fix resolves the issue.
2024-02-25 14:48:05 +01:00
MrM
b69364d5ff Add copy of encrypted custom fields
Encrypted custom fields may contain sensitive or important information, and it may be useful to have the ability to copy them.
2024-02-25 14:47:06 +01:00
snipe
10dad8e6e6 Merge pull request #14327 from snipe/fixes/better_ui_for_history_importer
Nicer UI for history importer
2024-02-23 11:43:15 +00:00
snipe
a184b4e67c Nicer UI for history importer
Signed-off-by: snipe <snipe@snipe.net>
2024-02-23 11:40:10 +00:00
snipe
8cd0a90ecd Merge pull request #14325 from snipe/fixes/RB-17890
Check for valid supplier in license view
2024-02-23 10:49:56 +00:00
snipe
4a37632ef3 Check for valid supplier in license view
Signed-off-by: snipe <snipe@snipe.net>
2024-02-23 10:48:53 +00:00
snipe
3271d020e9 Merge pull request #14319 from snipe/fixes/RB-17889
Check for activeFile before trying to get header on import
2024-02-23 08:19:21 +00:00
snipe
e494a2670f Merge pull request #14321 from akemidx/accessory_pdf_dl_link
Adding in PDF download to Accesories/Asset/License Histories
2024-02-23 08:18:55 +00:00
snipe
d3a0a337b9 Merge pull request #14323 from ubc-cpsc/bugfix/CVE-2024-25117
Fixes CVE-2024-25117 php-svg-lib lacks path validation on font through SVG inline styles
2024-02-23 08:05:03 +00:00
Joël Pittet
3951ee746d Fixes CVE-2024-25117, no other dependencies 2024-02-22 16:49:02 -08:00
Joël Pittet
84e4257e75 Fixes CVE-2024-25117 2024-02-22 16:40:08 -08:00
Marcus Moore
c401c88702 Scope event fake 2024-02-22 16:19:33 -08:00
Godfrey M
550f9e2afa removes visibility checkmarks for certain fields when in new label engine 2024-02-22 16:19:28 -08:00
Marcus Moore
b55a19cebb Add assertion event is dispatched with correct timestamp 2024-02-22 13:50:46 -08:00
Marcus Moore
4caadcfa19 Clear pending checkout acceptances when checking in asset via api 2024-02-22 13:33:16 -08:00
Marcus Moore
dba837b1d2 Move location migration logic to trait 2024-02-22 13:21:52 -08:00
Marcus Moore
714fc63050 Have legacy locations updated upon api asset checkin 2024-02-22 13:14:30 -08:00
spencerrlongg
b6fa6cba22 note before switching tasks 2024-02-22 15:01:14 -06:00
Marcus Moore
2df026bcb5 Allow updating asset default location when checking in asset via api 2024-02-22 12:40:14 -08:00
Godfrey M
6ee24a7527 remove unnecessary code reformat 2024-02-22 12:36:27 -08:00
Godfrey M
e2dcee1959 cleans up dead code 2024-02-22 12:26:57 -08:00
Godfrey M
4fbea9512f puts textY inside of the forloop 2024-02-22 12:08:47 -08:00
Godfrey M
b7850ab839 puts textY outside of the forloop 2024-02-22 12:08:04 -08:00
Godfrey M
c0215baca5 minor changes 2024-02-22 11:41:04 -08:00
Godfrey M
c62758c5b5 adds custom field select to default label view 2024-02-22 11:36:39 -08:00
spencerrlongg
14358651e4 pushing to test other branches 2024-02-22 13:28:23 -06:00
snipe
f04aeb9f2b Fixed spacing
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:31:02 +00:00
snipe
dc902e7a5a Fixed return type
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:30:23 +00:00
snipe
4fc66e19bb Check for activeFile before trying to get header
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:28:01 +00:00
snipe
e12d2b2a42 Merge pull request #14317 from snipe/fixes/make_website_searchable_on_users_list
Made website searchable on users table
2024-02-22 17:01:58 +00:00
snipe
cb78451d6c Made website searchable on users table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 16:13:54 +00:00
snipe
7979bc63ae Merge pull request #14316 from snipe/feature/sc-24871
Added email, phone icons
2024-02-22 14:50:46 +00:00
snipe
e8ad8a7448 Added email, phone icons
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 14:48:01 +00:00
snipe
eb61f5aa9e Merge pull request #14315 from snipe/fixes/rb-3565
Only send notification if the item is assigned to a person
2024-02-22 12:05:59 +00:00
snipe
3351998efd Only send notification if the item is assigned to a person
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 12:03:07 +00:00
spencerrlongg
20dbacd22f store good, update needs work 2024-02-21 21:33:34 -06:00
akemidx
0f3be4fdf8 adding in eula pdf dl link. mimics activity log 2024-02-21 17:45:10 -05:00
Marcus Moore
3ae8adfbf9 Remove incomplete flag on test case 2024-02-21 12:33:32 -08:00
Marcus Moore
aa2632fe46 Merge branch 'develop' into chore/sc-24808 2024-02-21 12:33:06 -08:00
Brady Wetherington
8f2843bfcf Merge branch 'develop' into snipeit_v7_laravel10
Had to re-generate composer.lock, and re-do package.json and rebuild assets as well.
2024-02-21 20:22:28 +00:00
Godfrey M
14c86d447b added filter to collectifunction 2024-02-21 11:38:03 -08:00
Godfrey M
bee016e0be keeps example values in the example preview, fixes indent 2024-02-21 09:31:01 -08:00
snipe
54552fc95c Merge pull request #14192 from inietov/fixes/api_issue_checkin_licenses
Fixed #14183  API /hardware/:id/checkin doesn't return Licenses
2024-02-21 11:35:06 +00:00
akemidx
9397372f87 permissions, but they are now all in their own column because reasons??? 2024-02-20 18:48:17 -05:00
akemidx
8bbf6da052 user block, trying to pick out ONLY permissions we wanna see 2024-02-20 18:25:41 -05:00
snipe
ffa7d25fc0 Merge pull request #14308 from snipe/fixes/eager_load_relations_on_locations
Eager load relations to determine deletability on locations
2024-02-20 22:28:39 +00:00
snipe
a37d3b00d0 Merge pull request #14307 from marcusmoore/bug/sc-24867
Fixed title not appearing in new label engine
2024-02-20 22:25:45 +00:00
snipe
04891c7c61 Eager load relations to determine
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 22:25:00 +00:00
spencerrlongg
d67ff54f4b temporary decrypt, almost there 2024-02-20 16:20:03 -06:00
Marcus Moore
ccec190985 Set label title properly 2024-02-20 13:59:50 -08:00
spencerrlongg
26728a85ad this seems to work for patches 2024-02-20 13:18:40 -06:00
spencerrlongg
c6d85a1b0b allows arrays on checkbox values 2024-02-20 12:23:24 -06:00
snipe
71610fb20f Merge pull request #14304 from snipe/feature/sc-24018
Added ability to bulk delete locations
2024-02-20 18:14:51 +00:00
snipe
cb0f9024b1 Fixed gate
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:56:40 +00:00
snipe
1797480128 Few more translations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:56 +00:00
snipe
972b198248 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:16 +00:00
snipe
9010b7acd0 Use isDeletable instead of asset count
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:10 +00:00
snipe
b57b68571e Added blade views
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:45 +00:00
snipe
1ca9420baa Fixed incorrect gate
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:29 +00:00
snipe
0383938536 API-ify the managed locations tab in user view
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:20 +00:00
snipe
50b841d54d Added table data-dash attributes to make the checkbox stuff work
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:57 +00:00
snipe
8f71460fa1 Formatting changes only
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:27 +00:00
snipe
d5324bce6a Added more generic bulk translations for trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:07 +00:00
snipe
660f3ccba1 Removed duplicate key
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:28 +00:00
snipe
bc8db3deab Added bulk delete routes
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:14 +00:00
snipe
b2c8fbf349 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:04 +00:00
snipe
c3f21d9292 Removed new checkbox selectability on users and assets - more complicated work to be done
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:41:58 +00:00
snipe
9b146ae1d2 Formatting for API response
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:51 +00:00
snipe
a32c679519 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:31 +00:00
snipe
1e602793b2 Added manager ID to filter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:23 +00:00
snipe
a6a65b7523 Fixed locations isDeletable check
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:09 +00:00
snipe
04c1d9cbff Merge pull request #14302 from uberbrady/fix_uploaded_file_extensions
Clean up the file extension on image file uploads
2024-02-19 16:53:47 +00:00
Brady Wetherington
a6dfd67cd7 Clean up the file extension on image file uploads 2024-02-19 16:51:23 +00:00
snipe
7d178da61c Merge pull request #14301 from snipe/bug/sc-24375
Disallow branding uploads in demo mode
2024-02-19 16:27:20 +00:00
snipe
30f9acfcf3 Disallow uploads in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 16:11:17 +00:00
snipe
1e351b4d63 Merge pull request #14299 from snipe/fixes/fix_crash_on_purged_models_in_activity_report
Check that the model exists before trying to access properties
2024-02-19 15:36:44 +00:00
snipe
cb5b691ec1 Check that the model exists before trying to access properties
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 15:34:57 +00:00
snipe
b47b401245 Merge pull request #14298 from uberbrady/docker_fix_alpine_exif
Add missing EXIF PHP library for Alpine Docker image
2024-02-19 15:09:02 +00:00
Brady Wetherington
119e79e248 Add missing EXIF PHP library for Alpine Docker image 2024-02-19 15:00:13 +00:00
snipe
d7254053b6 Merge pull request #14297 from snipe/feature/sc-24855
Added `/backups/latest` to API endpoint
2024-02-19 14:40:13 +00:00
snipe
8f8edd4126 Added /backups/latest endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:35:09 +00:00
snipe
10bb844087 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:34:51 +00:00
snipe
ba3baabb50 Fixed @return
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:34:36 +00:00
snipe
c76fbe4edb Return 404 if download file isn’t found
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 13:05:44 +00:00
snipe
cae2de4fc9 Merge remote-tracking branch 'origin/develop' 2024-02-19 12:25:26 +00:00
snipe
7c346d977a Merge pull request #14296 from snipe/fixes/return_download_for_backup_api
Better handle large downloads on backup API
2024-02-19 12:22:49 +00:00
snipe
9847934de9 Better handle large downloads on backup API
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 12:20:37 +00:00
snipe
db73f80058 Starting off
Signed-off-by: snipe <snipe@snipe.net>
2024-02-16 18:57:50 +00:00
akemidx
4dd479dad7 formatting 2024-02-15 19:59:26 -05:00
akemidx
d01e1e8eeb query works, but still only shows the asset once even if it's been checked out multiple times 2024-02-15 19:56:08 -05:00
akemidx
e3ef737ac4 query first go 2024-02-15 19:15:27 -05:00
Godfrey M
69317fb403 Marcus is a beast and condensed everything into 4 lines 2024-02-15 13:26:47 -08:00
Godfrey M
1b80c8938a removed unnecessary if statement 2024-02-15 13:04:00 -08:00
Godfrey M
dc77c01fd3 removes spacing 2024-02-15 13:00:38 -08:00
Godfrey M
83474d6e59 moves the array manipulation up the page where it should be 2024-02-15 12:59:47 -08:00
Godfrey M
529310c93a fixed typo in comment 2024-02-15 12:41:31 -08:00
Godfrey M
70f26f33a5 does a collect and map instead of a for loop for the array solution 2024-02-15 12:34:09 -08:00
Godfrey M
414bc10c40 removes the double for loop with a better solution 2024-02-15 12:02:08 -08:00
Godfrey M
250b0a7afb gives a better example with custom fields in label preview 2024-02-15 11:50:41 -08:00
snipe
e5355db672 Merge remote-tracking branch 'origin/develop' 2024-02-15 18:39:57 +00:00
snipe
aef45a90b2 Merge pull request #14278 from uberbrady/allowlist_and_db_prefix_for_restore
Allowlist and db prefix for restore
2024-02-15 14:50:44 +00:00
snipe
9221641bba Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-02-15 14:50:37 +00:00
snipe
6bca1e3b22 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:48:07 +00:00
snipe
00cea3eb3c Merge remote-tracking branch 'origin/develop' 2024-02-15 14:45:30 +00:00
snipe
19b52a2f24 Merge pull request #14279 from snipe/fixes/clearer_ui_for_fieldsets
Improved UI for fieldsets
2024-02-15 14:19:34 +00:00
snipe
6237f6192c Added fieldset button
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:14:18 +00:00
snipe
cc58d4c3ad Nicer form UI
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:08:06 +00:00
Brady Wetherington
6a78706a3e New 'sanitize' version of backup-restore tool. Optional. 2024-02-15 13:27:18 +00:00
snipe
060c59bf9d Merge remote-tracking branch 'origin/develop' 2024-02-15 12:30:22 +00:00
snipe
6fd3c494be Merge pull request #14277 from snipe/fixes/change_log_level_to_info
Lower log level to warning on webhook failure
2024-02-15 12:28:57 +00:00
snipe
8adfa8dd83 Change exceptions to warnings
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 12:28:12 +00:00
snipe
6c9001df09 Changed log level in checkoutable listener to info
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 12:20:14 +00:00
snipe
d6159d8cb5 Merge remote-tracking branch 'origin/develop' 2024-02-15 09:59:23 +00:00
snipe
81b9753b79 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-02-15 09:58:09 +00:00
snipe
d8b1eec91b Merge pull request #14197 from inietov/fixes/component_licenses_checkouts_not_displayed_in_asset_history
Fixes #14010 Adds Components and Licenses logs to Assets history view
2024-02-15 09:57:46 +00:00
snipe
b871813cfd Merge pull request #14172 from spencerrlongg/bug/sc-23514
Resolve Duplicate Activity Logs for Imports
2024-02-15 09:54:43 +00:00
snipe
6f7dce53cc Merge pull request #14276 from snipe/bug/sc-24828
Fixed ambiguous query on supplier_id in maintenances
2024-02-15 09:52:23 +00:00
snipe
13d2af2155 Fixed ambiguous query on supplier_id in maintenances
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 09:51:14 +00:00
snipe
bf3794822c Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 09:47:45 +00:00
snipe
1fa8fba5fe Merge pull request #14268 from Godmartinz/checked-out-notif-fix
Fixed the notification listener
2024-02-15 08:29:15 +00:00
snipe
3d7697da6f Merge pull request #14275 from snipe/snyk/14270
Upgrade webpack from 5.89.0 to 5.90.0
2024-02-15 08:28:26 +00:00
snipe
42cf17d3bf Upgrade webpack from 5.89.0 to 5.90.0
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 08:27:52 +00:00
snipe
783e37f06d Merge pull request #14274 from snipe/snyk/14269
Upgrade alpinejs from 3.13.3 to 3.13.5
2024-02-15 08:21:58 +00:00
snipe
9a4cda0bf6 Upgrade alpinejs from 3.13.3 to 3.13.5
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 08:21:19 +00:00
snipe
b6279af1d8 Merge pull request #14272 from marcusmoore/testing/update-state-helper-name
Updated testing helper name
2024-02-15 08:19:40 +00:00
Marcus Moore
bc0a7542ac Change enableWebhook to enableSlackWebhook 2024-02-14 18:17:34 -08:00
akemidx
232fad0145 query and progress notes 2024-02-14 20:00:23 -05:00
Godfrey M
5cbcac28b1 adds custom fields as an example in label settings 2024-02-14 16:53:38 -08:00
Marcus Moore
aec59f2da6 Update assertion to be more correct 2024-02-14 12:27:42 -08:00
Marcus Moore
905df5ec25 Consolidate test cases 2024-02-14 12:14:27 -08:00
Marcus Moore
bacfdc5049 Scaffold additional tests 2024-02-14 11:33:03 -08:00
Marcus Moore
3cc72021b6 Move notification test to notifications test suite 2024-02-14 11:16:31 -08:00
spencerrlongg
115e0fc119 implode submitted arrays to save 2024-02-14 13:15:23 -06:00
Marcus Moore
4354e126b1 Scaffold tests 2024-02-14 11:11:08 -08:00
Marcus Moore
02f39472f9 Remove duplicate test 2024-02-14 11:10:59 -08:00
Marcus Moore
d7aed2edc9 Remove unneeded code 2024-02-14 11:10:45 -08:00
Marcus Moore
af513946a2 Implement test 2024-02-14 10:48:49 -08:00
Marcus Moore
7bfd02054b Remove duplicate authorization check 2024-02-14 10:48:41 -08:00
spencerrlongg
1ceb703129 rm var 2024-02-14 12:44:09 -06:00
spencerrlongg
fb28882f65 trim potential spaces 2024-02-14 11:59:14 -06:00
spencerrlongg
d9c61fdb02 validation msg 2024-02-14 11:52:25 -06:00
spencerrlongg
72c118a70f cleanup 2024-02-14 11:41:46 -06:00
Godfrey M
b136e9e29d fix the listener to fire when checking in 2024-02-14 09:16:20 -08:00
snipe
50c910461a Merge remote-tracking branch 'origin/develop' 2024-02-14 11:36:28 +00:00
snipe
88a84e9350 Merge pull request #14264 from snipe/feature/sc-24816
Added serial and status label to asset maintenances page and API
2024-02-14 10:37:01 +00:00
snipe
43bb8ae0a8 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:44 +00:00
snipe
638071dadd Check the asset is not deleted when creating the permissions array
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:38 +00:00
snipe
8a4c90ade8 Check that the asset is not deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:25 +00:00
snipe
1dfa1da0ee Disable the edit button if permission is not allowed
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:10 +00:00
snipe
71ebade641 Added serial and status to searchable relations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:59:10 +00:00
snipe
b86b05c4fc Added serial and status fields to presenter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:55 +00:00
snipe
35a70988cb Added sorting by status label
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:39 +00:00
snipe
56ba26eb45 Disallow editing of deleted assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:07 +00:00
snipe
adb8be9345 Added bootstrap formatting to show deleted assets more clearly
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:57:57 +00:00
snipe
abc9ee22c6 Added serial and status to transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:48:02 +00:00
snipe
e5ee9760c0 I don’t think we use these anyore because of the modifiers on date
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:47:33 +00:00
snipe
7868a8c174 Added serial for API controller
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:47:13 +00:00
snipe
03df4cec45 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:46:43 +00:00
spencerrlongg
25241542d2 progress, going to sleep 2024-02-14 02:12:31 -06:00
spencerrlongg
57a75e68b9 maybe i do the inverse here? 2024-02-14 00:52:50 -06:00
Marcus Moore
ad1846fed6 Implement tests 2024-02-13 17:50:26 -08:00
spencerrlongg
dcf2168454 initial stuff, need to switch branches 2024-02-13 19:35:37 -06:00
Marcus Moore
9ab56fe9ca Implement tests 2024-02-13 17:04:53 -08:00
Marcus Moore
f708b8b299 Implement test 2024-02-13 14:30:26 -08:00
akemidx
c5e8d1c276 custom report tinker 2024-02-13 17:09:51 -05:00
akemidx
4093327b7f adding in Last Checkin Date to Hardware view and index 2024-02-13 16:52:12 -05:00
Marcus Moore
391b832613 Implement test 2024-02-13 13:34:55 -08:00
Marcus Moore
b653d19579 Implement test 2024-02-13 13:29:54 -08:00
akemidx
4a57cfaf3e commenting out the nulling of last checkout date on checkin page and API 2024-02-13 16:21:18 -05:00
Marcus Moore
31a75bd252 Add some assertions 2024-02-13 13:17:02 -08:00
snipe
e2c3386c33 Merge remote-tracking branch 'origin/develop' 2024-02-13 20:37:17 +00:00
Marcus Moore
0506f3bef9 Scaffold additional tests 2024-02-13 12:35:31 -08:00
snipe
a866d6b16e Merge pull request #14261 from snipe/fixed/missing_location_string
Fixed incorrect string for location not existing
2024-02-13 20:29:32 +00:00
snipe
a76a69d085 Fixed incorrect string for location not existing
Signed-off-by: snipe <snipe@snipe.net>
2024-02-13 20:23:32 +00:00
Marcus Moore
852b0b3f11 Scaffold additional tests 2024-02-13 12:15:59 -08:00
Marcus Moore
307b39bd38 Implement tests around asset check in 2024-02-13 12:03:27 -08:00
spencerrlongg
d55358652b cleanup for pr 2024-02-13 13:45:56 -06:00
Brady Wetherington
955f75f733 Fixes for the prefix-guessing and sanitizing. 2024-02-13 16:45:24 +00:00
snipe
280e778749 Merge remote-tracking branch 'origin/develop' 2024-02-13 13:46:52 +00:00
snipe
60ba898167 Merge pull request #14255 from marcusmoore/chore/sc-24805
Added LDAP group tag to LDAP tests
2024-02-13 13:42:51 +00:00
snipe
2c9d5b9ea3 Merge pull request #14247 from ubc-cpsc/bugfix/CVE-2023-37260
Fixes CVE-2023-37260 upgrading league/oauth2-server
2024-02-13 13:40:53 +00:00
snipe
eb6e2636b5 Merge pull request #14246 from ubc-cpsc/bugfix/CVE-2022-24894
Fixes CVE-2022-24894 by upgrading symfony/http-kernel
2024-02-13 13:40:33 +00:00
snipe
4c1964d509 Merge pull request #14245 from ubc-cpsc/bugfix/CVE-2024-24821
Fixes CVE-2024-24821 by upgrading composer/composer
2024-02-13 13:39:16 +00:00
snipe
7547277352 Merge pull request #14236 from snipe/jerm/upgrade-script-enhancements
Change how we check forward-looking upgrade requirements
2024-02-13 13:38:35 +00:00
snipe
3e00bc49fd Merge pull request #14250 from mauro-miatello/develop
Cleaned up navbar-custom-menu
2024-02-13 13:33:03 +00:00
snipe
99e0b65de7 Merge pull request #14256 from marcusmoore/bug/sc-24790
Fixed accessory check in emails being sent when setting disabled
2024-02-13 13:32:42 +00:00
Brady Wetherington
70ef904951 Actually got this pretty close to being able to do a restore 2024-02-13 12:16:15 +00:00
Brady Wetherington
fcf023e3d2 WIP: trying to get prefixing and sanitization working 2024-02-13 12:16:15 +00:00
Brady Wetherington
8c882ddead Starting to abstract out the SQL Streaming logic into its own class 2024-02-13 12:16:15 +00:00
Brady Wetherington
7d136f9970 Initial rough stabs at prefix removal and SQL sanitization 2024-02-13 12:16:15 +00:00
Jeremy Price
f4c1460c2b remove help text options until i put together the help text 2024-02-12 19:18:26 -08:00
Jeremy Price
bb2e1de0a8 Change how we check forward-looking upgrade requirements
In https://github.com/snipe/snipe-it/pull/14128 we added the capability
for the upgrade.php script to check version requirements _before_
downloading the new source, to help keep from breaking installations.

Turns out, `file_get_contents()` isn't a reliable way to grab a url, because
some systems have `allow_url_fopen` turned off in their PHP
configurations.

In this iteration, we swap that out for a curl function, while also
adding more error handling, the ability to entirely skip the
PHP version checks if for some reason you Just Can't query the upgrade
json correctly, as well as adding a lot of helpful text around the whole
issue.

Additionally, I've added some error checking around DB backups and
initial artisan down-ing, since shell_exec would happily march right
past any errors.
2024-02-12 19:18:26 -08:00
Marcus Moore
c81bc1d2ee Scaffold tests around asset check in 2024-02-12 17:54:22 -08:00
Marcus Moore
7154d23759 Pass the correct variable to the route helper 2024-02-12 16:45:18 -08:00
Marcus Moore
df23fd0dee Remove usused import 2024-02-12 16:35:54 -08:00
Marcus Moore
adfb8895df Improve factory state name 2024-02-12 16:31:32 -08:00
Marcus Moore
c8e12ddb5c Remove bug in factory state 2024-02-12 16:30:09 -08:00
Marcus Moore
5b181ecea7 Remove old comment 2024-02-12 16:29:34 -08:00
Marcus Moore
728aaaab20 Ensure accessory check in emails are not sent when the setting is disabled 2024-02-12 16:22:59 -08:00
akemidx
f7d0cecdac permissions query starto 2024-02-12 19:01:06 -05:00
Marcus Moore
095a7d9b34 Scaffold tests around accessory check in 2024-02-12 12:54:48 -08:00
Marcus Moore
cf53f2778f Add LDAP test cases to group 2024-02-12 12:28:27 -08:00
snipe
65e20282b6 Merge pull request #14251 from snipe/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.0
Bump codacy/codacy-analysis-cli-action from 4.3.0 to 4.4.0
2024-02-12 08:35:30 +00:00
dependabot[bot]
405c5b5ad0 Bump codacy/codacy-analysis-cli-action from 4.3.0 to 4.4.0
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.3.0...v4.4.0)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 08:33:17 +00:00
MrM
6f0fe16b87 Update default.blade.php
removed some repeated attributes
2024-02-11 18:45:37 +01:00
snipe
111daffc17 Merge pull request #14188 from spencerrlongg/bug/14146
Fixes Default Location Being Set During Asset Creation and Checkout
2024-02-10 11:47:46 +00:00
Joël Pittet
b8a478f558 Fixes by CVE-2023-37260 upgrading league/oauth2-server 2024-02-09 17:24:07 -08:00
Joël Pittet
9f7084d077 Revert "Fixes by CVE-2022-24894 upgrading league/oauth2-server"
This reverts commit 0840cd3df3.
2024-02-09 17:22:36 -08:00
Joël Pittet
0840cd3df3 Fixes by CVE-2022-24894 upgrading league/oauth2-server 2024-02-09 17:21:24 -08:00
Joël Pittet
cefdaf9a9b Fixes CVE-2022-24894 2024-02-09 17:17:44 -08:00
Joël Pittet
13335b19e9 Fixes CVE-2024-24821 2024-02-09 17:04:34 -08:00
snipe
6e471a27e7 Merge remote-tracking branch 'origin/develop' 2024-02-09 21:10:27 +00:00
snipe
513ea67e7d Merge pull request #14244 from snipe/fixes/null_barcode_if_hard_deleted
Return null if asset was hard-deleted/purged
2024-02-09 21:09:17 +00:00
snipe
3868e711f4 Return null if asset was hard-deleted/purged
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 21:08:07 +00:00
snipe
f33f712de7 Merge remote-tracking branch 'origin/develop' 2024-02-09 21:00:16 +00:00
snipe
c12e1f6d6c Merge pull request #14243 from snipe/fixes/reports_controller_when_item_is_deleted
Fixed ReportsController to not try to return a serial if the item doesn’t exist
2024-02-09 20:54:37 +00:00
snipe
479abd5231 Do not try to return a serial if the item doesn’t exist
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:53:33 +00:00
snipe
a60a24a4a8 Merge remote-tracking branch 'origin/develop' 2024-02-09 20:42:48 +00:00
snipe
55b3050ca8 Re-applied previous withTrashed PR
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:37:18 +00:00
snipe
2c996a8508 Merge pull request #14241 from snipe/revert-14240-feature/sc-24786
Revert "Fixed barcodes crashing if asset was deleted"
2024-02-09 20:36:02 +00:00
snipe
84f8eee869 Revert "Fixed barcodes crashing if asset was deleted" 2024-02-09 20:35:45 +00:00
snipe
590c19dbd7 Merge pull request #14240 from snipe/feature/sc-24786
Feature/sc 24786
2024-02-09 20:28:31 +00:00
snipe
fa47707974 Use withTrashed() to get the barcode on deleted assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:26:49 +00:00
snipe
ca62481083 Added button and route
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:23:13 +00:00
snipe
1c3306046c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-02-08 23:14:54 +00:00
snipe
f4fc845375 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-08 23:06:47 +00:00
snipe
a7af987322 Merge pull request #14229 from Godmartinz/select2-target-fix
Fixed select inputs un-select2-ifying on mobile
2024-02-08 23:04:55 +00:00
Godfrey M
c4eaae923a removed vue comments since they do not apply anymore 2024-02-08 15:02:47 -08:00
snipe
849ba02516 Merge pull request #14187 from Godmartinz/general-hook_fix
Fixed the general webhook not notifying anymore
2024-02-08 23:01:36 +00:00
Godfrey Martinez
9dcd14a712 Merge branch 'develop' into general-hook_fix 2024-02-08 14:59:25 -08:00
snipe
3412b4dc5a Merge remote-tracking branch 'origin/develop' 2024-02-08 14:58:24 +00:00
snipe
a3b96aff1f Merge pull request #14233 from uberbrady/prevent_svg_injection_with_fake_extensions_rebased
Fixes file upload XSS vulnerability [sc-24156]
2024-02-08 14:56:59 +00:00
Brady Wetherington
9bb191f29f Fixes file upload XSS vulnerability [sc-24156] 2024-02-08 14:30:40 +00:00
snipe
4a43ccfa92 Merge pull request #14228 from akemidx/bug/sc-23516
Fixed: 404 Error on Importer When Uploading a .csv Under Certain Circumstance
2024-02-08 13:43:07 +00:00
spencerrlongg
bcfa913450 condition makes this work, needs more testing 2024-02-07 20:03:37 -06:00
spencerrlongg
43d8474caa a note to remember this tomorrow 2024-02-06 17:45:46 -06:00
Godfrey M
b73e8642d3 removed unnecessary changes 2024-02-06 13:06:21 -08:00
Godfrey M
cfe2277a64 forgot to remove comment line 2024-02-06 13:05:04 -08:00
akemidx
e776c2cffa formatting the button tag 2024-02-06 15:51:04 -05:00
Godfrey M
ca59bc3c9c removes if statement that prevents select2-ifying inputs 2024-02-06 12:46:17 -08:00
akemidx
575362f4dc adding in line to null out the active file on click of button 2024-02-06 15:38:07 -05:00
snipe
f0139c5e41 Merge remote-tracking branch 'origin/develop' 2024-02-06 18:25:19 +00:00
snipe
5f8ac66036 Merge pull request #14223 from Godmartinz/user-bulk-edit
Fixed Select2 functionality in User bulk check-in Delete User
2024-02-06 18:22:46 +00:00
snipe
a49e66c689 Merge remote-tracking branch 'origin/develop' 2024-02-06 16:42:16 +00:00
snipe
1630e4bc2f Merge pull request #14227 from snipe/fixes/bulk_update_by_audit_interval
Switch to bulk updating to handle audit interval updates
2024-02-06 16:06:08 +00:00
snipe
bf674a0f4d Removed backticks
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 15:58:36 +00:00
snipe
b170755c3d Switch to bulk updating to handle audit interval updates
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 15:52:46 +00:00
snipe
b25612bbac Merge remote-tracking branch 'origin/develop' 2024-02-06 09:09:39 +00:00
snipe
a43183ff96 Increased chunk
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 09:09:27 +00:00
Godfrey M
5aa34695a1 z 2024-02-05 16:41:29 -08:00
snipe
3b36372a66 Merge pull request #14222 from marcusmoore/tests/company-get-id-for-current-user
Added tests around getIdForCurrentUser method
2024-02-05 22:04:08 +00:00
snipe
e763693829 Merge remote-tracking branch 'origin/develop' 2024-02-05 20:51:37 +00:00
snipe
e08d60ed18 Merge pull request #14221 from snipe/bug/sc-24749
Chunk data to reduce memory on large datasets when updating `next_audit_date`
2024-02-05 20:50:41 +00:00
Marcus Moore
9e6e2de71e Add docblock 2024-02-05 12:49:29 -08:00
snipe
b49935701b Chunk data to reduce memory on large datasets when updating next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 20:48:24 +00:00
Marcus Moore
76cc5995d9 Write tests around getIdForCurrentUser method [sc-24748] 2024-02-05 12:38:33 -08:00
snipe
c0fbf106ed Merge remote-tracking branch 'origin/develop' 2024-02-05 19:13:17 +00:00
snipe
7b4020c5e9 Updated string paths for URL
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 19:09:16 +00:00
snipe
383e3829e5 Merge remote-tracking branch 'origin/develop' 2024-02-05 19:04:40 +00:00
snipe
91356af838 Merge pull request #14220 from snipe/bug/sc-24740
Removed loading of assets for label count
2024-02-05 19:02:10 +00:00
snipe
4c967a43a7 Removed loading of assets for label count
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:56:51 +00:00
snipe
deca842eb0 Merge remote-tracking branch 'origin/develop' 2024-02-05 18:35:56 +00:00
snipe
44366746dd Merge pull request #14219 from snipe/fixes/resurface_load_remote
Fixed #14185 - Resurfaced `load_remote` in admin
2024-02-05 18:33:11 +00:00
snipe
3806cec10e Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:28:05 +00:00
snipe
a800fa07f9 Removed duplicate string
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:27:58 +00:00
snipe
32c360f032 Re-added UI for load_remote
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:23:52 +00:00
snipe
25f1445afc Merge branch 'master' of https://github.com/snipe/snipe-it 2024-02-05 17:26:54 +00:00
snipe
0042359e5f Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:23:30 +00:00
snipe
cf2e2bfbc1 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:23:21 +00:00
snipe
60f9a8be9a Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-02-05 17:22:58 +00:00
snipe
8316db9702 Merge pull request #13805 from gitgrimbo/more_line_based_markdown
Use parseEscapedMarkedownInline for more views
2024-02-05 17:19:41 +00:00
snipe
1a480435de Merge pull request #14190 from marcusmoore/bug/sc-24685
Fixed consumable checkout via API not sending notification
2024-02-05 17:16:57 +00:00
snipe
ebc373744a Merge pull request #14218 from snipe/security/alpine_3_18_6
Security upgrade alpine from 3.18.5 to 3.18.6 #14178
2024-02-05 17:16:18 +00:00
snipe
650aa25659 Merge pull request #14191 from Godmartinz/googlechat_webhook
Added support for Google Chat notifications
2024-02-05 17:10:54 +00:00
snipe
212dd06948 Security upgrade alpine from 3.18.5 to 3.18.6 #14178
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:07:31 +00:00
snipe
b6eea2e170 Merge pull request #14217 from snipe/security/snyk_bs_table_14199
Upgrade bootstrap-table from 1.22.1 to 1.22.2 #14199
2024-02-05 16:59:51 +00:00
snipe
688017bd8a Upgrade bootstrap-table from 1.22.1 to 1.22.2
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 16:59:01 +00:00
snipe
58a9c27342 Merge remote-tracking branch 'origin/develop' 2024-02-05 16:31:32 +00:00
snipe
f52b00256d Merge pull request #14213 from snipe/fixes/orientate_on_exif
Fixed FD-40296 - mobile uploads sometimes uploading with incorrect orientation
2024-02-05 16:22:03 +00:00
snipe
2d48d96b3c Merge remote-tracking branch 'origin/develop' 2024-02-05 16:10:54 +00:00
snipe
abd13a1140 Merge pull request #14216 from snipe/bug/sc-24727
Fixed company asset counts for dashboard widget
2024-02-05 16:07:40 +00:00
snipe
5882d71f9b Fix company asset counts for dashboard widget
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 15:55:53 +00:00
snipe
dc92bbf61e Merge pull request #14215 from snipe/bug/sc-24726
Removed initial check for assets, licenses, etc
2024-02-05 15:54:45 +00:00
snipe
e6fdeb0e8a Removed initial check for assets, licenses, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 15:30:18 +00:00
snipe
3b948c7b7e Add orientate to image upload
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 14:29:43 +00:00
snipe
d965fe759a Fixed #14211 - duplicate array key ldap_emp_num
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 12:28:24 +00:00
Ivan Nieto Vivanco
5e4a3379a9 Adds Components and Licenses logs to Assets history view 2024-02-01 01:35:25 -06:00
Godfrey M
9dc428b720 ran composer update on the package since the version was explicitized 2024-01-31 17:30:56 -08:00
Godfrey M
8a5b469ff8 adds # to webhook channel trigger 2024-01-31 12:54:30 -08:00
Godfrey M
ed06f32a7a adds # to webhook channel trigger 2024-01-31 12:53:56 -08:00
Godfrey M
a876703f8f spacing 2024-01-31 10:48:48 -08:00
Godfrey M
01bb8d8c9a spacing 2024-01-31 10:48:23 -08:00
Godfrey M
f452204d62 applies a conditional to have the the integration test button function properly 2024-01-31 10:47:25 -08:00
Ivan Nieto Vivanco
51ae485f20 When asset is checked-in the assigned licenses also are taken from the user 2024-01-30 19:44:38 -06:00
Godfrey M
0eabb147b2 adds google notif to consumable check out 2024-01-30 13:19:28 -08:00
Marcus Moore
2e0e39ccc8 Ensure notification is sent when consumable is checked out via api 2024-01-30 13:19:20 -08:00
spencerrlongg
63e733f0d6 changes from a note to a source 2024-01-30 15:14:59 -06:00
Godfrey M
2406d2cfdb adds google notifs to license seats check in and out 2024-01-30 13:14:24 -08:00
Godfrey M
e074ca0bf9 adds google notifs to accessories check in and out 2024-01-30 12:57:45 -08:00
Marcus Moore
13c37e708f Implement tests around consumable checkout 2024-01-30 12:43:20 -08:00
Marcus Moore
3f76d65b95 Improve test method name 2024-01-30 12:43:07 -08:00
Godfrey M
87bce0c097 adds google notifs for asset check in and out 2024-01-30 12:38:17 -08:00
Marcus Moore
6d41c8cf67 Merge branch 'develop' into bug/sc-24685 2024-01-30 11:44:36 -08:00
Godfrey M
22385a8e35 fix for general webhook not notifiying anymore 2024-01-30 10:47:18 -08:00
snipe
77fa213ccd Merge pull request #14181 from marcusmoore/bug/sc-24671
Fixed accessory checkout via API not sending notification and not adhering to qty limit
2024-01-30 14:24:42 +00:00
spencerrlongg
d0a82adc3f changed condition 2024-01-29 20:44:26 -06:00
Marcus Moore
de2aa903c5 Scaffold tests 2024-01-29 17:56:55 -08:00
Marcus Moore
42ec2548c9 Fire event when accessory checked out via API
Brings behavior in line with GUI controller
2024-01-29 17:03:19 -08:00
Marcus Moore
a2cba67f4e Improve assertion 2024-01-29 16:59:57 -08:00
Marcus Moore
7d45cfff2c Ensure accessory available when checking out via api 2024-01-29 16:49:09 -08:00
Marcus Moore
f1ab8253f0 Implement tests included two currently failing tests 2024-01-29 16:48:40 -08:00
Marcus Moore
e5d3df7d24 Scaffold accessory checkout tests for api 2024-01-29 15:59:23 -08:00
Marcus Moore
987676df08 Implement additional tests 2024-01-29 15:56:18 -08:00
Marcus Moore
f16f62f76c Scaffold and implement some tests around accessory checkout 2024-01-29 14:21:30 -08:00
Brady Wetherington
8a2f3405d5 Merge branch 'develop' into snipeit_v7_laravel10
A lot of changes here, but hopefully this works?
2024-01-29 22:12:58 +00:00
Godfrey M
dfa33f651a webhook test works 2024-01-29 12:58:09 -08:00
Godfrey M
30c2927987 merged develope 2024-01-29 11:21:00 -08:00
Godfrey M
e8159d97fa changes 2024-01-29 11:12:25 -08:00
snipe
86c625ed8f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-01-27 15:12:03 +00:00
snipe
3da7876631 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-01-27 15:08:52 +00:00
spencerrlongg
1248260df3 i don't think the output needs to separately escaped, the entire statement is already wrapped in {{}} 2024-01-26 12:33:35 -06:00
spencerrlongg
4cb804cf03 get rid of e() on store and update 2024-01-26 11:56:02 -06:00
spencerrlongg
2b0dd8851c probably needs more testing... but should work 2024-01-26 11:47:09 -06:00
snipe
9136415bb2 Merge remote-tracking branch 'origin/develop' 2024-01-26 15:58:21 +00:00
snipe
c0241a8421 Merge pull request #14175 from uberbrady/rebased_snipe_translator
Fixed #14173: Use new SnipeTranslator to handle pluralized localizations
2024-01-26 15:54:11 +00:00
Brady Wetherington
401e1842ee Fixed pluralization bug due to dashed-locale names instead of underscored
Our locale directories are named things like 'en-US'. But the pluralization
code used by Laravel (through Symfony) requires locale names to be
in the format en_US. This change introduces a new Translator,
SnipeTranslator, which is a tiny set of changes against the built-in
one. It additionally adds a SnipeTranslationServiceProvider, which
loads up the new Translator.
2024-01-26 15:40:55 +00:00
snipe
ad2e0cc7f3 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-01-26 15:17:59 +00:00
spencerrlongg
2deba17d91 that's all of 'em 2024-01-25 20:04:02 -06:00
spencerrlongg
3574ef5bb9 a few more imports, component sample 2024-01-25 19:54:53 -06:00
spencerrlongg
abf13f1619 revert spacing 2024-01-25 19:37:59 -06:00
spencerrlongg
4a7df470f0 this works 2024-01-25 19:34:41 -06:00
spencerrlongg
c9101f4d97 initial work, not working yet 2024-01-25 18:18:24 -06:00
snipe
14db425725 Merge remote-tracking branch 'origin/develop' 2024-01-25 21:45:49 +00:00
snipe
b39d11cc06 Merge pull request #14171 from snipe/fixes/fd-39934
Removed attribute assigning blank EOL as 0
2024-01-25 21:41:18 +00:00
snipe
d6c61e1429 Removed attribute assigning blank EOL as 0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-25 21:34:20 +00:00
snipe
aa14d5e6b6 Merge remote-tracking branch 'origin/develop' 2024-01-25 20:18:36 +00:00
snipe
85a158eaef Merge pull request #14170 from uberbrady/saml_nonce_storage
Enforce SAML assertion ID uniqueness and notValidOnOrAfter attribute [FD-37019]
2024-01-25 20:14:40 +00:00
Brady Wetherington
d3815ddce7 Remove commented-out timestamps on the saml_nonces table 2024-01-25 20:13:49 +00:00
Brady Wetherington
b39b575fec Add table-check; add command-description for Artisan command 2024-01-25 20:07:18 +00:00
Brady Wetherington
81b8243e1d Enforce SAML assertion ID uniqueness and notValidOnOrAfter attribute 2024-01-25 19:53:24 +00:00
Jeremy Price
43c8e98ec7 Set v6 upgrade requirements in .upgrade_requirements.json -- REVERT FOR v7
This was originally created on the v7 branch, and had v7 requirements,
but we're backporting it so that people have it in-hand before v7 launches.
Since v7 hasn't launched yet, and people can use it for upgrading to new
v6's potentially, we'll make it v6 happy for now.
2024-01-25 10:12:08 -08:00
snipe
9d1abb0aa7 Merge pull request #14127 from snipe/jerm/upgrade-deps-file
Add php version requirements file for future-proofing upgrades
2024-01-25 10:09:35 -08:00
snipe
4e59b83885 Merge pull request #14128 from snipe/jerm/upgrade-dot-php
Add remote requirements checking to upgrade.php
2024-01-25 10:09:03 -08:00
snipe
d8a9d93b1d Merge remote-tracking branch 'origin/develop' 2024-01-25 08:30:56 +00:00
snipe
ab926f2e33 Merge pull request #14153 from Godmartinz/ms_teams_webhook
Added support for Microsoft Teams Notifications
2024-01-25 08:27:17 +00:00
snipe
b76500e32d Merge remote-tracking branch 'origin/develop' 2024-01-25 00:22:18 +00:00
snipe
45b253a57d Merge pull request #14164 from marcusmoore/bug/sc-20686
Avoid unnecessarily hydrating models on asset show page
2024-01-25 00:20:30 +00:00
Marcus Moore
f5dafc477a Avoid unnecessary model hydration on asset model show page 2024-01-24 16:14:51 -08:00
Godfrey M
6e9a46e582 working on Chat integration test 2024-01-24 15:50:36 -08:00
Godfrey M
c65b32bcdb removed translation fixed via method 2024-01-24 14:49:42 -08:00
Godfrey M
1d3124f89f adding a test variable for test methods 2024-01-24 14:38:45 -08:00
snipe
57a8630e99 Merge pull request #14162 from snipe/bug/sc-24511
Fixed #14114 - correctly sort related fields for labels
2024-01-24 21:37:20 +00:00
snipe
105d4899f5 Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 20:33:13 +00:00
snipe
0715f68c0e Merge remote-tracking branch 'origin/develop' 2024-01-24 20:18:43 +00:00
snipe
5909654fd4 Merge pull request #14163 from Godmartinz/ldap_test_table_fix
Added overflow scroll to ldap test table
2024-01-24 20:18:08 +00:00
Godfrey M
e175cdbfd7 adds table overflow scroll 2024-01-24 12:13:40 -08:00
snipe
896b16d4d5 Merge remote-tracking branch 'origin/develop' 2024-01-24 19:49:50 +00:00
snipe
5f8e63717d Merge pull request #14058 from Godmartinz/ldap_test_table_fix
Fixed Ldap sync test table and table data from overflowing
2024-01-24 19:31:04 +00:00
Godfrey M
ada1a593a4 add google placeholder 2024-01-24 11:29:32 -08:00
snipe
2c7bbfa637 Added additional sort/order hidden fields
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:09:20 +00:00
snipe
ba680126bc Properly sort the results based on non-asset fields
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:09:06 +00:00
snipe
dd3b2da670 Updated variable names for clarity, remove the concat of order and sort
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:08:47 +00:00
Godfrey M
00f07ac2ce add translations, brush up code 2024-01-24 10:38:06 -08:00
snipe
165f9545ac Merge pull request #13924 from snipe/bug/sc-20167
Set qty mutators
2024-01-24 18:21:06 +00:00
snipe
fff21416be Merge pull request #14051 from akemidx/email_in_license_table
Email in License Seat Table
2024-01-24 15:37:43 +00:00
snipe
f760397837 Merge remote-tracking branch 'origin/develop' 2024-01-24 15:36:45 +00:00
snipe
dc84e0f3ae Merge pull request #14161 from snipe/localizations/updated_with_new_strings
Updated language strings
2024-01-24 15:31:09 +00:00
snipe
8ca4c51186 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 15:29:39 +00:00
snipe
f247661f07 Merge pull request #14159 from snipe/fixes/not_array_typo
Fixed english and attribute placeholder
2024-01-24 14:59:57 +00:00
snipe
f73a55f9ab Fixed english and attribute placeholder
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:58:06 +00:00
snipe
7668a6767d Merge pull request #14102 from Godmartinz/seat-id-is-zero
Fixed license seats id turning to zero when sorting by department
2024-01-24 14:49:33 +00:00
snipe
684264dac7 Merge pull request #14158 from snipe/fixes/moved_url_string_again
Moved URL string to general
2024-01-24 14:48:26 +00:00
snipe
e6f94cfebf Missed one
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:47:54 +00:00
snipe
c54eb22754 Moved URL string to general
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:46:52 +00:00
snipe
661cc2b460 Merge pull request #14131 from Godmartinz/label_engine_translations
Adds translations for Label example
2024-01-24 13:36:40 +00:00
snipe
36f8311204 Merge remote-tracking branch 'origin/develop' 2024-01-24 13:35:04 +00:00
snipe
25db35e41e Merge pull request #14128 from snipe/jerm/upgrade-dot-php
Add remote requirements checking to upgrade.php
2024-01-24 13:23:10 +00:00
snipe
49dc1dd37a Merge pull request #14132 from marcusmoore/chore/sc-24501
Improved radio button values in custom report form
2024-01-24 13:22:48 +00:00
snipe
bfc9be6b97 Merge pull request #14149 from snipe/dependabot/github_actions/develop/actions/cache-4
Bump actions/cache from 3 to 4
2024-01-24 13:22:08 +00:00
snipe
1b7885677a Merge pull request #14155 from uberbrady/ldap_location_fixes
Fix for LDAP syncing with base_dn and location_id and location [FD-39651]
2024-01-24 13:21:46 +00:00
Brady Wetherington
3bc1b9038d Fix for LDAP syncing with base_dn and location_id and location 2024-01-24 11:54:29 +00:00
Marcus Moore
d65c0c8bea Remove comma 2024-01-23 15:22:00 -08:00
Marcus Moore
2d5631284b Indent 2024-01-23 15:19:36 -08:00
Marcus Moore
3952fc10a6 Re-render order number properly 2024-01-23 15:18:02 -08:00
Marcus Moore
0881301b6d Fix language strings 2024-01-23 13:55:20 -08:00
Marcus Moore
530ea474d1 Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	resources/lang/en/admin/reports/general.php
#	resources/views/reports/custom.blade.php
2024-01-23 13:55:07 -08:00
Godfrey M
49021d277c if not location add default location 2024-01-23 13:33:57 -08:00
Godfrey M
f270672a3d added a location check, to prevent notif blowing up 2024-01-23 13:05:39 -08:00
Godfrey Martinez
b797795d37 Merge pull request #11 from Godmartinz/license_checkable
adds consumable checkout  ms notification
2024-01-23 11:22:02 -08:00
Godfrey M
7c529df49b adds consumable checkout ms notification 2024-01-23 11:21:20 -08:00
Godfrey Martinez
81e92228f3 Merge pull request #10 from Godmartinz/license_checkable
adds licenses ms notifications
2024-01-23 11:12:02 -08:00
Godfrey M
e969f8808c adds licenses ms notifications 2024-01-23 11:10:04 -08:00
Godfrey M
5a46ef5d5b adds Accessory Check in out Notifcations, 2024-01-22 15:30:15 -08:00
Marcus Moore
219540281f Add trailing commas 2024-01-22 12:42:01 -08:00
Godfrey M
f049cf5b06 adds Asset Check Out Notification 2024-01-22 10:57:22 -08:00
dependabot[bot]
a1ccea4e34 Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 08:50:37 +00:00
Marcus Moore
b74115b604 Add docblocks 2024-01-18 15:42:52 -08:00
Marcus Moore
1630392953 Uncheck a couple boxes by default to match existing behavior 2024-01-18 13:30:51 -08:00
Marcus Moore
861ef6312e Use is_iterable for checks instead of is_array 2024-01-18 13:04:41 -08:00
Marcus Moore
f64aa4dfd4 Improve variable name 2024-01-18 11:58:34 -08:00
snipe
2fa5eb4365 Merge pull request #14144 from snipe/fixes/updated_apple_url
Updated URL for apple manufacturer
2024-01-18 11:53:28 +00:00
snipe
aceb072a1b Updated URL for apple manufacturer
Signed-off-by: snipe <snipe@snipe.net>
2024-01-18 11:49:30 +00:00
snipe
0fbf154187 Merge remote-tracking branch 'origin/develop' 2024-01-18 10:50:12 +00:00
snipe
2a7be4dfd5 Merge pull request #14143 from fe80/feat/redis-database
feat(config): add REDIS_DATABASE support
2024-01-18 10:49:32 +00:00
fe80
f52b17cca6 feat(config): add REDIS_DATABASE support
Add the possibility to set the redis database to use.
The default value is still 0
2024-01-18 11:32:51 +01:00
Godfrey M
befab608f2 cha cha cha changes 2024-01-17 17:59:20 -08:00
Marcus Moore
786c41ad79 Add some type hints 2024-01-17 17:41:03 -08:00
Marcus Moore
b24d80680e Add clarifying comments 2024-01-17 17:32:35 -08:00
Godfrey M
cdcd868162 formats check in message for MS Teams 2024-01-17 17:31:23 -08:00
Marcus Moore
1a1f417633 Change variable name to keep foreach scoped 2024-01-17 17:00:03 -08:00
Marcus Moore
bbfee27fd3 Implement test 2024-01-17 16:40:05 -08:00
Godfrey M
ce02e43ab2 fixed integration link, added some conditionals 2024-01-17 16:30:27 -08:00
Marcus Moore
691e81d827 Implement some tests 2024-01-17 16:25:28 -08:00
Godfrey M
9f2af40ef2 adds MS teams integration test 2024-01-17 13:41:45 -08:00
Marcus Moore
0ac1dd314a Organize tests 2024-01-17 13:19:54 -08:00
Marcus Moore
82f4cc799b Improve variable name 2024-01-17 11:54:37 -08:00
Godfrey M
93ef8317e8 added payload, new MS webhook test method 2024-01-17 11:49:31 -08:00
Marcus Moore
4d8d069bbc Update placeholder 2024-01-17 11:43:34 -08:00
Marcus Moore
5a396cc997 Add assertion 2024-01-17 11:24:50 -08:00
Marcus Moore
0883321d9e Only limit template creator scope when authenticated 2024-01-17 11:24:38 -08:00
snipe
99000fada1 Merge pull request #14127 from snipe/jerm/upgrade-deps-file
Add php version requirements file for future-proofing upgrades
2024-01-17 13:15:56 +00:00
akemidx
2768f19b7c code cleanup 2024-01-16 18:56:29 -05:00
Marcus Moore
8aa5cf530b Improve radio button values in custom report form 2024-01-16 12:33:16 -08:00
Godfrey M
6be8c063a9 added moar translations 2024-01-16 12:05:09 -08:00
Godfrey M
74dc17b4b9 adds translations for Label example 2024-01-16 10:47:45 -08:00
snipe
2ae5029bc4 Merge remote-tracking branch 'origin/develop' 2024-01-15 16:11:59 +00:00
snipe
adba2d5b6c Remove 7 day padding for expected assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-15 16:11:31 +00:00
Jeremy Price
58b2f8ca17 typo 2024-01-11 19:12:24 -08:00
Jeremy Price
8be3c1aaf2 Quit the script when we hit hard errors
a found a few other points where we talk about exiting and re-running
the script once fixed, but never actually exit. So i'm adding-in the
missing exits, and updating any existing exits to make sure we return a
failing return code to the shell
2024-01-11 18:20:09 -08:00
Jeremy Price
2ee8639eaf Check to make sure there's a .env file
While i was testing this, i noticed that it ran right by the .env check,
even though i don't have a .env file at all. The script checks for a
_bad_ .env, but not a missing one.

Now it does
2024-01-11 18:18:41 -08:00
Jeremy Price
32605578dd Add remote requirements checking to upgrade.php
quoted from https://github.com/snipe/snipe-it/pull/14127
    There is a race condition in the upgrade.php file where it can't
    currently know the hard requirements for the version it's upgrading to
    until it does a git pull. By that time, it will have pulled new source
    code that possibly relies on an incompatible version of php, leaving you
    with a broken installation.

    Example: You're running v6.2.x on PHP 7.4, which is fine. v7 requires
    PHP 8.1 or 8.2, but we couldn't know that when we released v6. or v5 for
    that matter. We could change the requirements in the most-recent v6
    version of upgrade.php, but that doesn't help anyone who doesn't upgrade
    first to the most recent v6.

With this change, we implement fetching and incorporating the
requirements data from the remote file.

It's just fetching/decoding a couple of json values that replace the
hard-coded version requirements.

We move the branch checking higher than the php version checking so that
we can use the defined/overridden $branch to decide what branch to pull
the requirements from.
2024-01-11 18:13:59 -08:00
Jeremy Price
fe0bba6df6 rename upgrade requirements file and add snipeit version differentiation
the latter mostly for testing and san checking.. but it doesn't really
matter because it's just json.. if we don't use it we don't use it
2024-01-11 16:52:39 -08:00
Jeremy Price
5fdcd6298f rename php_max_major, because it's not.. it's major_minor, even if it sounds ridiculous 2024-01-11 16:50:16 -08:00
Jeremy Price
55943dbff6 add comments and php_max_wontwork because that's what we use rigth now and MVP, dammit 2024-01-11 16:47:47 -08:00
akemidx
20bd83232e standardizing naming to use Template 2024-01-11 19:41:19 -05:00
Jeremy Price
d12e571b20 undoing versioning.. doesn't make sense 2024-01-11 16:32:17 -08:00
Jeremy Price
0c15f05316 Initial upgrade_requirements.json file
for fetching before upgrades, to check major prereqs -- mainly php -- before
pulling down new, possibly breaking, code.
2024-01-11 16:27:03 -08:00
Marcus Moore
d72970b5b6 Add global scope to limit template to current user 2024-01-11 13:59:51 -08:00
Marcus Moore
9c1bea00ad Add failing test 2024-01-11 13:51:18 -08:00
Marcus Moore
8d8bf73c1b Scaffold additional tests 2024-01-11 13:51:10 -08:00
snipe
73ddc0f669 Merge remote-tracking branch 'origin/develop' 2024-01-11 21:46:20 +00:00
snipe
66c24e152f Merge pull request #14114 from uberbrady/preserve_sort_in_label_generation
Fixed [FD-39640]: preserve sort order when generating asset labels
2024-01-11 21:46:01 +00:00
Marcus Moore
e5fb888d67 Implement test 2024-01-11 13:34:20 -08:00
Marcus Moore
82df7a66ec Add form label and remove info box from show and edit pages 2024-01-11 13:19:36 -08:00
Marcus Moore
0202a97e97 Add missing tag 2024-01-11 13:08:08 -08:00
Marcus Moore
b34886ead6 Move box header into box 2024-01-11 13:04:46 -08:00
snipe
f610afb1b8 Merge pull request #14121 from Godmartinz/checkout_bug_fix
Fixed multiple click checkouts for consumables, accessories and components
2024-01-11 11:15:48 +00:00
akemidx
6f6341bc09 about saved reports box 2024-01-10 16:33:35 -05:00
akemidx
5f8e91455f clarifying name box 2024-01-10 15:39:32 -05:00
akemidx
a5099b5163 translations/messages on report template controller 2024-01-10 15:23:42 -05:00
Godfrey M
1f7f9717c5 fixes checkout bug 2024-01-10 11:35:32 -08:00
snipe
5beeaa237b Merge remote-tracking branch 'origin/develop' 2024-01-10 13:20:36 +00:00
snipe
f151de2adc Merge pull request #14118 from snipe/fixes/_supplier_searchable_on_maintenances
Search on supplier name attached to maintenance
2024-01-10 13:18:47 +00:00
snipe
b94aaad9b5 Search on supplier name attached to maintenance
Signed-off-by: snipe <snipe@snipe.net>
2024-01-10 13:16:07 +00:00
snipe
9c9af12e83 Merge remote-tracking branch 'origin/develop' 2024-01-10 13:06:38 +00:00
akemidx
27103124bf messages/translations 2024-01-09 16:49:56 -05:00
snipe
1a48790dfe Merge pull request #14116 from marcusmoore/bug/sc-24475
Guard against passing non-integer for company_id when creating asset
2024-01-09 19:08:14 +00:00
Marcus Moore
423b636db9 Guard against non-integers being passed for company_id 2024-01-09 10:57:43 -08:00
snipe
be32152394 Merge remote-tracking branch 'origin/develop' 2024-01-09 17:44:19 +00:00
snipe
824c3e6ecf Merge pull request #14087 from ubc-cpsc/bugfix/CVE-2023-51651
Fixes CVE-2023-51651 Potential URI resolution path traversal in the AWS SDK for PHP
2024-01-09 17:44:04 +00:00
snipe
4053b75f49 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-01-09 17:43:11 +00:00
snipe
ea4a0c2293 docs: add @mauro-miatello as a contributor 2024-01-09 17:43:03 +00:00
snipe
10ee6ee5c4 Merge pull request #14115 from mauro-miatello/develop
Added license expiration date in "view asset"
2024-01-09 17:38:51 +00:00
MrM
9d16eacad5 Added license expiration date in "view asset"
I've added the expiration date of the license associated with an asset in hardware/ID#software, it is useful to see all of them on the asset page instead of having to open the license details page. I've also fixed a space formatting issue.
2024-01-09 18:30:51 +01:00
Brady Wetherington
4b90f85372 Fixed [FD-39640]: preserve sort order when generating asset labels 2024-01-09 16:37:33 +00:00
snipe
8001ed8436 Merge remote-tracking branch 'origin/develop' 2024-01-08 22:30:05 +00:00
snipe
eaf6d56253 Merge pull request #14109 from marcusmoore/chore/sc-24397
Moved contributors to dedicated file
2024-01-08 22:28:52 +00:00
snipe
8541a342cb Merge pull request #14108 from Godmartinz/asset_maintenance_scope
Added supplier name as a searchable relation on the asset maintenance report
2024-01-08 22:25:55 +00:00
Godfrey M
4184b271f7 adds Supplier as a searchable relation on the asset maintenance report 2024-01-08 14:22:35 -08:00
Marcus Moore
6b105ba8f0 Move link 2024-01-08 14:17:42 -08:00
Marcus Moore
348ed1e555 Add link to contributors file 2024-01-08 14:16:15 -08:00
Marcus Moore
8314047bfb Add newline to start of contributors file 2024-01-08 14:02:09 -08:00
Marcus Moore
1bd4b3827d Add missing comma 2024-01-08 13:47:43 -08:00
Marcus Moore
a2463c2a71 Reference correct file 2024-01-08 13:43:26 -08:00
Marcus Moore
f4d568bf89 Add missing config key 2024-01-08 13:40:57 -08:00
Marcus Moore
eb862c27b8 Add config keys 2024-01-08 13:31:30 -08:00
Marcus Moore
18f79ad924 Move contributors from readme to dedicated files 2024-01-08 13:29:18 -08:00
Marcus Moore
afb396ed65 Add contributor commands to package.json 2024-01-08 13:26:58 -08:00
Marcus Moore
8ea15fc6aa Run generate command to migrate to new style
(from markdown style tables and images to html style)

./node_modules/.bin/all-contributors generate
2024-01-08 12:42:45 -08:00
Marcus Moore
064ec1c22d Add missing markers 2024-01-08 12:39:40 -08:00
Marcus Moore
2f47217003 Add all-contributors-cli as dev dependency 2024-01-08 12:26:52 -08:00
Jermops
25c9f8e038 Merge pull request #14105 from snipe/jerm/snipeit-sh
Update snipeit.sh for v7 Requirements
2024-01-08 11:48:21 -08:00
Jeremy Price
a3811371cc remove removal of installation scripts 2024-01-08 11:41:30 -08:00
Brady Wetherington
f734e196e5 Merge branch 'develop' into snipeit_v7_laravel10 2024-01-08 18:57:55 +00:00
Jeremy Price
6129f4722f Oops! Don't checkout my custom branch
using master until we make the switch to main. As master will keep
working after we switch branches, main will _not_ work _until_ we switch, and if
for some reason we have to delay the branch migration, this will remain
broken until we fix it.
2024-01-08 10:08:52 -08:00
snipe
d71a04e489 Merge remote-tracking branch 'origin/develop' 2024-01-08 17:24:47 +00:00
snipe
4f8defb67d Merge pull request #14107 from snipe/bug/sc-24471
Check that the asset exists before trying to get properties
2024-01-08 12:43:13 +00:00
snipe
2707c399ea Check that the asset exists before trying to get properties
Signed-off-by: snipe <snipe@snipe.net>
2024-01-08 12:42:05 +00:00
Jeremy Price
585d7d0b87 replace some tabs with spaces. don't @ me 2024-01-05 12:09:03 -08:00
snipe
012fe57ca1 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 15:16:14 +00:00
snipe
f5960388f1 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-01-05 15:05:22 +00:00
snipe
6ebbd2dc30 Merge pull request #14104 from snipe/feature/google_login_more_prominent
Move Google Login prompt higher, made it bigger
2024-01-05 15:03:12 +00:00
snipe
7c5d29ccd9 Move Google Login prompt higher, made it bigger
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 14:56:34 +00:00
snipe
93712ec417 Merge pull request #14103 from snipe/bug/user_api_limit_offset_order
Moved limit and offset in user API to after additional qualifiers
2024-01-05 12:02:18 +00:00
snipe
f8a21bdb2d Moved limit and offset to after additional qualifiers
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 11:59:31 +00:00
Jeremy Price
cdfc198f28 update changelog 2024-01-05 00:09:06 -08:00
Jeremy Price
6fcb3d3d5e re-add missing progress bar to ensure correct command ordering 2024-01-05 00:09:06 -08:00
Jeremy Price
358d9ec06d fix enterprise linux version in remi repo for v9 distros 2024-01-05 00:09:06 -08:00
Jeremy Price
322c8c1cf3 install php-sodium on al2. fix snipeit database name 2024-01-05 00:09:06 -08:00
Jeremy Price
47eb0c34a2 remove fedora surpport, add amazon and alma 2024-01-05 00:09:06 -08:00
Jeremy Price
4a290a85e6 awsl2 support, php8.2 support in centos/alma, new mysql user creation code 2024-01-05 00:09:06 -08:00
Jeremy Price
5489c50cc0 remove remaining 8.2 references in Ubuntu 23* block
different vim config confusion made my regex misbehave :-/
2024-01-05 00:09:06 -08:00
Jeremy Price
066e40dada update Ubuntu versions comment in code block 2024-01-05 00:09:06 -08:00
Jeremy Price
123d04ff7b split-out ubuntu 23* versions
since 2023 didn't produce and LTS ubuntu versions

the Ondrej repo we use for installing arbitrary PHP versions doesn't
(easily) support non-LTS versions of ubuntu, which means that 23.04 and
23.10 are problematic using the repo

However, these versions ship with  php8.1 and php8.2 (respectively), so
we don't even need the Ondrej repo for these, so we'll remove it

In general, we'll only support LTS Ubuntu repos because of this, but if
they happen to ship with our preferred PHP versions and otherwise work
w/o heroics, we'll include nominal support in the script
2024-01-05 00:09:06 -08:00
Jeremy Price
d5881736cf stop quoting run_as_app_user args
because "$@" splits positional parameters, but quoting the args makes
them one arg, which doesn't work
2024-01-05 00:09:06 -08:00
Jeremy Price
5e539da3da Debian 12 2024-01-05 00:09:06 -08:00
Jeremy Price
ba58ca9d5c fix up ondrej repo 2024-01-05 00:09:06 -08:00
Jeremy Price
117007dfa1 add new ubuntu/debian versions, change php to 8.2 2024-01-05 00:09:06 -08:00
snipe
10ef47fe87 Merge remote-tracking branch 'origin/develop' 2024-01-04 23:37:36 +00:00
snipe
d29b3633d1 Merge pull request #14063 from marcusmoore/chore/sc-24353
Removed unused files in assets directory
2024-01-04 22:41:49 +00:00
snipe
98ef687e9c Merge pull request #14090 from marcusmoore/chore/sc-24386
Run sqlite tests in GitHub action
2024-01-04 22:41:37 +00:00
snipe
432f05586e Merge pull request #14100 from Godmartinz/fix-license-seat-department-link
fixed `departmentNameLinkFormatter` url
2024-01-04 22:40:24 +00:00
snipe
dbcf7e3fd1 Merge pull request #14101 from marcusmoore/bug/sc-24398
Fixes creating invalid query with null values
2024-01-04 22:36:46 +00:00
Godfrey M
43737263d4 removed that clause 2024-01-04 14:32:03 -08:00
Godfrey M
07eeaea3bf adds an additional clause 2024-01-04 14:30:59 -08:00
Godfrey M
249ff868e5 removes empty seats when sorting by department 2024-01-04 14:26:07 -08:00
Marcus Moore
742e183b02 Add guard against adding null values to query
Since $request->filled(null) returns true
2024-01-04 14:04:00 -08:00
Godfrey M
a110b5fcca ugh 2024-01-04 12:37:53 -08:00
Godfrey M
1f1e58eb1e remove unintentional change 2024-01-04 12:36:57 -08:00
Godfrey M
32b34ca9b9 departmentNameLinkFormatter had a bad url 2024-01-04 12:33:33 -08:00
snipe
3a6d626aa1 Merge remote-tracking branch 'origin/develop' 2024-01-04 00:36:50 +00:00
snipe
0c6611d6bd Merge pull request #14097 from spencerrlongg/hotfix/migration_model_issue
Use Query Builder instead of Model for Update to Skip Observer
2024-01-04 00:36:30 +00:00
spencerrlongg
0d853f931d use query builder instead of model for update to skip observer 2024-01-03 18:32:13 -06:00
snipe
c8816354ae Updated assets for master
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:28:54 +00:00
snipe
42d35174b2 Updated hash
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:25:56 +00:00
snipe
00718d7a4b Merge pull request #14096 from snipe/security/snyk_14075
Upgrade jspdf-autotable from 3.5.31 to 3.8.0
2024-01-03 23:23:10 +00:00
snipe
ab32c42ac8 Upgrade jspdf-autotable from 3.5.31 to 3.8.0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:21:27 +00:00
snipe
bbdc8383e1 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:17:44 +00:00
snipe
e711d68de1 Merge pull request #14095 from snipe/security/snyk_14066_Upgrade_fortawesome/fontawesome-free
Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.5.0
2024-01-03 23:16:39 +00:00
snipe
b29df4a610 Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.5.0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:15:49 +00:00
snipe
93273d301a Merge pull request #14094 from snipe/localizations/updated_strings
Updated language strings
2024-01-03 23:13:15 +00:00
snipe
50eb257cec Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:12:29 +00:00
snipe
b23ce6cfc6 Merge pull request #14093 from marcusmoore/bug/sc-24389
Fixes language source directory for crowdin
2024-01-03 22:11:20 +00:00
Marcus Moore
08c16b4435 Fix language source directory 2024-01-03 14:02:36 -08:00
snipe
0d697629aa Merge pull request #14092 from marcusmoore/chore/sc-24383
Syncs readme to DockerHub description
2024-01-03 21:36:34 +00:00
Marcus Moore
1f7e7b20e9 Sync readme to dockerhub 2024-01-03 13:26:49 -08:00
Marcus Moore
4894f524a0 Update action name 2024-01-03 12:30:10 -08:00
Marcus Moore
f819e1469a Run sqlite tests in GitHub action 2024-01-03 12:27:13 -08:00
snipe
cce9540316 Merge pull request #13964 from spencerrlongg/refactor/store_asset_form_request
Tests For API Asset Store + Refactor For Auto Increment & Form Requests
2024-01-03 19:26:11 +00:00
spencerrlongg
41e0275c95 htmlentities() 2024-01-03 12:42:36 -06:00
Marcus Moore
f2d34b2c03 Remove inline javascript 2024-01-02 18:23:57 -08:00
Marcus Moore
25cba65c6e Remove marker test case 2024-01-02 18:14:50 -08:00
Marcus Moore
a756d2b765 Implement test 2024-01-02 18:14:17 -08:00
Marcus Moore
740d46a50e Repopulate report after validation error 2024-01-02 17:59:30 -08:00
Marcus Moore
d8d92a6d2c Scaffold test case 2024-01-02 17:47:52 -08:00
Marcus Moore
137193ab12 Remove duplicate test 2024-01-02 17:44:22 -08:00
Joël Pittet
771e3ad0ad Fixes CVE-2023-51651 aws/aws-sdk-php with depdendencies 2024-01-02 17:31:10 -08:00
Joël Pittet
7ce37d0ffb Fixes CVE-2023-51651 aws/aws-sdk-php 2024-01-02 17:22:22 -08:00
spencerrlongg
901b1b83d0 rm code, was probably fixed through rules at some point 2024-01-02 18:27:17 -06:00
spencerrlongg
9e84521098 fix auto-increment settings for test settings 2024-01-02 18:10:59 -06:00
Spencer Long
8546407083 Merge branch 'develop' into refactor/store_asset_form_request 2024-01-02 18:05:15 -06:00
spencerrlongg
7c30261ec8 add marcus' migration changes to branch 2024-01-02 17:28:41 -06:00
snipe
8bc5f08da5 Fixed a few more small localization issues
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 20:14:49 +00:00
snipe
38bd530fae Update en defaults for controllers
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:44:20 +00:00
snipe
02d35449d2 Updated seeder with en to en-US
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:41:48 +00:00
snipe
eead7b49e3 Fixed language code
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:07:11 +00:00
snipe
a31bef7b9e Merge pull request #14072 from snipe/fixes/also_update_settings_console_command
Update ResetSettings command to en-US vs en
2023-12-24 18:33:23 +00:00
snipe
ed9473c8ff Update ResetSettings command to en-US vs en
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 18:32:21 +00:00
Marcus Moore
fcef60445c Implement radioValue properly 2023-12-21 18:07:46 -08:00
Marcus Moore
9e0897b2cb Remove old comments 2023-12-21 17:40:26 -08:00
Marcus Moore
a23a3b95d6 Partially implement test 2023-12-21 17:15:36 -08:00
Marcus Moore
1ac0be50a7 Remove test case 2023-12-21 17:06:40 -08:00
Marcus Moore
618bbc4bda Mark test as incomplete 2023-12-21 17:03:10 -08:00
Marcus Moore
8c434c7862 Implement and scaffold tests 2023-12-21 17:02:44 -08:00
Marcus Moore
7f153b32e4 Always return an array from selectValues method 2023-12-21 16:38:51 -08:00
Marcus Moore
4fc8e8dd61 Add todo 2023-12-21 14:27:31 -08:00
Marcus Moore
48e5ee2310 Add filtering to remaining selects 2023-12-21 14:19:16 -08:00
Marcus Moore
92e3a1e69e Update variable names 2023-12-21 13:46:27 -08:00
Marcus Moore
7f0e3e288e Scaffold additional test 2023-12-21 13:43:44 -08:00
Marcus Moore
dc27e67b19 Remove edit and delete buttons from edit template view 2023-12-21 13:13:28 -08:00
Marcus Moore
4c62e8ade9 Add guard against attempting to access property on unsaved template 2023-12-21 13:11:44 -08:00
Marcus Moore
87853921c3 Formatting 2023-12-21 13:07:11 -08:00
Marcus Moore
8a496ccebc Formatting 2023-12-21 13:05:56 -08:00
Marcus Moore
3e5f804791 Display "Save" on the update template page button 2023-12-21 13:05:49 -08:00
Marcus Moore
62f8353bd7 Implement model filtering for selectValue method 2023-12-21 13:03:43 -08:00
Marcus Moore
1dd9273f70 Improve readability 2023-12-21 12:50:21 -08:00
Marcus Moore
2eeaef00e1 Improve readability 2023-12-21 12:15:00 -08:00
Marcus Moore
5c0c60a5b9 Formatting 2023-12-21 12:02:54 -08:00
Marcus Moore
6fcbb108c6 Implement test for filtering out invalid models from selectValues 2023-12-21 12:02:48 -08:00
Marcus Moore
71761a48ad A few more small clean ups 2023-12-20 17:50:55 -08:00
Marcus Moore
495d74f7c9 Formatting 2023-12-20 17:11:03 -08:00
Marcus Moore
fda77179a3 Simplify url 2023-12-20 16:48:25 -08:00
Marcus Moore
578495bab6 Update tests 2023-12-20 16:37:27 -08:00
Marcus Moore
9a5c8c4ce6 Formatting and clean ups 2023-12-20 16:24:48 -08:00
Marcus Moore
0504c09a9a Implement ability to delete templates 2023-12-20 16:19:04 -08:00
Marcus Moore
9d062f9849 Make control statements more explicit 2023-12-20 16:08:25 -08:00
Marcus Moore
0527201ae5 Allow templates to be updated 2023-12-20 14:41:23 -08:00
Marcus Moore
cf5c78029c Only show template name input on default screen 2023-12-20 14:12:42 -08:00
Marcus Moore
26cc4497eb Use dedicated show route for report templates 2023-12-20 14:01:46 -08:00
Marcus Moore
c35179b098 Use existing class in place of inline styling 2023-12-20 13:48:31 -08:00
Marcus Moore
b2d0cbb264 Display validation error for report name 2023-12-20 13:44:47 -08:00
snipe
780269850a Merge pull request #14064 from snipe/bug/set_fallback_locale_to_new_locale_code
Bug/set fallback locale to new locale code
2023-12-20 01:04:43 +00:00
snipe
2a4eff2e90 Remove env var option for config on fallback
Signed-off-by: snipe <snipe@snipe.net>
2023-12-20 01:03:11 +00:00
snipe
a0553f4c33 Update fallback locale to new locale code
Signed-off-by: snipe <snipe@snipe.net>
2023-12-20 01:01:59 +00:00
snipe
4ee5ba4496 Merge pull request #14059 from snipe/localizations/new_strings_pre-6.3.0
Normalize language codes, updated strings
2023-12-20 00:02:47 +00:00
akemidx
ebf760a477 translations, UI fixes 2023-12-19 18:01:19 -05:00
snipe
97ba023152 Moved return
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:47:06 +00:00
snipe
a5947b8109 Added warning in middleware
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:34:45 +00:00
snipe
4a0d4f5862 Moved static var up above
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:27:11 +00:00
snipe
5e0128c9dc Include trashed per @marcusmoore
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:23:19 +00:00
snipe
1a0e1b5f6c Added default to helper per @marcusmoore
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:23:11 +00:00
snipe
493ffc10c1 Defaulted to en-US on quickstart
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:16:00 +00:00
snipe
de62e2775e Merge pull request #14062 from uberbrady/add_down_migration_for_new_localization_refactor
Added back-migration for Big Locale Refactoring
2023-12-19 20:08:27 +00:00
Brady Wetherington
12ed8800d1 Changed some spacing and added a comment as per Snipe 2023-12-19 20:06:48 +00:00
Brady Wetherington
82dd601661 Added back-migration for Big Locale Refactoring 2023-12-19 19:54:04 +00:00
snipe
70b8b7e4be Check for a value for settings (this mostly matters in tests)
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 19:00:11 +00:00
snipe
1b3a4617b7 Merge pull request #14060 from snipe/bug/fix_bad_migration_namespace
Fixed bad migration namespace
2023-12-19 18:49:24 +00:00
snipe
9dbc38e2ca Drop the down()
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:25:21 +00:00
snipe
ab2c85778a Fixed migration namespace :(
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:22:06 +00:00
snipe
98e6f7e14c Updated form marco with new locale codes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:12:02 +00:00
snipe
02f24d3332 WTF
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:57:17 +00:00
Godfrey M
4b071745fa prevents tables and table data from overflowing 2023-12-19 09:49:40 -08:00
snipe
6801caaa0d Added backl vendors directory
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:49:10 +00:00
snipe
db138479aa Updated locale middleware for mapping
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:43:22 +00:00
snipe
081bd69d5a Added helper method to map values
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:43:05 +00:00
snipe
c306ba550c Migration to update what we can for locales
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:42:56 +00:00
snipe
b9a877d92d Fixed donked dir tree
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:42:39 +00:00
snipe
3a6f26f241 Update example envs to use correct code for language
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:36:21 +00:00
Godfrey M
c0dba95426 testing ldap test table fix 2023-12-19 09:32:26 -08:00
snipe
026ea41dee Use correct language codes, updated strings
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:23:16 +00:00
snipe
b07133a008 Add @coach1988 as a contributor 2023-12-19 14:05:54 +00:00
snipe
f07ae45fc0 Merge pull request #14056 from snipe/bug/retarget_of_13987_dymo_fix
Implement 1D barcode for label "Tapes\Dymo\LabelWriter_30252" #13987
2023-12-19 14:05:22 +00:00
snipe
2226bd2cd7 Implement 1D barcode for label "Tapes\Dymo\LabelWriter_30252" #13987
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 14:03:55 +00:00
snipe
aca51d992b Merge pull request #14038 from ubc-cpsc/bugfix/CVE-2023-50251
Fixes CVE-2023-50251 and CVE-2023-50262 DoS on parsing SVG
2023-12-19 14:00:13 +00:00
snipe
fee0956832 Merge pull request #14039 from ubc-cpsc/bugfix/CVE-2023-43655
Fixes CVE-2023-43655 Composer Remote Code Execution vulnerability public composer.phar
2023-12-19 13:59:48 +00:00
snipe
36a76084da Merge remote-tracking branch 'origin/master' into develop 2023-12-19 13:31:10 +00:00
snipe
fe51d0ef79 Merge pull request #14055 from snipe/bug/disallow_arrays_for_model_id_in_api_hardware_update
Make sure we're getting an object instead of a collection on Asset API for model_id
2023-12-19 13:30:54 +00:00
snipe
f9139e0f10 Changed to use instanceof
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 13:25:32 +00:00
snipe
1063dcfb7b Merge pull request #13994 from Godmartinz/add_license_to_info_for_activation
Added licensed to name and email in user profile license view
2023-12-19 13:16:34 +00:00
snipe
79ad598673 Merge pull request #14050 from marcusmoore/add-logging-to-checking-alerts-command
Added log message for who is being sent expected checkin notifications
2023-12-19 13:14:04 +00:00
snipe
f13c1a53ef Get an object instead of a collection
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 12:51:35 +00:00
snipe
aef95e2218 Merge remote-tracking branch 'origin/develop' 2023-12-19 12:32:19 +00:00
snipe
f08ce34036 Fixed translation string in JSON
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 12:31:55 +00:00
Marcus Moore
7cf4baa92a Remove unused vendor less from resources directory 2023-12-18 17:58:47 -08:00
Marcus Moore
6c3dfdfe6d Remove unused vendor css files 2023-12-18 17:48:52 -08:00
akemidx
85bfbf8bc4 email in table, shows in export 2023-12-18 20:15:06 -05:00
Marcus Moore
1708897726 Add log message for who is being sent expected checkin notifications 2023-12-18 17:14:03 -08:00
akemidx
3fe3697a29 adding column, needs table join 2023-12-18 18:26:47 -05:00
snipe
ac8926abc2 Merge pull request #14047 from snipe/dependabot/github_actions/develop/github/codeql-action-3
Bump github/codeql-action from 2 to 3
2023-12-18 22:57:10 +00:00
snipe
e1d2fdcfb7 Merge pull request #14001 from Godmartinz/feature/sc-18577
Added Status Label names to Asset history/ Action log
2023-12-18 22:41:02 +00:00
Marcus Moore
9fcb1a2d0e Rename SavedReport to ReportTemplate 2023-12-18 12:55:48 -08:00
Marcus Moore
149d159c05 Remove unused bootstrap resources 2023-12-18 11:49:52 -08:00
Marcus Moore
c0ad16f497 Remove unused vendor js files 2023-12-18 11:48:28 -08:00
dependabot[bot]
2305224221 Bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 08:13:48 +00:00
snipe
ea8181d3ec Merge remote-tracking branch 'origin/develop' 2023-12-15 16:41:55 +00:00
snipe
05bc9f117c Merge pull request #14042 from snipe/bug/sc-24356
Fixed #14037 - record current time on accessory checkin
2023-12-15 16:41:42 +00:00
snipe
444c41bedb Fixed #14037 - record current time on accessory checkin
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 16:39:18 +00:00
snipe
ec3c4674de Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:58:45 +00:00
snipe
61a1fed0a2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-12-15 13:58:25 +00:00
snipe
2427cb787b Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:57:37 +00:00
snipe
e3d6d48e04 Merge pull request #13966 from marcusmoore/feature/sc-24120
Removed jquery-ui-bundle
2023-12-15 13:55:56 +00:00
snipe
0bb5abd24d Merge remote-tracking branch 'origin/develop' 2023-12-15 13:45:02 +00:00
snipe
130be26820 Merge pull request #14031 from snipe/bug/ldap_undefined_search_base
Fixed undefined $search_base
2023-12-15 13:33:34 +00:00
snipe
2d85eeface Added indexes for reports
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:24:01 +00:00
snipe
56f9c7f2f5 Merge pull request #14036 from snipe/feature/sc-24355
Added user agent, remote_ip, action_source to action_logs
2023-12-15 11:18:46 +00:00
snipe
421802893e Added new fields to action report
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 10:45:22 +00:00
Joël Pittet
32aedabfe5 Force update with PHP 7.4.3 platform requirement and update lock 2023-12-14 09:59:11 -08:00
Joël Pittet
b746c7d371 Fixes CVE-2023-43655 Composer Remote Code Execution vulnerability via web-accessible composer.phar 2023-12-14 09:34:25 -08:00
Joël Pittet
0a5eca53db Fixes CVE-2023-50251 and CVE-2023-50262 DoS on parsing SVG 2023-12-14 09:28:21 -08:00
snipe
7aabf94a35 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:43:38 +00:00
snipe
e71080ef37 Make action date sortable on asset history view
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:41:15 +00:00
snipe
14c70ee6c4 Removed BS th classes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:37:47 +00:00
snipe
8fc470c978 Added fields to activity report
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:44 +00:00
snipe
f5f136b9b5 Added fields to history views
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:31 +00:00
snipe
a90b04c905 Allowed sorting on user_agent, etc
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:08 +00:00
snipe
93c7108eda Added action source to translations
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:49 +00:00
snipe
40052e99a7 Added user agent to log method
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:39 +00:00
snipe
70303c2b2d Added searchable fields, improved formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:25 +00:00
snipe
4dac3712a6 Added DB migration for remote_ip, action_source, user_agent in logs
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:32:26 +00:00
Brady Wetherington
430f1b0212 Merge branch 'develop' into feature/sc-24120 2023-12-14 13:28:17 +00:00
Marcus Moore
27bb938d9e WIP: add dedicated edit report page 2023-12-13 18:09:42 -08:00
snipe
5df6575c37 Fixed undefinted $search_base
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 00:11:02 +00:00
Marcus Moore
75bd056bbe Display saved template name in header 2023-12-13 14:49:38 -08:00
akemidx
ad202be374 update method (WIP ver) 2023-12-13 17:31:58 -05:00
snipe
cb18606b2e Merge remote-tracking branch 'origin/develop' 2023-12-13 17:55:57 +00:00
snipe
6b4bc9723c Added logo to readme
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 17:55:46 +00:00
spencerrlongg
e028145ad9 Add new asset tests for archive, depreciate, and physical fields 2023-12-13 09:16:08 -06:00
snipe
547d58cf14 Merge remote-tracking branch 'origin/develop' 2023-12-13 14:15:36 +00:00
snipe
b92906b071 Merge pull request #14028 from snipe/security/snyk_14013
[Snyk] Upgrade alpinejs from 3.12.3 to 3.13.3 #14013
2023-12-13 14:15:07 +00:00
snipe
b1d4d89b19 [Snyk] Upgrade alpinejs from 3.12.3 to 3.13.3 #14013
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 14:14:04 +00:00
snipe
4f56c2e9d6 Added radio to seeder for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 14:03:13 +00:00
snipe
70250191ed Merge pull request #14026 from snipe/bug/sc-23599
Fixed checkbox/radio button display on models edit for default fields
2023-12-13 14:00:27 +00:00
snipe
337d863330 Missed closing label on radio buttons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 13:52:31 +00:00
snipe
7b85a30b64 Fixed checkbox seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 13:16:45 +00:00
snipe
ac96bad4a1 Merge pull request #14014 from Godmartinz/requested_assets_table_missing_header
added a missing table header on requested table for checkout
2023-12-13 12:57:20 +00:00
snipe
3834221589 Fixed radio button display
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 06:30:08 +00:00
snipe
016ca1adc1 Fixed HTML for checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 06:27:50 +00:00
snipe
9edb631d52 Merge pull request #14024 from spencerrlongg/chore/last_vue_component
Last Vue Components
2023-12-13 04:35:35 +00:00
akemidx
ca35b66597 frontys 2023-12-12 19:03:09 -05:00
akemidx
e9e68171bb frontend stuff 2023-12-12 18:56:21 -05:00
spencerrlongg
58d2f0a41e quick note 2023-12-12 15:49:57 -06:00
spencerrlongg
255d9427b6 make edit a button 2023-12-12 15:41:29 -06:00
spencerrlongg
d29f4489de fix 2023-12-12 14:09:12 -06:00
spencerrlongg
4367fc54bf remove vue from webpack steps 2023-12-12 13:43:05 -06:00
spencerrlongg
b89116eb55 submit on enter for edit 2023-12-12 13:33:51 -06:00
spencerrlongg
9430e9c8e2 autofocus, package-lock.json 2023-12-12 13:28:04 -06:00
snipe
7743b3a0fa Merge remote-tracking branch 'origin/develop' 2023-12-12 14:02:18 +00:00
snipe
8d4a4ccdab Merge pull request #14022 from snipe/chore/sc-24329
Added GH test action status badge
2023-12-12 14:01:56 +00:00
snipe
c5c3000a38 Added GH test action status badge
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:59:45 +00:00
snipe
46c0d38c6d Removed huntr.dev badge
They refocused their company to only AI now :(

Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:44:11 +00:00
snipe
f9697887e8 Removed extraneous test
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:41:35 +00:00
snipe
c2896c034d Merge remote-tracking branch 'origin/develop' 2023-12-12 13:33:50 +00:00
snipe
0241e66f2d Merge pull request #14021 from snipe/bug/sc-24328
Fixed HTML double-encoded on checkout emails.
2023-12-12 13:31:41 +00:00
snipe
b53a4c366e Removed escaping on notes on checkout
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:26:41 +00:00
snipe
1572d5c3cc Merge remote-tracking branch 'origin/develop' 2023-12-12 12:27:15 +00:00
snipe
6bb842f52c Merge pull request #14020 from snipe/bug/sc-24326
Added $user->created_at to API user create method
2023-12-12 12:26:58 +00:00
snipe
e894138fd4 Added $user->created_at to API user create method
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 12:26:02 +00:00
snipe
f8a56f6dc2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2023-12-12 04:33:04 +00:00
snipe
068f64a78e Merge pull request #14018 from snipe/features/more_info_in_quickscan
Added model name and number to quickscan
2023-12-12 04:30:11 +00:00
snipe
631dd58de1 Added model name and number to quickscan
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 04:23:04 +00:00
snipe
bbe5c7c6e8 Merge pull request #14017 from snipe/bug/sc-24323
Smaller icon size for activity reports, other action icons
2023-12-12 01:02:45 +00:00
snipe
41f1c5c1e3 Smaller icon size for activity reports, other action icons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:58:20 +00:00
spencerrlongg
b01d53a247 one more 2023-12-11 18:43:46 -06:00
Marcus Moore
e791ebbe76 Display report name in input 2023-12-11 16:36:32 -08:00
snipe
8100f11a36 Merge pull request #14016 from snipe/feature/sc-24184
Set default sorting on backups to latest first
2023-12-12 00:36:28 +00:00
snipe
65dae836c6 Set default sorting on backups to latest first
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:35:08 +00:00
Marcus Moore
d92893b2c7 Remove old javascript 2023-12-11 16:30:44 -08:00
Marcus Moore
c68a2a36fa Add test case for saving custom reports 2023-12-11 16:25:36 -08:00
Marcus Moore
89c47c1879 Add validation for saving reports 2023-12-11 16:20:36 -08:00
Marcus Moore
b9cda88363 Alphabetize saved reports list 2023-12-11 16:20:17 -08:00
snipe
1689c7f9b6 Merge remote-tracking branch 'origin/develop' 2023-12-12 00:15:35 +00:00
snipe
1084382654 Merge pull request #14015 from snipe/bug/sc-24322
Updated importer icons
2023-12-12 00:15:15 +00:00
snipe
456e6979f0 Updated import icons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:12:06 +00:00
spencerrlongg
65cbba3c2e completely kill vue 2023-12-11 18:09:22 -06:00
Marcus Moore
52028ddef2 Add authorization to saving saved reports route 2023-12-11 15:34:17 -08:00
Marcus Moore
c3845f4393 Add tests around loading saved reports 2023-12-11 14:29:33 -08:00
Marcus Moore
c9157dc55d Update docblock 2023-12-11 14:20:33 -08:00
Marcus Moore
c3b53b28e3 Allow saving custom reports 2023-12-11 14:19:03 -08:00
akemidx
e636d7b9d5 multiple saved reports, beginning of dynamic dropdown listing/queried url 2023-12-11 15:28:34 -05:00
Marcus Moore
bd86c5430c Add a few typehints 2023-12-11 11:27:56 -08:00
Godfrey M
5eb08d9568 added a missing table header for checkout 2023-12-11 11:14:55 -08:00
snipe
e7a9c7ec99 Merge pull request #14008 from akemidx/sc20532_change_log_level
Change log level on status label colors above 256
2023-12-08 09:01:28 +00:00
snipe
cf242d8b86 Merge remote-tracking branch 'origin/develop' 2023-12-08 08:59:17 +00:00
snipe
aa4aaf69b0 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2023-12-08 08:58:45 +00:00
akemidx
f112e31b46 changing log level from ERROR to LOG 2023-12-07 17:56:10 -05:00
akemidx
dc83689553 changing log level from ERROR to LOG 2023-12-07 17:50:25 -05:00
snipe
16ea459eca Merge remote-tracking branch 'origin/develop' 2023-12-07 19:49:25 +00:00
snipe
e483e910fe Merge pull request #14007 from snipe/bug/sc-24315
Fixed maintenances patch endpoint
2023-12-07 19:48:43 +00:00
snipe
778e45c9fd Fixed maintenances patch endpoint
Signed-off-by: snipe <snipe@snipe.net>
2023-12-07 19:36:12 +00:00
Marcus Moore
4a0bb31866 Scaffold two more test cases 2023-12-07 11:00:26 -08:00
snipe
4e96c8d05d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	Dockerfile.alpine
2023-12-07 14:12:56 +00:00
snipe
2c5c97fd7e Merge pull request #14005 from uberbrady/restore_more_directories
Improve backup directory array
2023-12-07 14:12:04 +00:00
Brady Wetherington
6bd351c5d8 Whoops, didn't even add changes - duh 2023-12-07 14:08:15 +00:00
akemidx
b7f6c7df06 html work, code comments for tomorrow's tasks 2023-12-06 18:05:58 -05:00
spencerrlongg
f93e7b91ff that's all folks 2023-12-06 16:20:30 -06:00
spencerrlongg
04069bab82 remove comment 2023-12-05 20:50:07 -06:00
spencerrlongg
3106035ef9 delete, comment 2023-12-05 20:41:34 -06:00
spencerrlongg
18720b3302 safety stuff 2023-12-05 20:36:59 -06:00
spencerrlongg
12e546e63a everything working, cleanup 2023-12-05 20:22:20 -06:00
spencerrlongg
c28936fefb almost there... problem with update button 2023-12-05 17:39:35 -06:00
spencerrlongg
080d196138 buttons work now after style tags removed 2023-12-05 16:41:25 -06:00
spencerrlongg
d3967b37cd this is a start, buttons not working? 2023-12-05 14:52:14 -06:00
Godfrey M
b90cfba796 adds status label id to line change 2023-12-05 11:56:54 -08:00
Godfrey M
49342a4542 added status names to asset history 2023-12-05 11:50:43 -08:00
Godfrey M
a95f0b8862 remove column sizes 2023-12-05 11:07:52 -08:00
Godfrey M
7a1d5e11cc Merge remote-tracking branch 'origin/add_license_to_info_for_activation' into add_license_to_info_for_activation 2023-12-05 11:07:34 -08:00
Godfrey M
15af64a355 fixed the bootstrap column sizes 2023-12-05 10:07:58 -08:00
snipe
0089ea2321 Merge pull request #13882 from marcusmoore/fixes/jquery-validation
Fix client side validation in the v7 branch
2023-12-05 17:26:48 +00:00
snipe
3f35124838 Merge pull request #13888 from spencerrlongg/chore/sc-16907
Convert Vue Personal Access Tokens to Livewire
2023-12-05 16:45:16 +00:00
spencerrlongg
6ca5fb6b20 remove token scope html 2023-12-05 09:44:03 -06:00
snipe
34bf6818ca Merge pull request #13999 from snipe/security/alpine
Updated to alpine 3.18.5 (PR to #13989)
2023-12-05 15:01:07 +00:00
snipe
a0de9eb343 Updated to alpine 3.18.5
Signed-off-by: snipe <snipe@snipe.net>
2023-12-05 15:00:04 +00:00
snipe
b4d747550c Merge pull request #13998 from snipe/feature/add_help_text_for_rtd
Added help text to RTD location field
2023-12-05 14:42:07 +00:00
snipe
7258af20fc Added help text to RTD location field
Signed-off-by: snipe <snipe@snipe.net>
2023-12-05 14:40:49 +00:00
Marcus Moore
a3b0273445 Remove comment 2023-12-04 15:21:04 -08:00
Godfrey Martinez
dd68182d08 Merge branch 'develop' into add_license_to_info_for_activation 2023-12-04 11:17:07 -08:00
Godfrey M
0e9e31f68b adds info needed for license self activation 2023-12-04 11:12:30 -08:00
snipe
174a3398d1 Merge pull request #13993 from Godmartinz/license_product_key_serial_swap
Fixed the Column header Serial to Product Key on a User View
2023-12-04 19:09:03 +00:00
Godfrey M
4fd43799b4 missed one view 2023-12-04 10:56:03 -08:00
spencerrlongg
cef1c5d4d2 cleanup test 2023-12-04 12:47:46 -06:00
snipe
09ec8d1d5c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/mix-manifest.json
2023-12-04 15:42:58 +00:00
snipe
5d60be97af Merge pull request #13992 from snipe/bug/sc-24182
Added eula-pdfs to allow-list on restore
2023-12-04 15:35:34 +00:00
snipe
1e46ecc2ee Added eula-pdfs to allow-list
Signed-off-by: snipe <snipe@snipe.net>
2023-12-04 15:33:56 +00:00
Marcus Moore
327d27591f Merge branch 'saved-custom-reports' into saving_custom_report_template 2023-11-30 18:15:35 -08:00
Marcus Moore
5041c07c7e WIP: implement restoring checkbox inputs 2023-11-30 18:15:04 -08:00
Marcus Moore
505d601488 Implement restoring date ranges 2023-11-30 17:07:39 -08:00
Marcus Moore
bca7f208a6 Implement restoring select values 2023-11-30 16:57:21 -08:00
spencerrlongg
2d57b9399c more cleanup 2023-11-30 16:20:48 -06:00
spencerrlongg
ca8765e1d7 cleaned up 2023-11-30 16:18:50 -06:00
spencerrlongg
6e5f296a13 gets rid of depreciate 2023-11-30 16:08:49 -06:00
spencerrlongg
68d85385a2 get rid of physical 2023-11-30 16:03:30 -06:00
spencerrlongg
88b6a541ee removed references to archived 2023-11-30 15:59:03 -06:00
spencerrlongg
133c469e36 organization 2023-11-30 14:25:58 -06:00
Marcus Moore
4f031149e8 Scaffold a couple test cases 2023-11-30 12:12:57 -08:00
snipe
5730518fc6 Merge pull request #13978 from uberbrady/test_ldap
Test ldap
2023-11-30 19:23:29 +00:00
snipe
fb1965331c Merge pull request #13981 from Godmartinz/license-table-header-fix
Fixed the Column header Serial to Product Key for Licenses
2023-11-30 18:51:42 +00:00
Godfrey M
fdaa44654d changes the table header Serial to Product Key 2023-11-30 10:46:18 -08:00
snipe
1455331a90 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-11-30 18:25:38 +00:00
spencerrlongg
7e780c1187 cleanup rules formatting 2023-11-30 12:20:02 -06:00
spencerrlongg
df954a3af2 return types 2023-11-30 12:06:58 -06:00
spencerrlongg
135b7bde7d added some more check out assertions 2023-11-30 11:53:26 -06:00
snipe
42109dc1eb Merge pull request #13976 from Godmartinz/sc-24144_final
Fixed black dark theme, contrast issues etc
2023-11-30 16:23:13 +00:00
snipe
47c8ae000a Merge pull request #13975 from ubc-cpsc/bugfix/CVE-2023-49316
Fixes CVE-2023-49316 by upgrading phpseclib/phpseclib
2023-11-30 16:22:08 +00:00
Brady Wetherington
5a60df55d1 Add more LDAP tests - including pagination(!) 2023-11-30 16:09:37 +00:00
Brady Wetherington
16da994e28 Add LDAP as 'recommended' requirement; flesh out LDAP tests 2023-11-30 14:00:20 +00:00
Brady Wetherington
2a00dc2d28 Merge branch 'develop' into test_ldap 2023-11-30 12:04:43 +00:00
spencerrlongg
151ceb5fbe get rid of firsts and find by responses id 2023-11-29 17:14:46 -06:00
spencerrlongg
d794608a09 note 2023-11-29 15:04:52 -06:00
spencerrlongg
c3492f1699 fixed eol, add calculated eol/eol explicit tests 2023-11-29 14:57:31 -06:00
Godfrey M
4a19f23e7c fixes for black dark theme 2023-11-29 11:30:02 -08:00
spencerrlongg
9d8433bd6d a couple quick things 2023-11-29 13:15:41 -06:00
Joël Pittet
5b4d6b346b Update for CVE-2023-49316 by upgrading phpseclib/phpseclib (3.0.14 => 3.0.34) 2023-11-29 11:03:12 -08:00
spencerrlongg
65ca24f6ae asset assigned to asset works now 2023-11-29 11:37:52 -06:00
snipe
f004007c47 Merge remote-tracking branch 'origin/develop' 2023-11-29 10:09:27 +00:00
snipe
96210e9498 Merge pull request #13970 from snipe/bug/sc-24149
Created mutator for requestable attribute
2023-11-29 10:08:41 +00:00
snipe
3152df2c48 Created mutator for requestable attribute
Signed-off-by: snipe <snipe@snipe.net>
2023-11-29 10:07:47 +00:00
snipe
df2b52c537 Merge remote-tracking branch 'origin/develop' 2023-11-29 09:41:05 +00:00
snipe
189c90e9e5 Merge pull request #13954 from Godmartinz/feature/sc-23756
Fixed user total asset cost to appear conditionally
2023-11-29 09:40:39 +00:00
snipe
c35d234cde Merge pull request #13959 from snipe/fixes/rebased_bulk_edit_fix
Fixed status and model in bulk edit
2023-11-29 09:40:03 +00:00
snipe
80fafeaebe Merge pull request #13965 from akemidx/no_group_notice_trans
Translation of No Group notice on User edit page
2023-11-29 09:39:28 +00:00
spencerrlongg
b17078fffd a couple notes 2023-11-28 22:15:13 -06:00
spencerrlongg
c886fb555b checkout on store tests almost done 2023-11-28 22:11:20 -06:00
spencerrlongg
15d11f7f4e test checkout to user on store 2023-11-28 21:46:03 -06:00
spencerrlongg
cba5f869c0 standardize some of the validation rules, fix int/string issue 2023-11-28 21:19:19 -06:00
spencerrlongg
4aae82fa38 cleanup validation rules a little 2023-11-28 17:28:17 -06:00
spencerrlongg
5b77e66d28 get rid of deleted_at as it doesn't do anything 2023-11-28 17:16:17 -06:00
Marcus Moore
4a975ebe29 Remove jquery-ui-dist 2023-11-28 15:01:41 -08:00
akemidx
2a54797dce permission level proof of formatting 2023-11-28 17:58:37 -05:00
akemidx
63065bab5d adding in icons for clarity, since there are two places called settings 2023-11-28 17:51:43 -05:00
akemidx
9770016eec beginning of permission groups export 2023-11-28 17:47:36 -05:00
Marcus Moore
810abb5c30 Replace jquery-ui-bundle with jquery-ui-dist 2023-11-28 14:24:21 -08:00
akemidx
108658520d translating no group message on user edit page 2023-11-28 17:15:51 -05:00
spencerrlongg
75ac7f80b9 some refactor + tests 2023-11-28 15:17:46 -06:00
Godfrey M
9e59550b79 removes the row instead of just the optional values 2023-11-28 10:08:32 -08:00
snipe
899890b224 Use update array nomenclature
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 16:25:35 +00:00
snipe
7ac3341b4f Merge pull request #13955 from marcusmoore/bug/sc-24137
Fixed sqlite exception in migration
2023-11-28 16:13:10 +00:00
snipe
d4fb7ac403 Merge remote-tracking branch 'origin/develop' 2023-11-28 16:11:01 +00:00
snipe
9d5ceb685d Merge pull request #13958 from uberbrady/encryption_key_rotator
Modified re-crypter to also work when given a CLI old-key
2023-11-28 16:10:45 +00:00
snipe
601ebcc1e6 Removed table header contraint
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 16:00:42 +00:00
snipe
2247be77d8 Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:56:20 +00:00
snipe
2d4a14d4bb Fixed from rebase :(
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:55:41 +00:00
snipe
3b9f069627 Switched back to old version
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:54:42 +00:00
snipe
2c6b957fbe Removed unused query
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:28:37 +00:00
snipe
6ae03a204b Added the model info back in
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:21:14 +00:00
snipe
187d3abeb4 Use translation string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:15:07 +00:00
snipe
c91713e20a Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:14:55 +00:00
snipe
fa1176ce14 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:14:12 +00:00
Brady Wetherington
c71726c83e Whoops, left in some debug lines 2023-11-28 13:52:07 +00:00
Brady Wetherington
ca430ec9b3 Modified re-crypter to also work when given a CLI old-key 2023-11-28 13:49:58 +00:00
snipe
9d786d9386 Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:43:33 +00:00
snipe
4723cfd4ba More refactoring
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
f9d5c451bc Committing this for now - not done
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
5574218966 More FAFO - cleanup needed, but model_id works now
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
c997ae44c2 FAFO troubleshooting
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
Marcus Moore
77ceac5747 Update docblock 2023-11-27 16:36:51 -08:00
Marcus Moore
990358750b Add migration for postgres 2023-11-27 16:33:57 -08:00
Marcus Moore
72dbe95168 Add table prefix 2023-11-27 15:55:33 -08:00
Marcus Moore
37bd297094 Fix typo 2023-11-27 14:05:38 -08:00
Marcus Moore
5d32956070 Allow for migrating data when using sqlite 2023-11-27 12:35:13 -08:00
Godfrey M
45e9d0597a makes user total asset cost appear conditionally 2023-11-27 11:36:47 -08:00
snipe
121b86b3e8 Merge remote-tracking branch 'origin/develop' 2023-11-27 15:49:26 +00:00
Brady Wetherington
8e8b1068ff Beginnings of LDAP test suite 2023-11-27 14:50:43 +00:00
snipe
c72950166f Merge remote-tracking branch 'origin/develop' 2023-11-27 14:46:37 +00:00
snipe
8c7edcb357 Merge pull request #13953 from snipe/localizations/new_strings
Updated language strings
2023-11-27 14:44:01 +00:00
snipe
dbb6002f9f Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-27 14:43:16 +00:00
snipe
776c91934b Updated dir name for Khmer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-27 14:39:13 +00:00
Brady Wetherington
6210716199 Merge branch 'develop' into snipeit_v7_laravel10 2023-11-27 13:04:39 +00:00
snipe
77ab5eb875 Merge pull request #13909 from akemidx/bug/sc-23999
Hiding Order Column in Custom Fieldsets
2023-11-24 19:10:42 +00:00
snipe
d80c8ff25b Merge remote-tracking branch 'origin/develop' 2023-11-24 10:10:45 +00:00
snipe
eca13d0593 Merge pull request #13950 from snipe/fixes/array_key_in_import
Check for the array key in $activeFile->first_row
2023-11-24 10:10:08 +00:00
snipe
9607567b75 Check for the array key in $activeFile->first_row
Signed-off-by: snipe <snipe@snipe.net>
2023-11-24 10:08:35 +00:00
snipe
6cec1bd3b9 Merge remote-tracking branch 'origin/develop' 2023-11-23 17:00:32 +00:00
snipe
1217bff4b6 Merge pull request #13947 from snipe/fixes/refactor_checkout_with_bad_category
Refactored checkout for items with bad or missing category
2023-11-23 16:59:51 +00:00
snipe
84d26fe7fa Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	package-lock.json
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2023-11-23 16:53:13 +00:00
snipe
ea55daf913 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:51:39 +00:00
snipe
0ff99f0479 Merge pull request #13948 from uberbrady/scim_active_flag
SCIM active flag must be a boolean
2023-11-23 16:44:22 +00:00
Brady Wetherington
8916c976e1 Merge branch 'develop' into scim_active_flag 2023-11-23 16:36:17 +00:00
Brady Wetherington
7b12d511f8 Force active flag to be returned as true or false 2023-11-23 16:34:03 +00:00
snipe
81b2273c37 Refactored checkout screen to redirect if invalid category
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:28 +00:00
snipe
978bbeccc5 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:09 +00:00
snipe
accfbc1b99 Show number of remaining seats and category in form
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:03 +00:00
snipe
cf3608ae10 Add @bilias as a contributor 2023-11-23 15:33:08 +00:00
snipe
aaa6a31eb3 Merge pull request #13945 from snipe/fixes/green_skin_fix_13915_to_develop
Higher contrast on green dark skin (#13915 for develop)
2023-11-23 15:30:00 +00:00
snipe
88cc234cbd Higher contrast for green dark skin
Applies #13915 to develop

Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:28:43 +00:00
snipe
94eeca7429 Merge pull request #13944 from snipe/security/snyk_13937
Upgrade jspdf-autotable from 3.5.31 to 3.7.1 #13937
2023-11-23 15:24:33 +00:00
snipe
e0e11845bb Upgrade jspdf-autotable from 3.5.31 to 3.7.1 #13937
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:23:13 +00:00
snipe
a7f98ea2a5 Merge pull request #13943 from snipe/security/snyk_13936
Upgrade alpinejs from 3.12.3 to 3.13.2 #13936
2023-11-23 15:20:47 +00:00
snipe
8e3657d62e Upgrade alpinejs from 3.12.3 to 3.13.2 #13936
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:19:59 +00:00
snipe
ddd7f206d3 Merge pull request #13942 from snipe/security/snyk_13935
Updated acorn to 8.11.2
2023-11-23 15:17:34 +00:00
snipe
81cf08adf5 Updated acorn to 8.11.2
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:16:40 +00:00
snipe
1b77632ecb Merge pull request #13941 from snipe/security/snyk_13938
Upgraded webpack to 5.89.0
2023-11-23 15:15:08 +00:00
snipe
d4bdaf16e7 Upgraded webpack to 5.89.0
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:13:13 +00:00
snipe
e3a8952f4b Merge pull request #13940 from snipe/features/add_location_to_user_view_assets
Added location to user view assets
2023-11-23 15:02:23 +00:00
snipe
ad6b286e10 Added default location to view-assets view
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:01:39 +00:00
snipe
7f94b7df32 Removed refresh from asset view table
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:01:24 +00:00
snipe
776b16d379 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-11-22 23:41:31 +00:00
snipe
6409018b08 Bumped hash and moved to pre version
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:41:03 +00:00
snipe
780279a620 Merge remote-tracking branch 'origin/develop' 2023-11-22 23:22:46 +00:00
snipe
31f429e1c4 Merge pull request #13934 from snipe/fixes/escaped_asset_tag_in_return_msg
Escape the asset tag before passing it to the view
2023-11-22 23:21:54 +00:00
snipe
3a0b994443 Merge pull request #13933 from snipe/fixes/removed_extra_return
Removed extra return statement in consumables API checkout method
2023-11-22 23:21:06 +00:00
snipe
1307ef19cf Escape the asset tag before passing it to the view
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:20:47 +00:00
snipe
aed6b531cb Derp. Extra return statement
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:05:38 +00:00
snipe
43db3b13ef Merge remote-tracking branch 'origin/develop' 2023-11-22 23:02:20 +00:00
snipe
bb0ba0bebe Merge pull request #13932 from snipe/features/use_allowlist_for_user_logging
Use allowlist for user observer logging
2023-11-22 23:01:52 +00:00
snipe
ba127be344 Use saveQuietly to prevent double entries
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:00:30 +00:00
snipe
c6178bd619 Added translation for success password save
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:59:59 +00:00
snipe
3929c8f260 Nicer alert layout
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:57:54 +00:00
snipe
f922d0518e Added allow list - quiet the observer down for magical laravel things
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:35:34 +00:00
snipe
45d9119733 Removed debugging/comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:32:34 +00:00
snipe
e269415fec Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:55:44 +00:00
snipe
996caafa80 Merge remote-tracking branch 'origin/develop' 2023-11-22 21:42:32 +00:00
snipe
8481768c3d Save quietly for login methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:42:21 +00:00
snipe
91c36730e7 Merge remote-tracking branch 'origin/develop' 2023-11-22 21:39:47 +00:00
snipe
d3175b2ca4 Removed remember token from changed
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:39:06 +00:00
snipe
dfabf9082b Merge remote-tracking branch 'origin/develop' 2023-11-22 21:37:35 +00:00
snipe
a8123db4fb Fixed comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:35:12 +00:00
snipe
b1e782d2f0 Small nits picked to make Brady happy
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:34:39 +00:00
snipe
60517f811e Merge pull request #13931 from snipe/features/nicer_icons_for_activity_report
Use updated icons for activity report
2023-11-22 21:10:22 +00:00
snipe
58679a13eb Use updated icons for activity report
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:07:07 +00:00
snipe
3d9a9c7fe8 Merge pull request #13930 from snipe/features/added_user_observer
Added user observer
2023-11-22 20:51:27 +00:00
snipe
22246dd099 Unset the specific arrays we don’t want to keep
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:50:46 +00:00
snipe
a7f76f9860 Hide certain fields from changelog
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:28:58 +00:00
snipe
8b79a8afdf Added user observer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:22:05 +00:00
snipe
299db76009 Merge pull request #13928 from snipe/fixes/double_logging_on_asset_restore
Fixes double logging on asset restore
2023-11-22 20:10:45 +00:00
snipe
20c0f687e9 Added restored to asset observer, removed manual logging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:09:10 +00:00
snipe
d06cfe6502 Changed verb to “restore” from “restored”
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:08:41 +00:00
snipe
534ac5ac53 Merge pull request #13926 from snipe/bug/sc-24106
Fixed issue where delete then restore could result in duplicate asset tags
2023-11-22 18:33:17 +00:00
snipe
e2d0136336 Fixed goofy translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:14:44 +00:00
snipe
6a3ab526de Refactorer API controller restore methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:04:24 +00:00
snipe
19877244cd Added/refactorerd isDeletable()
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:03:26 +00:00
snipe
f7ccef16e7 Refactorer controller restore methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:02:47 +00:00
snipe
0e51a0935d Added language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:41:12 +00:00
snipe
ffc1266d0e UI fix - don’t show the trash can icon on things that can be restored
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:41:06 +00:00
snipe
2972c31a11 Added restore endpoints for manufacturers and asset models API
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:40:47 +00:00
snipe
2353c8199c Set qty mutators
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 15:25:22 +00:00
snipe
e10258804d Merge remote-tracking branch 'origin/develop' 2023-11-22 13:48:35 +00:00
snipe
0d29ac9856 Fixded gate return
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 13:48:20 +00:00
snipe
10d867ccc9 Merge remote-tracking branch 'origin/develop' 2023-11-22 12:28:42 +00:00
snipe
eae98d3f35 Merge pull request #13923 from snipe/bug/sc-24098
Quick revert for #13830
2023-11-22 12:28:25 +00:00
snipe
a08dcbdfdb Quick revert for #13830
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 12:25:42 +00:00
snipe
9c4fbbe915 Merge pull request #13922 from snipe/bug/sc-24097
Created mutator on category checkin_email
2023-11-22 12:16:07 +00:00
snipe
d6a337a584 English hard
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 11:23:17 +00:00
snipe
83ee07cca1 Created mutator on category checkin_email
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 11:14:04 +00:00
akemidx
697595d963 Merge branch 'develop' into eol_date_range_for_reports 2023-11-21 16:07:26 -05:00
snipe
f12efcf5b2 Merge remote-tracking branch 'origin/develop' 2023-11-21 15:45:13 +00:00
snipe
9502525a41 Merge pull request #13914 from snipe/bug/sc-24073
Fixed missing translation string for `validation.two_column_unique_undeleted`
2023-11-21 15:44:56 +00:00
snipe
68ac1aaae0 Additional comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:36:11 +00:00
snipe
6a2ab2cfb2 Removed line break
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:10:19 +00:00
snipe
fb125af0df Tweaked language
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:09:50 +00:00
snipe
590cd0c71f Added Validator::replace() for friendlier interpretation of validation string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:03:59 +00:00
snipe
0ae91d305d Add the two_column_unique_undeleted translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:03:03 +00:00
snipe
0a1eef2e5b Merge remote-tracking branch 'origin/develop' 2023-11-21 14:12:50 +00:00
snipe
9347af0970 Merge pull request #13913 from snipe/bug/sc-24071
Fixed #13905 - Use `unique_undeleted` instead of `unique_serial`
2023-11-21 14:12:15 +00:00
snipe
766eee78b2 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 13:47:49 +00:00
snipe
2b9e4110bc Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 13:37:56 +00:00
snipe
4eb435e148 Use unique_undeleted instead of unique_serial
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 12:36:11 +00:00
akemidx
e5a4214b8b hiding all order stuff 2023-11-20 20:32:14 -05:00
snipe
6573ea6da6 Merge remote-tracking branch 'origin/develop' 2023-11-20 15:41:55 +00:00
snipe
a203189724 Add @Azooz2014 as a contributor 2023-11-20 15:41:36 +00:00
snipe
b02c60c2ce Merge pull request #13898 from Azooz2014/develop
Fixed #13850: Too few arguments to function in App\Importer\UserImporter::fetchManager()
2023-11-20 15:41:04 +00:00
snipe
c14b3d9780 Merge pull request #13904 from snipe/fixes/redirect_to_consumable_on_invalid_category
Redirect back to the specific consumable for correction
2023-11-20 15:40:40 +00:00
snipe
01fec1d6bb Redirect back to the specific consumable for correction
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:39:39 +00:00
snipe
9907da0aae Merge remote-tracking branch 'origin/develop' 2023-11-20 15:32:21 +00:00
snipe
01740b7969 Merge pull request #13903 from snipe/fixes/redirect_if_category_invalid
Redirect if category is missing or invalid
2023-11-20 15:31:58 +00:00
snipe
7c88601066 Grab the API
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:31:39 +00:00
snipe
fe2cfa0d38 Redirect if category is missing or invalid
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:28:44 +00:00
Abdelaziz Faki
2c62a7e78d Fixing #13850 UserImporter bug 2023-11-19 19:59:01 +03:00
snipe
7baf8e36c0 Merge remote-tracking branch 'origin/develop' 2023-11-19 07:16:34 +00:00
snipe
e41a16dbf3 Merge pull request #13879 from Godmartinz/location_search_bug
added user location scope
2023-11-19 07:01:59 +00:00
snipe
ad6822875d Merge pull request #13892 from Godmartinz/ldap_sync_bug
added a `empty()` around location_id to fix  ldap sync bug
2023-11-19 06:58:38 +00:00
Godfrey M
01f4aa018f fixed query 2023-11-16 11:20:14 -08:00
Godfrey M
f9baeefbaf allows to search full name 2023-11-16 11:14:42 -08:00
Godfrey Martinez
5569c2ba4a Merge branch 'develop' into ldap_sync_bug 2023-11-16 10:02:56 -08:00
Godfrey M
2f12a9cfe2 add a conditional around location_id to fix bug 2023-11-16 09:52:44 -08:00
spencerrlongg
af3417d6cc add return type 2023-11-16 11:42:37 -06:00
spencerrlongg
17bf8d0124 fix string 2023-11-16 11:31:00 -06:00
spencerrlongg
c3e02286d3 i can't blame this on livewire - animations or something? 2023-11-16 11:24:54 -06:00
spencerrlongg
a9d82bf157 enter working 2023-11-16 10:54:32 -06:00
snipe
617f58e046 Merge remote-tracking branch 'origin/develop' 2023-11-16 15:28:13 +00:00
snipe
81583207a9 Merge pull request #13887 from spencerrlongg/bug/sc-24024
Fix for Unique Serial
2023-11-16 15:27:55 +00:00
spencerrlongg
e097df912e a little cleanup 2023-11-15 22:35:20 -06:00
spencerrlongg
477bb6165f rm log 2023-11-15 20:45:04 -06:00
Spencer Long
19850e8c5a Merge branch 'snipeit_v7_laravel10' into chore/sc-16907 2023-11-15 20:37:15 -06:00
spencerrlongg
12dcf76da9 more cleanup 2023-11-15 20:33:44 -06:00
spencerrlongg
36aac328e4 delete vue component 2023-11-15 20:32:22 -06:00
spencerrlongg
9cf81c7ad4 cleanup, validation 2023-11-15 20:29:14 -06:00
spencerrlongg
6c6417e595 ok, maybe i do like livewire 2023-11-15 20:19:03 -06:00
spencerrlongg
efa8ba5965 nice, just need frontend work now 2023-11-15 17:24:54 -06:00
spencerrlongg
fd02385c22 deleted components i've already rebuilt in livewire 2023-11-15 17:14:09 -06:00
spencerrlongg
713b21de14 note 2023-11-15 16:56:08 -06:00
spencerrlongg
af144a5184 cleanup 2023-11-15 16:55:21 -06:00
spencerrlongg
9b31ae3146 create mostly working 2023-11-15 16:51:09 -06:00
spencerrlongg
4cb0012872 cleanup 2023-11-15 16:33:16 -06:00
spencerrlongg
eaa68327f7 SINGLE QUOTES 2023-11-15 16:27:01 -06:00
spencerrlongg
b1f75a3bb3 remove unused import 2023-11-15 13:20:17 -06:00
spencerrlongg
c7f90ad86d tested, working 2023-11-15 12:50:40 -06:00
spencerrlongg
0924a53789 quick fix 2023-11-15 12:28:30 -06:00
Marcus Moore
68ef618028 Run validation on blur 2023-11-14 16:30:29 -08:00
Marcus Moore
3ecdafa685 Add class to error placement check 2023-11-14 16:12:47 -08:00
Marcus Moore
20ae9dea19 Fix placement of error message 2023-11-14 15:55:15 -08:00
Godfrey M
c9d46856a3 added name back 2023-11-14 15:00:11 -08:00
Godfrey M
6d65f6646f allows validation to ignore self and update 2023-11-14 14:55:51 -08:00
Marcus Moore
34cd106357 Apply validation 2023-11-14 12:25:18 -08:00
Marcus Moore
714fce7e59 Add site name validation test 2023-11-14 12:23:58 -08:00
Marcus Moore
08e4ea384e Update additional partials for validation 2023-11-14 12:23:46 -08:00
Marcus Moore
fe0f9743d3 Update additional partials for validation 2023-11-14 12:07:37 -08:00
Godfrey M
57019e170f adds user location scope, still needs fine tuning 2023-11-14 11:49:00 -08:00
spencerrlongg
9f303cc116 playing around with livewire 2023-11-14 11:50:27 -06:00
spencerrlongg
e504b20235 couple small changes 2023-11-14 11:01:38 -06:00
snipe
0da3ef70d9 Merge remote-tracking branch 'origin/develop' 2023-11-14 16:16:30 +00:00
snipe
eb87720661 Merge pull request #13878 from snipe/fixes/clearer_error_text_on_import
Clarified upload error text
2023-11-14 16:16:16 +00:00
snipe
9316ecb8d6 CLarified upload error text
Signed-off-by: snipe <snipe@snipe.net>
2023-11-14 16:14:39 +00:00
Brady Wetherington
f64b0d3818 Merge branch 'develop' into snipeit_v7_laravel10 2023-11-14 16:00:29 +00:00
snipe
ec83b733f1 Merge remote-tracking branch 'origin/develop' 2023-11-14 14:40:21 +00:00
snipe
a81e2be6da Merge pull request #13876 from snipe/fixes/added_fieldmap_back_for_cli_import
Added default map back to the importer
2023-11-14 14:40:08 +00:00
snipe
73ebd9017f Added default map back to the importer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-14 14:37:48 +00:00
Marcus Moore
1a26ea0911 Update a couple more fields for new validation 2023-11-13 19:18:04 -08:00
Marcus Moore
7098ab6509 Match styling of existing error messages 2023-11-13 18:54:51 -08:00
Marcus Moore
0d3589ca24 Update create asset page to use new validation library 2023-11-13 18:17:39 -08:00
Marcus Moore
f02ff62a08 Install jquery-validation package 2023-11-13 18:15:18 -08:00
spencerrlongg
fbfc817c5f just some cleanup 2023-11-13 19:47:03 -06:00
snipe
a48eb60f87 Merge remote-tracking branch 'origin/develop' 2023-11-13 20:40:05 +00:00
snipe
13601031cb Merge pull request #13764 from Godmartinz/expiring-alerts-fix
Fixed the `getExpiringLicenses` query
2023-11-13 20:39:29 +00:00
snipe
4546e87eb5 Merge pull request #13680 from marcusmoore/feature/sc-23769
Changed data source input to select in new label engine
2023-11-13 20:38:42 +00:00
snipe
9dc9834bcb Merge pull request #13859 from inietov/fixes/attempt_to_read_id_on_boolean
Fixed ErrorExemption: Attempt to read property "id" on bool [sc-23945]
2023-11-13 20:22:52 +00:00
snipe
4ecce51b57 Merge pull request #13831 from Godmartinz/multi-sync-ldap-locations
Added multi location sync for ldap
2023-11-13 20:20:45 +00:00
snipe
000a28d648 Merge pull request #13830 from spencerrlongg/bug/sc-23921
Resolves Exceptions When An Array is Submitted and Exception Occurs Before Validation
2023-11-13 20:19:44 +00:00
snipe
f3d6de316b Merge branch 'master' of https://github.com/snipe/snipe-it 2023-11-13 16:41:18 +00:00
snipe
1f17c6e4f4 Merge remote-tracking branch 'origin/develop' 2023-11-13 16:41:07 +00:00
snipe
495df737fc Unfixed indenting :(
Signed-off-by: snipe <snipe@snipe.net>
2023-11-13 16:39:35 +00:00
snipe
0bae1a1f5e Merge pull request #13853 from snipe/features/link_back_to_asset_on_create
Link back to asset on create
2023-11-13 16:37:35 +00:00
snipe
442cad69a7 Merge pull request #13864 from marcusmoore/chore/sc-24012
Fixed GitHub Action tests for v7
2023-11-13 16:34:35 +00:00
snipe
5dde7cb439 Merge pull request #13871 from snipe/snyk-fix-bdea9ba7648f6c20aef5ce312ee450cd
[Snyk] Security upgrade alpine from 3.17.3 to 3.17.5
2023-11-13 16:34:08 +00:00
snyk-bot
6acff575e6 fix: Dockerfile.alpine to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5438697
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5788365
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5821141
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-6032385
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-6032385
2023-11-13 04:03:04 +00:00
Marcus Moore
be6545a366 Merge Laravel setup steps 2023-11-09 15:55:04 -08:00
Marcus Moore
32fdd36802 Run migrations 2023-11-09 15:51:30 -08:00
Marcus Moore
fbc54526ed Set variables for Passport install step 2023-11-09 15:47:52 -08:00
Marcus Moore
a3306e4a81 Install Passport during test setup process specifying the environment 2023-11-09 15:41:22 -08:00
Marcus Moore
3d858b21fa Revert "Install Passport during test setup process"
This reverts commit 690a5119f4.
2023-11-09 15:29:31 -08:00
Marcus Moore
62b557f82c Revert "Add database migration step"
This reverts commit 65e3696029.
2023-11-09 15:29:19 -08:00
Marcus Moore
158c82ff5f Revert "Be explicit about database host"
This reverts commit fd410c0281.
2023-11-09 15:26:50 -08:00
Marcus Moore
fd410c0281 Be explicit about database host 2023-11-09 15:20:41 -08:00
Marcus Moore
65e3696029 Add database migration step 2023-11-09 14:56:32 -08:00
Marcus Moore
690a5119f4 Install Passport during test setup process 2023-11-09 14:49:56 -08:00
Marcus Moore
cc0653c68a Update GitHub test action to run on PHP 8.1 and 8.2 2023-11-09 14:42:47 -08:00
Marcus Moore
042a15d294 Set minimum PHP version to 8.1 2023-11-09 14:41:13 -08:00
snipe
9bff2d0bbf Fixed indenting?
Signed-off-by: snipe <snipe@snipe.net>
2023-11-09 21:47:29 +00:00
snipe
9e1cfac995 Merge pull request #13857 from akemidx/bug/sc-20532
Bug Fix:  Undefined array key 266
2023-11-09 09:39:04 +00:00
spencerrlongg
8e4c0f60a1 return format 2023-11-08 17:36:54 -06:00
spencerrlongg
5615fc09e6 add view modal 2023-11-08 16:55:29 -06:00
spencerrlongg
d68f1e4cfa initial display work done 2023-11-08 16:48:20 -06:00
spencerrlongg
0c4901487d delete component class (for now) 2023-11-08 16:12:01 -06:00
spencerrlongg
7f4b2d6e42 modal and initial stuff working 2023-11-08 16:10:09 -06:00
Ivan Nieto Vivanco
7d30001ff8 Ignore the importer checkout if user is not found 2023-11-08 15:32:33 -06:00
Marcus Moore
49136a4d67 Add tests for color helper 2023-11-08 12:35:42 -08:00
akemidx
4382adce85 typo in error log message 2023-11-08 15:29:29 -05:00
spencerrlongg
715a49d9fe update php in composer.json 2023-11-08 14:29:06 -06:00
akemidx
2051ac785d adding in error logging and code comments 2023-11-08 13:44:46 -05:00
akemidx
9cc89911f7 possibilitieeeeeeeeessss 2023-11-08 13:29:32 -05:00
akemidx
495521b70e adjusting for less than 0 possibility 2023-11-08 12:51:51 -05:00
snipe
6da0671143 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:44:09 +00:00
snipe
a24d21e683 Added new unescaped alert box
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:41:05 +00:00
snipe
d2bf71327b Redirect /asset_tag/view to /asset_tag
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:56 +00:00
snipe
ef10f2e50e Use more correct route in redirect
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:38 +00:00
snipe
08153d418f Use new alert box and linked string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:18 +00:00
snipe
3f8b63e053 Add linked text
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:02 +00:00
snipe
8a61803963 Merge remote-tracking branch 'origin/develop' 2023-11-08 11:39:46 +00:00
snipe
d2bfa9a3b6 Merge pull request #13852 from snipe/bug/sc-23959
Fixed URL to favicon on default blade (used in 404 messages)
2023-11-08 11:39:24 +00:00
snipe
26311e46b8 Fixed URL to favicon on default blade (used in 404 messages)
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 11:38:48 +00:00
snipe
b3a6cc633b Merge pull request #13769 from Godmartinz/location-dropdown-duplication
clarifies an address column under locations
2023-11-08 08:59:07 +00:00
snipe
749b87cbbd Merge remote-tracking branch 'origin/develop' 2023-11-08 08:58:12 +00:00
snipe
bc9545ca96 Merge pull request #13823 from spencerrlongg/chore/sc-23922
New Translation Strings for Custom Asset Export
2023-11-08 08:57:20 +00:00
snipe
cf42eca198 Merge pull request #13814 from ntbutler-nbcs/feature-location-history
Added #13754 - asset history tab to locations view
2023-11-08 08:55:07 +00:00
snipe
44d064f094 Merge pull request #13842 from marcusmoore/bug/sc-23932
Fixed notes not saving to action log when licenses are checked in/out
2023-11-08 08:53:00 +00:00
snipe
3fb913669b Merge pull request #13847 from spencerrlongg/bug/sc-23914
Removed Refresh Button on Client Tables
2023-11-08 08:52:40 +00:00
snipe
1171141904 Merge pull request #13848 from marcusmoore/bug/sc-23949
Fixed missing import
2023-11-08 08:50:31 +00:00
Marcus Moore
eceb69122c Add missing import 2023-11-07 16:03:28 -08:00
akemidx
154e71de74 shifting wrap around logic back into 0-265 2023-11-07 17:43:51 -05:00
spencerrlongg
93101d36b8 removed refresh button on client tables 2023-11-07 15:07:24 -06:00
Marcus Moore
4fb349e326 Remove extra assertions 2023-11-06 14:04:52 -08:00
Marcus Moore
4d2790c3f4 Add tests for license checkout notes 2023-11-06 13:54:36 -08:00
Marcus Moore
a08e0bd547 Ensure notes are saved to the action log when licenses are checked in and out 2023-11-06 12:20:13 -08:00
snipe
9143b7a1b7 Merge remote-tracking branch 'origin/develop' 2023-11-03 20:10:38 +00:00
snipe
92c7de3fb5 Merge pull request #13837 from snipe/features/add_employee_number_to_user_merge
Added employee number to user merge screen
2023-11-03 20:10:05 +00:00
snipe
d0cc42a068 Added employee number to user merge screeb
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 20:09:11 +00:00
snipe
39c06802aa Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-11-03 14:07:46 +00:00
snipe
8c316e0bd3 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 14:07:15 +00:00
snipe
7a638e4a65 RB-17457 - Object of class Illuminate\Database\Eloquent\Collection could not be converted to int
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 14:06:27 +00:00
Marcus Moore
b7011d853a WIP: add methods to restore settings from saved report 2023-11-02 17:10:50 -07:00
Godfrey M
3b6a0d6525 allows multi location sync for ldap 2023-11-02 16:50:19 -07:00
snipe
b47e734b37 Merge remote-tracking branch 'origin/develop' 2023-11-02 14:50:55 +00:00
snipe
4d65d09306 Removed trim on manager ID
Signed-off-by: snipe <snipe@snipe.net>
2023-11-02 14:50:40 +00:00
snipe
c5e1cdbcee Merge pull request #13828 from Godmartinz/ldap_location_sync
fixed ldap location sync
2023-11-02 12:20:01 +00:00
spencerrlongg
75532d9662 adds permission test 2023-11-01 16:49:59 -05:00
Godfrey M
13d3f85c62 fixes ldap location sync 2023-11-01 12:26:58 -07:00
spencerrlongg
938ec75aa7 clarifying note 2023-11-01 14:09:03 -05:00
spencerrlongg
c9604b896a nevermind 2023-11-01 13:46:32 -05:00
spencerrlongg
d167ec6dc0 unique undeleted recreated with laravel rule 2023-11-01 13:36:35 -05:00
spencerrlongg
e05af5216e formatting 2023-11-01 12:14:46 -05:00
spencerrlongg
3f834cb88f authorization tested in request 2023-11-01 11:43:53 -05:00
spencerrlongg
d971172cf3 rm unnecessary import 2023-11-01 11:34:15 -05:00
spencerrlongg
53bd5626c9 this works, need to write up pr 2023-11-01 11:33:29 -05:00
spencerrlongg
8f75bb8706 fix translation strings 2023-10-31 21:38:52 -05:00
spencerrlongg
b67b00dd82 this is a start, something up with asset_tag unique rule 2023-10-31 21:06:44 -05:00
spencerrlongg
d4b9f6a2a4 add not_array (not ready, doesn't catch for specific exception) 2023-10-31 21:00:22 -05:00
snipe
e43051a1f7 Merge remote-tracking branch 'origin/develop' 2023-10-31 17:11:38 +00:00
snipe
5073c3389f Merge pull request #13821 from snipe/bug/rb-17462
More graceful failure if ldap_results JSON decode isn’t set
2023-10-31 17:11:14 +00:00
snipe
f822f8b186 More graceful failure if ldap_results JSON decode isn’t set
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 17:09:18 +00:00
snipe
e381bf978f Merge pull request #13816 from snipe/bug/sc-23900
Fixed datetime displayed on license edit for fields that should be date
2023-10-31 16:59:12 +00:00
snipe
db8a7c5ad9 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:30:22 +00:00
snipe
95e9002cd0 Merge pull request #13820 from inietov/fixes/attempt_to_read_property_fields
Fixed Attempt to read property fields on null [sc-23903]
2023-10-31 16:30:07 +00:00
snipe
60088403b9 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:04:29 +00:00
snipe
22996895d8 Check for valid model
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 16:04:19 +00:00
Ivan Nieto Vivanco
9f9f8c173b Add condition to only run trough custom fields if a custom fieldset exist 2023-10-31 10:00:36 -06:00
snipe
96be0c25c4 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:00:27 +00:00
snipe
e6810e8db9 Merge pull request #13819 from snipe/bug/check_for_valid_category_on_print
Check that the category exists on user print page
2023-10-31 15:59:54 +00:00
snipe
28641493ca Check that the category exists
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:58:59 +00:00
snipe
e703bfaa21 Merge remote-tracking branch 'origin/develop' 2023-10-31 15:33:50 +00:00
snipe
9a7e7bddcc Merge pull request #13818 from snipe/bug/sc-23902
Fixed validation handling on backup uploads
2023-10-31 15:33:26 +00:00
snipe
aa2a25dc19 Display the form errors correctly
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:30:49 +00:00
snipe
57372fc82a Correctly call the validator in the response if it fails
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:30:38 +00:00
snipe
e862fe1056 Merge remote-tracking branch 'origin/develop' 2023-10-31 12:55:04 +00:00
snipe
ae90f9defa Merge pull request #13817 from snipe/feature/sc-23901
Added checkboxes to intentionally remove field values in bulk user edit
2023-10-31 12:54:07 +00:00
snipe
3495652827 Added checkboxes to intentionally remove field values in bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:52:53 +00:00
snipe
5779a63221 Undoing that thing I just did :(
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:28:57 +00:00
snipe
209627e2cc Force format if dates are given
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:25:00 +00:00
snipe
9fc1cbd7ae Change cast to include format
https://laravel.com/docs/8.x/eloquent-mutators#date-casting - this doesn’t seem to work tho?
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:24:48 +00:00
snipe
e3e887f02e Merge remote-tracking branch 'origin/develop' 2023-10-31 09:46:30 +00:00
snipe
e405e27643 Merge pull request #13815 from snipe/feature/sc-23898
Add additional fields to Download All in Activity Report
2023-10-31 09:45:12 +00:00
snipe
96211cf73c Add additional fields to Download All in Activity Report
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 09:43:47 +00:00
Marcus Moore
06186c9b12 WIP: Simply post the form to a different controller 2023-10-30 16:30:53 -07:00
Nathan Butler
79f380cbe7 Added asset history tab to locations view 2023-10-31 10:28:54 +11:00
snipe
5236ca3332 Merge remote-tracking branch 'origin/develop' 2023-10-30 21:05:33 +00:00
snipe
518c43680d Merge pull request #13812 from snipe/bug/sc-23897
Handle redirect from after POST request from backup restore
2023-10-30 20:21:29 +00:00
snipe
e554a80589 Handle redirect from after POST request from backup restore
Signed-off-by: snipe <snipe@snipe.net>
2023-10-30 20:01:01 +00:00
snipe
f47a8664f9 Merge pull request #13811 from Godmartinz/missing_translation_string
add missing translation string
2023-10-30 19:40:51 +00:00
Godfrey M
97953ae082 add missing translation string 2023-10-30 12:17:55 -07:00
Marcus Moore
7a5faa9619 Adjust margin on custom report page 2023-10-30 12:03:50 -07:00
snipe
8e20071254 Merge pull request #13731 from snipe/improvements/trim_on_import
Added trim to import values
2023-10-30 14:17:37 +00:00
snipe
316c90c144 Update app/Importer/ItemImporter.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2023-10-30 14:17:27 +00:00
snipe
a8e8fe7447 Merge remote-tracking branch 'origin/develop' 2023-10-30 14:12:54 +00:00
snipe
462d2d329a Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-10-30 14:12:38 +00:00
snipe
a6b713ae21 Add @mmanjos as a contributor 2023-10-30 14:12:23 +00:00
snipe
0d67ae27c2 Merge pull request #13810 from mmanjos/develop
Fixed #11179: APP_FORCE_TLS is missing from the example .env.docker
2023-10-30 14:11:54 +00:00
Matthew Manjos
bd894677ef add missing variable APP_FORCE_TLS to .env.docker 2023-10-30 10:09:44 -04:00
snipe
2fd2d9431e Merge remote-tracking branch 'origin/develop' 2023-10-30 13:21:19 +00:00
snipe
d404452f5a Merge pull request #13809 from snipe/bug/sc-23893
Added min_amt value to model detail page
2023-10-30 13:21:00 +00:00
snipe
8c46f4ef69 Added min_amt value to model detaul page
Signed-off-by: snipe <snipe@snipe.net>
2023-10-30 13:19:59 +00:00
snipe
1da6b6a4d5 Merge remote-tracking branch 'origin/develop' 2023-10-30 13:06:50 +00:00
snipe
740569791f Merge pull request #13803 from spencerrlongg/feature/13789-feature-request-add-user-phone-and-address-to-custom-asset-report
Added User Phone & Address Fields to Custom Asset Report
2023-10-30 12:43:20 +00:00
gitgrimbo
d556f0d275 Use parseEscapedMarkedownInline for more views 2023-10-27 15:37:56 +01:00
spencerrlongg
90eb3b86cf added user phone & address fields 2023-10-26 19:10:53 -05:00
snipe
b58dea07a7 Merge remote-tracking branch 'origin/develop' 2023-10-26 21:46:45 +01:00
snipe
10abecc5a6 Merge pull request #13802 from spencerrlongg/bug/13531-custom-asset-report-does-not-correct-report-eol-date
Fixes EOL on Custom Report
2023-10-26 21:43:13 +01:00
spencerrlongg
f12d44509e asset_eol_date should always be filled now 2023-10-26 14:39:02 -05:00
spencerrlongg
91b53bffa1 resolved 2023-10-26 14:23:31 -05:00
snipe
98423e4dd9 Merge remote-tracking branch 'origin/develop' 2023-10-26 17:57:17 +01:00
snipe
a2ba39c837 Removed required custom field from seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 17:57:05 +01:00
snipe
38f10e0b21 Merge remote-tracking branch 'origin/develop' 2023-10-26 16:00:22 +01:00
snipe
aab7eb4a85 Merge pull request #13800 from snipe/fixes/bulk_edit_assets
Fixed FD-38641 - Bulk asset edit unable to update model_id, misc other bugs
2023-10-26 15:56:47 +01:00
snipe
7b2f49644e Use nothing instead of null to make it consistent
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:44:17 +01:00
snipe
305cd9b0b8 Use null instead of blank
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:42:49 +01:00
snipe
9bba0b764a Added clearer comments
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:38:39 +01:00
snipe
1ce95b6eac Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:34:27 +01:00
snipe
9c90f03142 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:34:18 +01:00
snipe
b4d3f51414 Merge pull request #13776 from Robert-Azelis/Robert-Azelis-EOL_fix_improvements
[FIX and improvements] EOL rate and EOL date
2023-10-26 13:36:25 +01:00
snipe
64219da0b4 Merge branch 'develop' into Robert-Azelis-EOL_fix_improvements 2023-10-26 13:36:18 +01:00
snipe
7b9259274c Merge pull request #13799 from inietov/fixes/unlogged_checkin_from_importer
Fixed #13795 Unlogged checkin action post updating the username of an asset through the CSV import
2023-10-26 13:33:51 +01:00
snipe
d40a03b4c5 Merge remote-tracking branch 'origin/develop' 2023-10-26 13:09:38 +01:00
snipe
c1213e0abc Nicer handling for empty custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:41:44 +01:00
snipe
05de8a5731 Re-added missing break
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:21:27 +01:00
snipe
ff72c4fbaa Added nicer formatting for fields in log meta
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:17:28 +01:00
snipe
9d887484c8 Added encrypted custom field to seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 07:41:25 +01:00
snipe
c4c47f2e8d Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:51:14 +01:00
snipe
0cebccac95 Removed extra logging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:51:07 +01:00
snipe
c3b3aa4de6 Set one field to encrypted in the seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:25:51 +01:00
snipe
3717d60170 Added two more custom fields/fieldsets to seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 05:04:30 +01:00
snipe
6c996ac8fa Changed the seeder order to accomodate actionlog factory
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 05:03:59 +01:00
snipe
7042260871 More style polishing on custom fields in bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:23:11 +01:00
snipe
2695576968 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:21:20 +01:00
snipe
f25ddee857 Removed debugging, use new model rules if model has changed
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:21:14 +01:00
snipe
541ba0c0ba Removed conditional add for model_id
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:20:52 +01:00
snipe
77d141d19c Don’t check the delete expected checkin by detault
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 03:56:02 +01:00
snipe
436192b836 Fixed seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:56:34 +01:00
snipe
522aa96fcc Changed error variable name
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:36:18 +01:00
snipe
b87879f8e7 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:35:53 +01:00
snipe
60e0e899bc Added show_in_requestable_list to factory
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:35:33 +01:00
snipe
6ebc01ca50 Bulk edit refactor
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:23 +01:00
snipe
4b6b36c639 Removed semicolon
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:14 +01:00
snipe
4a759f0a20 Added fingerprint icon for unique
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:01 +01:00
Ivan Nieto Vivanco
ca1845efd7 Only log checkin event if the assigned_to property is not empty 2023-10-25 16:41:31 -06:00
Ivan Nieto Vivanco
7ed58a177b Evaluate if the asset was assigned to a different user than current target to log a checkin event 2023-10-25 16:31:23 -06:00
snipe
d8a3081128 Merge remote-tracking branch 'origin/develop' 2023-10-25 21:05:28 +01:00
snipe
d93e399295 Merge pull request #13797 from Godmartinz/employeeid_search_add
adds employee number as a searchable field to the asset table
2023-10-25 21:04:54 +01:00
Godfrey M
1b614c13fb ugh 2023-10-25 13:03:42 -07:00
Godfrey M
56fd41eee4 removed erroneous code 2023-10-25 13:03:12 -07:00
Godfrey M
33b45898b1 adds to advancedsearch 2023-10-25 12:59:58 -07:00
snipe
eabc7479e3 Merge remote-tracking branch 'origin/develop' 2023-10-25 20:58:13 +01:00
snipe
7509d57bf6 Merge pull request #13796 from snipe/feature/sc-23880
Added optional custom fields to requestable assets page
2023-10-25 20:57:54 +01:00
snipe
da08f0e26f Merge pull request #13584 from Godmartinz/Bulk_location_edit_fix_gh-13572
added an option to bulk edit location & fixed location bug
2023-10-25 20:57:18 +01:00
snipe
0feb56d931 Removed period
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:39:15 +01:00
snipe
a0cae77278 Fixed weird layout quirk on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:21:07 +01:00
snipe
0f97c0601b Nicer show/hide if encrypted, warn if already encrypted
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:11:06 +01:00
snipe
3916bac95f Added warning translation for encrypted fields
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:10:46 +01:00
snipe
6264d90459 Removed ending period for consistency
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:45:11 +01:00
snipe
57d3b2d2ef Check for encryption
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:44:10 +01:00
snipe
a202bf81fa Removed column widths, check for encryption and showable
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:44:02 +01:00
snipe
43da292d60 Used short translation for sr-only text
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:43:34 +01:00
snipe
ab3edae0b6 Reverted buttons (this re-introduces the n+1 problem.)
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:43:09 +01:00
snipe
887d013a39 Added listable fields in profile -> requested assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:42:33 +01:00
akemidx
e5792fd415 api/savereports controller 2023-10-25 14:42:23 -04:00
snipe
eb82bc290d Clarified translation
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:42:07 +01:00
snipe
8b9b46c562 Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:41:59 +01:00
snipe
307f84dff8 Removed extraneous method
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:41:53 +01:00
snipe
3c6b79e807 Added new fields to blades
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:55 +01:00
snipe
e5bd78a722 Added show_in_requestable_list validation, casting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:35 +01:00
snipe
23a6547ada Added custom fields, fixed n+1
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:14 +01:00
snipe
63a86c5622 Added field to controller
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:27:36 +01:00
snipe
933ce61efd Removed eager loading for defaultLoc, added requests loading, sorting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:26:51 +01:00
snipe
88661a58a7 Make field nullable
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:26:31 +01:00
snipe
08693f09b0 Added requests() method on Assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:22:12 +01:00
snipe
3a37b80251 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:21:58 +01:00
snipe
e7ef7f04f0 Removed periods for consistency
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:21:48 +01:00
snipe
c4adc3ccc8 Migration to add show_in_requestable_list boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:18:37 +01:00
snipe
96f7f49b68 Fixed response docblock
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 16:40:49 +01:00
snipe
8c93e79397 Merge pull request #13787 from inietov/fixes/errorexception_undefined_array_key
Fixed ErrorException: Undefined array key in importer blade [sc-23864]
2023-10-25 07:47:48 +01:00
snipe
4d345168d6 Merge pull request #13786 from svpernova09/map-docker-logs-to-storage
Map Snipe-IT logs to storage logs folder
2023-10-25 07:20:22 +01:00
Ivan Nieto Vivanco
f2f3931fa9 Formatting correctly 2023-10-24 11:26:37 -06:00
Joe Ferguson
c919cd31fa Map Snipe-IT logs to storage logs folder
For docker-compose.yml usage to prevent error messages.
2023-10-24 11:31:02 -05:00
snipe
4f136920a9 Merge remote-tracking branch 'origin/develop' 2023-10-24 17:03:50 +01:00
snipe
9d2d13bb59 Merge pull request #13784 from snipe/fixes/fixed_accessory_not_found_string
Fixed accessory not found string
2023-10-24 17:03:13 +01:00
snipe
944520bc5d Fixed notification formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:02:16 +01:00
snipe
aae289e150 Added missing string
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:02:07 +01:00
snipe
c756849497 Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:01:51 +01:00
snipe
ec878202f7 Merge remote-tracking branch 'origin/develop' 2023-10-24 11:53:00 +01:00
snipe
29f438123e Merge pull request #13777 from Robert-Azelis/Robert-Azelis-Cutom_Report_FIX
[FIX] Custom report - date fields error
2023-10-24 10:27:58 +01:00
Ivan Nieto Vivanco
0c5d54dfde Create the language string to show in the importer GUI indicating the file is empty 2023-10-23 22:09:17 -06:00
Ivan Nieto Vivanco
49f6eef9df Places a text indicating that the file is empty and display it as an info text 2023-10-23 21:57:35 -06:00
Ivan Nieto Vivanco
8f8e5cb723 Adds condition to only process CSV if is not empty 2023-10-23 21:47:10 -06:00
snipe
d5598b3322 Merge pull request #13778 from Robert-Azelis/Robert-Azelis-Dashboard_impr
[Improvement] Dashboard
2023-10-23 18:00:00 +01:00
Robert-Azelis
309f30f630 Update view.blade.php
display marker if date of EOL is expired and show real EOL rate as diff between purchase date and eol date
2023-10-22 18:38:59 +02:00
Robert-Azelis
04a867d12b Update eol_date.blade.php
read EOL date from database instead calculate on the base model EOL rate
2023-10-22 18:32:20 +02:00
Robert-Azelis
e62636b3a5 Update AssetModelPresenter.php
display name 'EOL rate' instead of 'EOL'
2023-10-22 18:27:53 +02:00
Robert-Azelis
4e20a241ce Update AssetPresenter.php
display name 'EOL rate' instead of 'EOL'
2023-10-22 18:26:19 +02:00
Robert-Azelis
30cc498a16 Update AssetObserver.php
update exlicit marker depends if model EOL > 0 , EOL = 0
2023-10-22 18:23:30 +02:00
Robert-Azelis
5ae09b791f Update AssetsTransformer.php
on list of assets display EOL rate in months if purchase date and eol date are set, otherwise null (not display anything)
2023-10-22 18:16:49 +02:00
Robert-Azelis
bd195a6911 Update AssetsController.php
when asset is updated control EOL date change sand set explicit marker depends to setup of model EOL rate
2023-10-22 18:11:19 +02:00
Robert-Azelis
58062ff9f5 Update AssetModelsController.php
if EOL of model has been changed and value is >0 assets will be updates with new EOL rate, date
if EOL of model has been changes and value is null or 0 then assets will be updates by null EOL rate, date
*asset with set expilicity market will not be updated
2023-10-22 17:56:38 +02:00
Robert-Azelis
7571d45d44 [Improvement[ Dashboard
If multicompany option is enabled much more important for admin is to see on dashboard list of companies instead of locations.  
In other way if multicompanies option is disabled then locations are displayed.
2023-10-22 17:41:33 +02:00
Robert-Azelis
47186b0abe [FIX] Custom report - date fields error
Custom report in v6.2.3 give Error if selected are fields:
Purchase Date, Checkout Date, Last Checkin Date, Expected Checkin Date
Reason is: date field format
2023-10-22 16:28:44 +02:00
Godfrey M
e0a4387b10 clarifies an address column under locations 2023-10-19 10:01:08 -07:00
Godfrey M
b98c1a0627 fixes getExpiringLicenses query 2023-10-18 13:25:34 -07:00
snipe
bcce282ef9 Merge remote-tracking branch 'origin/develop' 2023-10-18 19:16:55 +01:00
snipe
38066bf162 Merge pull request #13758 from inietov/fixes/array_to_string_conversion_rb17355
Fixed ErrorException: Array to String Conversion rb17355
2023-10-18 19:09:13 +01:00
spencerrlongg
6b745930b5 what typo? 2023-10-18 13:00:13 -05:00
snipe
da30292d84 Merge pull request #13763 from Godmartinz/snipeit_v7_laravel10
fixed the bulk edit button on Asset tab
2023-10-18 18:51:41 +01:00
Godfrey M
7bda5c06de fixes the bulk edit button on Asset tab 2023-10-18 10:46:47 -07:00
spencerrlongg
38de69b3da new validation rule 2023-10-18 12:41:24 -05:00
snipe
41e96ad0ab Merge remote-tracking branch 'origin/develop' 2023-10-18 14:37:37 +01:00
snipe
bc6f014fff Merge pull request #13762 from snipe/fixes/make_sure_order_number_is_not_array
Make sure order number is not an array
2023-10-18 14:37:18 +01:00
snipe
1be503b21a Make sure order number is not an array
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:36:16 +01:00
snipe
997664f489 Merge remote-tracking branch 'origin/develop' 2023-10-18 14:18:49 +01:00
snipe
825c800d32 Merge pull request #13761 from snipe/fixes/check_for_valid_date_in_custom_report
Check for valid date in custom report
2023-10-18 14:18:27 +01:00
snipe
0c86b67ed6 Added error reporting to UI
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:13:35 +01:00
snipe
4d841dbc79 Use custom report validator
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:13:25 +01:00
snipe
f2fb5b43e3 Added custom report validator
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:12:52 +01:00
snipe
14a0c9b5db Merge remote-tracking branch 'origin/develop' 2023-10-18 13:06:21 +01:00
snipe
3747165f25 Merge pull request #13759 from snipe/fixes/better_handle_deleted_variables_in_api_call
Check for true/false explicitly on api table view
2023-10-18 13:05:57 +01:00
snipe
787a64d313 Check for true/false explicitly on api table view
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 13:05:06 +01:00
spencerrlongg
f7bb911b99 clean up 2023-10-17 19:06:53 -05:00
spencerrlongg
388e4c10c4 catch custom fields that are arrays 2023-10-17 19:03:58 -05:00
Ivan Nieto Vivanco
74ed32903f Adds condition to check if parameter is of the proper type 2023-10-17 15:48:51 -06:00
snipe
a6d3886aaf Merge remote-tracking branch 'origin/develop' 2023-10-17 22:37:50 +01:00
snipe
f2bc7d6173 Merge pull request #13757 from snipe/fixes/RB-17334_user_formatted_array
Fixed RB-17334 - ErrorException: Undefined variable $user_formatted_array
2023-10-17 22:34:52 +01:00
snipe
72fe94edb3 Fixed RB-17334 - ErrorException: Undefined variable $user_formatted_array
Signed-off-by: snipe <snipe@snipe.net>
2023-10-17 22:33:56 +01:00
snipe
3e54a9d561 Merge pull request #13756 from spencerrlongg/bug/label_logo_fix
Fixed #13652 - Labels Using Wrong Logo
2023-10-17 19:45:20 +01:00
spencerrlongg
4bdd070f7b formatting 2023-10-17 13:41:31 -05:00
spencerrlongg
277608d962 this seems to work 2023-10-17 13:30:51 -05:00
Brady Wetherington
3d5847f4b3 Merge branch 'develop' into snipeit_v7_laravel10 2023-10-16 23:37:13 +01:00
snipe
82c2a46ada Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:24:03 +01:00
snipe
3f6554ee34 Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:23:43 +01:00
snipe
73ec84903e Merge remote-tracking branch 'origin/develop' 2023-10-16 23:15:05 +01:00
snipe
1e0512ad44 Merge pull request #13753 from snipe/fixes/check_for_valid_location
Check that the location is valid before debugging
2023-10-16 23:14:41 +01:00
snipe
23fa92f4ce Check that the location is valid before debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:13:38 +01:00
snipe
55d0c4021d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-10-16 20:19:03 +01:00
snipe
2218cff7bc Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:18:33 +01:00
Brady Wetherington
db400dffb5 Merge branch 'develop' into snipeit_v7_laravel10
Rebuild assets and re-install from npm
2023-10-16 20:13:59 +01:00
snipe
199cdf6899 Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:05:11 +01:00
snipe
752171d5b8 Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:05:11 +01:00
snipe
8c4bf74f93 Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-14 20:43:18 +01:00
snipe
4e3d5707ce Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-14 20:39:52 +01:00
snipe
37858d870a Merge remote-tracking branch 'origin/develop' 2023-10-13 19:58:37 +01:00
snipe
b1f158ba5a Merge pull request #13749 from snipe/bug/sc-23473
Handle case where value is deleted in history
2023-10-13 19:58:19 +01:00
snipe
a92a9d7616 Removed duplicated deleted
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:53:11 +01:00
snipe
8f23a45cb3 Removed dummy text
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:49:03 +01:00
snipe
93cccf4f5f Handle case where value is deleted in history
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:32:09 +01:00
snipe
dcdc294135 Merge remote-tracking branch 'origin/develop' 2023-10-13 12:40:30 +01:00
snipe
04f6f39588 Merge pull request #13748 from snipe/bug/sc-23830
Fixed #13723 - race condition on asset observer for older migration
2023-10-13 12:40:14 +01:00
snipe
ca1420c9bd Added the temp column back in
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:39:28 +01:00
snipe
2537d0fdaf Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:34:46 +01:00
snipe
b2aed7feea Removed temp column
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:30:26 +01:00
snipe
ea960c39bb Check if the eol_explicit column exists yet, add it if not
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:19:32 +01:00
snipe
0b39591d88 Add the eol_explicit column earlier to accomodate the observer
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:18:58 +01:00
snipe
c14a01eb8b Added comments to explain the potential race condition
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:18:19 +01:00
snipe
2a9ed09f77 Merge remote-tracking branch 'origin/develop' 2023-10-13 10:03:18 +01:00
snipe
b96e77268a Merge pull request #13745 from spencerrlongg/bug/table_prefix_migration_fix
Resolves issue with migrations with table prefixes
2023-10-13 08:49:28 +01:00
spencerrlongg
f3bd23da3d rm whitespace 2023-10-12 14:53:17 -05:00
spencerrlongg
9b53b0fedc resolve issue with migrations with table prefixes 2023-10-12 14:50:12 -05:00
snipe
0d2f43c04f Merge remote-tracking branch 'origin/develop' 2023-10-11 12:00:54 +01:00
snipe
138ec33555 Merge pull request #13733 from marcusmoore/bug/sc-23453
Fixed notification logic to ensure check in and out emails are delivered
2023-10-11 12:00:37 +01:00
snipe
e99d307350 Merge pull request #13734 from marcusmoore/bug/sc-23661
Fixed the storing of group permissions when creating via API
2023-10-11 03:46:49 +01:00
Marcus Moore
417f9c21e4 Fix the storing of group permissions when creating via API 2023-10-10 17:51:29 -07:00
Marcus Moore
43b9e6401c Formatting 2023-10-10 15:18:55 -07:00
Marcus Moore
dae9e6d096 Improve try catch blocks 2023-10-10 15:18:37 -07:00
Marcus Moore
9ef598d07b Apply changes to exception handling for check outs to check ins 2023-10-10 15:16:12 -07:00
Marcus Moore
2a29566458 Catch all ClientExceptions on check out 2023-10-10 15:15:02 -07:00
Marcus Moore
ab3a3de59b Fire webhook notification after sending emails 2023-10-10 15:13:46 -07:00
Marcus Moore
47a77eabf2 Avoid logging error messages for webhook request failures 2023-10-10 15:06:08 -07:00
snipe
758d3aadb4 Added trim to import values
Signed-off-by: snipe <snipe@snipe.net>
2023-10-10 11:52:35 +01:00
snipe
1f0dadb58d Merge remote-tracking branch 'origin/develop' 2023-10-09 16:43:24 +01:00
snipe
f685ba01b6 Reversed order of find
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:43:14 +01:00
snipe
e3591dc756 Merge pull request #13728 from snipe/fixes/13725_for_dev
Fixes qty remaining requirements for component checkout via API
2023-10-09 16:34:40 +01:00
snipe
0fbe63d0cf Add @Singrity as a contributor 2023-10-09 16:33:00 +01:00
snipe
b9dc7f88d0 Fix qty requirements for Components API checkout
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:32:30 +01:00
snipe
f6527e0b42 Merge pull request #13727 from snipe/security/huntr_43206801-9862-48da-b379-e55e341d78bf
Set resend acceptance to POST
2023-10-09 16:15:27 +01:00
snipe
866bbe5e11 Removed extra debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:15:14 +01:00
snipe
6d55d78280 Set resend acceptance to POST
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:13:41 +01:00
snipe
2789f67bb4 Merge remote-tracking branch 'origin/develop' 2023-10-09 15:19:29 +01:00
snipe
7a0d3f788f Merge pull request #13726 from snipe/fixes/tighter_checkin_on_log_match
Added tighter controls for matching log ID and item_id
2023-10-09 15:19:10 +01:00
snipe
e5f5802235 Added tighter controls for matching log ID and item_id
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 15:17:03 +01:00
snipe
a1f3a5c624 Merge remote-tracking branch 'origin/develop' 2023-10-07 11:34:49 +01:00
snipe
d2dc3253ab Cast the request limit to intval before we try to abs()
Signed-off-by: snipe <snipe@snipe.net>
2023-10-07 11:34:37 +01:00
snipe
d9a1dab827 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2023-10-06 20:17:59 +01:00
snipe
5277f7cc5c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 20:14:44 +01:00
snipe
25a5507d9d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 20:07:35 +01:00
snipe
a95fae0e94 Merge remote-tracking branch 'origin/develop' 2023-10-06 20:00:12 +01:00
snipe
890efb18d8 Merge pull request #13720 from snipe/security/huntr_dev_d6ed5ac1-2ad6-45fd-9492-979820bf60c8
Fixed missing escaping asset history old/new values
2023-10-06 19:59:42 +01:00
snipe
eea2eabaee Escaping asset history old/new values
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 19:45:23 +01:00
snipe
9596826259 Merge branch 'master' of https://github.com/snipe/snipe-it 2023-10-06 19:04:44 +01:00
snipe
cd3b4754e8 Merge pull request #13704 from Godmartinz/feature/sc-23571_v2
Added a check-in button on components tab of Asset view
2023-10-05 14:28:37 +01:00
snipe
1dab4b59e9 Merge pull request #13693 from Godmartinz/bug/sc-9955
added proper margin-top to sidebar menu on bigger resolutions
2023-10-05 14:27:25 +01:00
snipe
05dd2b4008 Merge pull request #13709 from spencerrlongg/eol-migration
Speed up EOL Migration
2023-10-05 14:26:47 +01:00
snipe
b809625856 Merge pull request #13713 from snipe/security/13685
[Snyk] Security upgrade css-loader from 4.3.0 to 5.0.0 #13685
2023-10-05 14:13:35 +01:00
snipe
8d921359ca [Snyk] Security upgrade css-loader from 4.3.0 to 5.0.0 #13685
Signed-off-by: snipe <snipe@snipe.net>
2023-10-05 14:12:36 +01:00
spencerrlongg
c07c0c0f74 cleanup 2023-10-04 16:55:35 -05:00
spencerrlongg
cc82e86eeb one more check 2023-10-04 16:54:56 -05:00
spencerrlongg
8c9961aba8 refactor 2023-10-04 15:40:42 -05:00
spencerrlongg
46af40bd02 ????? 2023-10-04 15:20:16 -05:00
spencerrlongg
6cda9056b8 oops 2023-10-04 14:56:18 -05:00
spencerrlongg
101bd9c404 kill transaction, try update array 2023-10-04 14:47:14 -05:00
spencerrlongg
ad6b502005 comments 2023-10-04 14:37:18 -05:00
spencerrlongg
cb10c7af27 oops 2023-10-04 14:33:35 -05:00
spencerrlongg
99d409c0a5 transaction 2023-10-04 14:32:28 -05:00
Godfrey M
37c1d6fc04 removed unnecessary changes 2023-10-03 12:45:13 -07:00
Brady Wetherington
7a5714cc85 Merge branch 'develop' into snipeit_v7_laravel10 2023-10-03 20:37:17 +01:00
Godfrey M
c69958d95d removed dead space 2023-10-03 12:32:24 -07:00
Godfrey M
92776adb93 remove unnecessary changes 2023-10-03 12:31:58 -07:00
Godfrey M
dee36fc294 adds component checkin to asset tab 2023-10-03 12:30:08 -07:00
snipe
a2773aa895 Merge pull request #13696 from marcusmoore/bug/sc-23796
Fixed potential call to a member function toArray() on null
2023-10-03 11:01:40 +01:00
Marcus Moore
e82fec2a5f Grammar fix 2023-10-02 16:19:20 -07:00
Marcus Moore
db4c86a4f4 Filter null field options before attempting to process them 2023-10-02 16:14:20 -07:00
snipe
8384786e8b Merge pull request #13695 from marcusmoore/bug/sc-23795-to-master
Log non-compliant barcode error as debug message
2023-10-02 22:22:26 +01:00
Marcus Moore
a5fd218c23 Log non-compliant barcode error as debug message 2023-10-02 14:19:52 -07:00
snipe
d2435c6f86 Merge remote-tracking branch 'origin/develop' 2023-10-02 22:14:08 +01:00
snipe
1abcc8b802 Merge pull request #13694 from marcusmoore/bug/sc-23795
Logs non-compliant barcode error as debug message
2023-10-02 22:13:19 +01:00
Marcus Moore
724c054838 Log non-compliant barcode error as debug message 2023-10-02 12:06:24 -07:00
Godfrey M
1e8f90bcf0 gives proper margin-top to sidebar menu on bigger resolutions 2023-10-02 11:46:08 -07:00
snipe
129e9b90dc Merge pull request #13585 from spencerrlongg/eol_2
Standardize Asset EOL Date
2023-10-02 16:09:22 +01:00
Marcus Moore
eb2edb7475 Add more default values for label preview 2023-09-28 13:40:51 -07:00
Marcus Moore
ed77e8768c Re-order options 2023-09-28 12:33:27 -07:00
Marcus Moore
3aa256ec02 Ensure non-checked out items can be displayed 2023-09-28 12:33:20 -07:00
Marcus Moore
36638feac4 Add assigned to as option 2023-09-28 11:37:02 -07:00
Marcus Moore
4675f02349 Format assigned to field 2023-09-28 11:35:20 -07:00
Marcus Moore
a47e36c1e5 Add custom fields as options 2023-09-27 16:51:53 -07:00
Marcus Moore
a4a25ab9d0 Remove a couple fields 2023-09-27 16:35:44 -07:00
Marcus Moore
518ae28a37 Improve option display values 2023-09-27 16:20:26 -07:00
Marcus Moore
74a891afbb WIP: Render select box for field options in label engine 2023-09-27 15:58:01 -07:00
spencerrlongg
4660a2e5b7 rm more duplicate 2023-09-20 14:37:32 -05:00
spencerrlongg
a9123754f5 remove unnecessary code 2023-09-20 14:34:42 -05:00
spencerrlongg
cbef531811 parse purchase date even though it's cast 2023-09-20 14:26:49 -05:00
spencerrlongg
7dab59c98d fix for no eol, fix for optional in view 2023-09-20 14:17:30 -05:00
spencerrlongg
c48a47936c add validation back in 2023-09-20 14:00:59 -05:00
spencerrlongg
2ace24b176 csv header 2023-09-19 19:38:59 -05:00
spencerrlongg
d65d1930e4 asset models 2023-09-19 19:24:53 -05:00
spencerrlongg
2d59517c35 rm !empty 2023-09-19 18:40:23 -05:00
spencerrlongg
3cb906a05f pushing to switch branches and test 2023-09-19 18:23:06 -05:00
spencerrlongg
6b4f8f1813 rm duplicate fillable 2023-09-19 18:07:15 -05:00
spencerrlongg
929e107a20 rm byod from casts 2023-09-19 18:04:16 -05:00
spencerrlongg
1cfd7673e0 change Importer.php back 2023-09-14 16:11:24 -05:00
spencerrlongg
afe9d43139 chunk by id? 2023-09-14 16:00:35 -05:00
spencerrlongg
aac627592b move logic inside of try 2023-09-14 15:43:00 -05:00
spencerrlongg
f35f9f922e safety & catch & log 2023-09-14 15:32:17 -05:00
spencerrlongg
44441ec703 up chunk size 2023-09-14 14:25:02 -05:00
spencerrlongg
7c9a4ac161 immutable 2023-09-13 18:15:13 -05:00
spencerrlongg
64a9859efd cleanup 2023-09-13 17:58:33 -05:00
spencerrlongg
ef64843d2f chunk migration, needs to be tested 2023-09-13 17:41:45 -05:00
spencerrlongg
0368b9df43 viola 2023-09-13 17:16:17 -05:00
spencerrlongg
951521dc81 push 2023-09-13 15:20:55 -05:00
spencerrlongg
70a251de55 fix up gui edit 2023-09-13 13:51:14 -05:00
spencerrlongg
e21a8b6717 fix up this file 2023-09-12 18:11:36 -05:00
spencerrlongg
7047869367 cleanup 2023-09-12 18:03:13 -05:00
spencerrlongg
53d4fd1d0b purchase_date 2023-09-12 18:01:33 -05:00
Brady Wetherington
c77f5eee8c Merge branch 'develop' into snipeit_v7_laravel10 2023-09-12 12:04:42 +01:00
spencerrlongg
ccf3fe40ec rm additional row 2023-09-11 17:35:13 -05:00
spencerrlongg
3a63bcab73 temporarily show on its own line 2023-09-11 17:35:13 -05:00
spencerrlongg
30dade1fba cleanup 2023-09-11 17:35:12 -05:00
spencerrlongg
97d6a34b8c some changes to sample csv 2023-09-11 17:34:05 -05:00
spencerrlongg
431af5f530 this works!!!! 2023-09-11 17:34:05 -05:00
spencerrlongg
3e3bb594ea some import stuff 2023-09-11 17:34:04 -05:00
spencerrlongg
fb001caee4 fix conflicts 2023-09-11 17:33:31 -05:00
spencerrlongg
b73f20cadf immutable when things are looping, just in case 2023-09-11 17:22:46 -05:00
spencerrlongg
3fb62874f0 quick push to check something else 2023-09-11 17:22:46 -05:00
spencerrlongg
c66804bcee a little cleanup 2023-09-11 17:22:46 -05:00
spencerrlongg
e1af69f6ae typo 2023-09-11 17:22:46 -05:00
slong753
27bea2abb9 just some more wip on the importer 2023-09-11 17:21:51 -05:00
slong753
1b18cd7fe6 added asset_eol_date and explicit to factory 2023-09-11 17:21:51 -05:00
slong753
78c400e948 fix conflicts 2023-09-11 17:21:50 -05:00
slong753
75d7e3e1a0 fix conflicts 2023-09-11 17:20:21 -05:00
slong753
5948679a4a fix purchase date update 2023-09-11 17:17:59 -05:00
slong753
774f21bb7f some more cleanup 2023-09-11 17:17:59 -05:00
slong753
20367eecc9 fix conflicts 2023-09-11 17:17:59 -05:00
slong753
cda9dd57dd asset update logic 2023-09-11 17:15:25 -05:00
slong753
41b65bd9a2 small changes 2023-09-11 17:15:25 -05:00
slong753
17a83129b9 this all needs to be tested tediously 2023-09-11 17:15:25 -05:00
slong753
0e60184e95 i think this migration makes sense 2023-09-11 17:15:25 -05:00
slong753
1ea0de8bca prevent injection, fix asset update 2023-09-11 17:15:25 -05:00
slong753
17ccfa9ada resolve some conflicts 2023-09-11 17:15:24 -05:00
slong753
c1daabef08 progress 2023-09-11 17:10:41 -05:00
slong753
dc39d2c567 notes 2023-09-11 17:10:41 -05:00
slong753
321e7c93ec carbon thing 2023-09-11 16:51:40 -05:00
slong753
8456b3ec0c wip stuff 2023-09-11 16:51:40 -05:00
Godfrey M
e73b16846e adds an option to bulk edit actual location for bulk edit and fixes update issue 2023-09-11 11:21:56 -07:00
Brady Wetherington
aacfed40f8 Switch back to our fork of laravel-scim-server 2023-09-07 20:16:03 +01:00
Brady Wetherington
ec1059e74c Merge branch 'develop' into snipeit_v7_laravel10 2023-09-07 20:11:41 +01:00
akemidx
45dbc02868 save commit 2023-09-05 15:01:20 -04:00
Brady Wetherington
3500217f94 Merge branch 'develop' into snipeit_v7_laravel10 2023-08-31 13:07:06 +01:00
akemidx
f1cc2c8d8b submitting form after capturing/formatting fixes 2023-08-29 16:55:21 -04:00
akemidx
734af87f2f template structuring 2023-08-28 19:26:31 -04:00
Brady Wetherington
427f8b1522 Merge branch 'develop' into snipeit_v7_laravel10
Upgraded composer due to lockfile conflicts
2023-08-28 16:04:21 +01:00
akemidx
78d589fe78 beginning of migrations 2023-08-24 14:32:37 -04:00
akemidx
c9fcc906fb create saved reports migration 2023-08-23 19:32:19 -04:00
akemidx
f9fc2a44cd alphatyping for layout 2023-08-22 15:19:12 -04:00
Brady Wetherington
8b52bad16f Merge branch 'develop' into snipeit_v7_laravel10 2023-08-15 21:25:16 +01:00
akemidx
0bdd8a5917 fixing key names 2023-08-02 16:40:38 -04:00
Brady Wetherington
daed0b60bc Merge branch 'develop' into snipeit_v7_laravel10 2023-07-31 19:40:56 +01:00
Brady Wetherington
4654f7aa37 Porting Snipe-IT v7 to Laravel v10 2023-07-31 14:07:12 +01:00
Brady Wetherington
70e87dad1c Merge branch 'develop' into snipeit_v7 2023-07-27 16:21:31 +01:00
akemidx
e35dd2daa1 asset_eol_date stuff 2023-07-26 17:45:18 -04:00
akemidx
f71b69a739 adding eol fields 2023-07-26 17:31:06 -04:00
Brady Wetherington
ba8d8a6f05 Merge branch 'develop' into snipeit_v7 2023-07-20 17:16:04 +01:00
Brady Wetherington
605d267fe8 Merge branch 'develop' into snipeit_v7 2023-07-19 11:47:51 +01:00
akemidx
499a3debcd this WILL break. i'm back to site not found which is something missing. otherwise the columns are either blank or another value like expected checkin i was using to test a bit 2023-07-11 14:08:55 -04:00
Brady Wetherington
8f2a17585e Merge branch 'develop' into snipeit_v7
Had to do a lot of conflict work here, so this could get ugly :(
2023-07-10 16:53:35 +01:00
Brady Wetherington
51424d01a9 Merge branch 'develop' into snipeit_v7 2023-06-28 14:25:33 +01:00
Brady Wetherington
f5ff9b2208 Merge branch 'develop' into snipeit_v7 - 2023-06-12 2023-06-12 16:56:23 +01:00
ak-piracha
457f4c410a add check for default consumable qty 2023-05-21 23:11:03 +09:30
ak-piracha
bb013d5c3c Bulk Consumable Checkout 2023-05-21 22:49:00 +09:30
Brady Wetherington
a9c7dbd17a Shift PHP version requiremeents for Snipe-IT v7 to be php 8.0-8.2 2023-05-17 17:51:02 -07:00
Brady Wetherington
09fdc946a0 Merge branch 'develop' into snipeit_v7
Had to do some asset rebuilds, and a composer update
2023-05-17 17:37:10 -07:00
snipe
31f1bce16b Merge pull request #12958 from uberbrady/snipeit_v7_merge_develop_05_01_2022
Snipeit v7 merge develop 05 01 2022
2023-05-03 10:40:18 -07:00
Brady Wetherington
2f3ddaec20 Merge branch 'develop' into snipeit_v7 2023-05-01 18:09:12 -07:00
snipe
7cd37e6e95 Merge pull request #12957 from uberbrady/fix_webpack_for_v7
Fix webpack for v7
2023-05-01 18:08:46 -07:00
Brady Wetherington
a938009074 Rebuilt assets with new Node and node_modules and package.json 2023-05-01 18:06:51 -07:00
Brady Wetherington
21d08ff742 Whoops! Forgot to commit this before 2023-05-01 18:05:06 -07:00
snipe
da8b41b12a Merge pull request #12956 from uberbrady/upgrade_node_and_packages_for_v7
Updated Node version, and various packages to more recent
2023-05-01 17:33:20 -07:00
Brady Wetherington
6e031727fa Updated Node version, and various packages to more recent 2023-05-01 17:05:10 -07:00
Brady Wetherington
381890b578 Merge branch 'develop' into laravel_v9 2023-04-27 13:56:04 -07:00
Brady Wetherington
71fa6d765f Update to Latest Livewire files 2023-04-18 11:05:35 -07:00
Brady Wetherington
9793130f6c Merge branch 'develop' into laravel_v9 2023-04-18 11:01:00 -07:00
Brady Wetherington
aadfa9aa9c Back out Laravel Vite stuff - we're so far away from that right now 2023-02-21 19:54:14 -08:00
Brady Wetherington
645bba96cd WIP: First stabs at getting Laravel Vite to work; no luck so far :(
Probably going to back out all the 'vite' stuff anyways :/
2023-02-21 19:35:37 -08:00
10145 changed files with 506434 additions and 431676 deletions

File diff suppressed because it is too large Load Diff

176
.env.dev.docker Normal file
View File

@@ -0,0 +1,176 @@
# --------------------------------------------
# REQUIRED: DB SETUP
# --------------------------------------------
# https://mariadb.com/kb/en/mariadb-server-docker-official-image-environment-variables/
MYSQL_DATABASE=snipeit
MYSQL_USER=snipeit
MYSQL_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=develop
APP_DEBUG=true
# please regenerate the APP_KEY value by calling `docker-compose run --rm snipeit bash` and then `php artisan key:generate --show` and then copy paste the value here
APP_KEY=base64:3ilviXqB9u6DX1NRcyWGJ+sjySF+H18CPDGb3+IVwMQ=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE=en-US
MAX_RESULTS=500
# --------------------------------------------
# REQUIRED: UPLOADED FILE STORAGE SETTINGS
# --------------------------------------------
PRIVATE_FILESYSTEM_DISK=local
PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=true
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
# --------------------------------------------
DB_SSL=false
DB_SSL_IS_PAAS=false
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: BACKUP SETTINGS
# --------------------------------------------
MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: CHANGE PHP UPLOAD LIMITS (UNCOMMENT WHEN NEEDING TO BE CHANGED)
# --------------------------------------------
#PHP_UPLOAD_LIMIT=10
#PHP_POST_MAX_SIZE=10
#PHP_UPLOAD_MAX_FILESIZE=10
#PHP_MEMORY_LIMIT=10
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
COOKIE_NAME=snipeit_session
COOKIE_DOMAIN=null
SECURE_COOKIES=false
API_TOKEN_EXPIRATION_YEARS=40
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
# --------------------------------------------
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
CORS_ALLOWED_ORIGINS=null
ENABLE_HSTS=false
# --------------------------------------------
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
CACHE_PREFIX=snipeit
# --------------------------------------------
# OPTIONAL: REDIS SETTINGS
# --------------------------------------------
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
# --------------------------------------------
# OPTIONAL: MEMCACHED SETTINGS
# --------------------------------------------
MEMCACHED_HOST=null
MEMCACHED_PORT=null
# --------------------------------------------
# OPTIONAL: PUBLIC S3 Settings
# --------------------------------------------
PUBLIC_AWS_SECRET_ACCESS_KEY=null
PUBLIC_AWS_ACCESS_KEY_ID=null
PUBLIC_AWS_DEFAULT_REGION=null
PUBLIC_AWS_BUCKET=null
PUBLIC_AWS_URL=null
PUBLIC_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: PRIVATE S3 Settings
# --------------------------------------------
PRIVATE_AWS_ACCESS_KEY_ID=null
PRIVATE_AWS_SECRET_ACCESS_KEY=null
PRIVATE_AWS_DEFAULT_REGION=null
PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: AWS Settings
# --------------------------------------------
AWS_ACCESS_KEY_ID=null
AWS_SECRET_ACCESS_KEY=null
AWS_DEFAULT_REGION=null
# --------------------------------------------
# OPTIONAL: LOGIN THROTTLING
# --------------------------------------------
LOGIN_MAX_ATTEMPTS=5
LOGIN_LOCKOUT_DURATION=60
RESET_PASSWORD_LINK_EXPIRES=900
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=single
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
APP_FORCE_TLS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=600

View File

@@ -1,20 +1,20 @@
# --------------------------------------------
# REQUIRED: DB SETUP
# REQUIRED: DOCKER SPECIFIC SETTINGS
# --------------------------------------------
MYSQL_DATABASE=snipeit
MYSQL_USER=snipeit
MYSQL_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
APP_VERSION=
APP_PORT=8000
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=develop
APP_ENV=production
APP_DEBUG=false
# please regenerate the APP_KEY value by calling `docker-compose run --rm snipeit bash` and then `php artisan key:generate --show` and then copy paste the value here
# Please regenerate the APP_KEY value by calling `docker compose run --rm app php artisan key:generate --show`. Copy paste the value here
APP_KEY=base64:3ilviXqB9u6DX1NRcyWGJ+sjySF+H18CPDGb3+IVwMQ=
APP_URL=http://localhost:8000
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TZ identifier
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE=en-US
MAX_RESULTS=500
# --------------------------------------------
@@ -27,12 +27,16 @@ PUBLIC_FILESYSTEM_DISK=local_public
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_HOST=db
DB_SOCKET=null
DB_PORT='3306'
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=true
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
@@ -45,29 +49,35 @@ DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_TLS_VERIFY_PEER=true
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
# --------------------------------------------
# REQUIRED: DATA PROTECTION
# --------------------------------------------
ALLOW_BACKUP_DELETE=false
ALLOW_DATA_PURGE=false
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: BACKUP SETTINGS
# --------------------------------------------
@@ -75,6 +85,14 @@ MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: CHANGE PHP UPLOAD LIMITS (UNCOMMENT WHEN NEEDING TO BE CHANGED)
# --------------------------------------------
#PHP_UPLOAD_LIMIT=10
#PHP_POST_MAX_SIZE=10
#PHP_UPLOAD_MAX_FILESIZE=10
#PHP_MEMORY_LIMIT=10
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
@@ -90,7 +108,7 @@ API_TOKEN_EXPIRATION_YEARS=40
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
# --------------------------------------------
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1,172.16.0.0/12
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
@@ -108,7 +126,7 @@ CACHE_PREFIX=snipeit
# --------------------------------------------
# OPTIONAL: REDIS SETTINGS
# --------------------------------------------
REDIS_HOST=redis
REDIS_HOST=null
REDIS_PASSWORD=null
REDIS_PORT=6379
@@ -151,6 +169,7 @@ AWS_DEFAULT_REGION=null
LOGIN_MAX_ATTEMPTS=5
LOGIN_LOCKOUT_DURATION=60
RESET_PASSWORD_LINK_EXPIRES=900
INVITE_PASSWORD_LINK_EXPIRES=1500
# --------------------------------------------
# OPTIONAL: MISC
@@ -159,6 +178,7 @@ LOG_CHANNEL=stderr
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
APP_FORCE_TLS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=600

View File

@@ -6,7 +6,7 @@ APP_DEBUG=false
APP_KEY=base64:hTUIUh9CP6dQx+6EjSlfWTgbaMaaRvlpEwk45vp+xmk=
APP_URL=http://127.0.0.1:8000
APP_TIMEZONE='US/Eastern'
APP_LOCALE=en
APP_LOCALE=en-US
APP_LOCKED=false
MAX_RESULTS=200
@@ -36,11 +36,12 @@ DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER="log"
MAIL_MAILER="log"
# --------------------------------------------

View File

@@ -6,7 +6,7 @@ APP_DEBUG=false
APP_KEY=ChangeMe
APP_URL=null
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE='en-US'
MAX_RESULTS=500
# --------------------------------------------
@@ -24,14 +24,18 @@ PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_SOCKET=null
DB_PORT=3306
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=false
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_SANITIZE_BY_DEFAULT=false
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
@@ -42,21 +46,26 @@ DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_MAILER=smtp
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=YOURUSERNAME
MAIL_PASSWORD=YOURPASSWORD
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
MAIL_TLS_VERIFY_PEER=true
# MAIL_ENCRYPTION is no longer supported. SymfonyMailer will use tls if it's
# advertised, and won't if it's not. If you want to use your mail server's IP but it's failing
# because of certificate errors, set MAIL_TLS_VERIFY_PEER-true
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
@@ -73,6 +82,12 @@ MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
ALLOW_BACKUP_DELETE=false
ALLOW_DATA_PURGE=false
ALL_BACKUP_KEEP_DAYS=7
DAILY_BACKUP_KEEP_DAYS=16
WEEKLY_BACKUP_KEEP_WEEKS=8
MONTHLY_BACKUP_KEEP_MONTHS=4
YEARLY_BACKUP_KEEP_YEARS=2
BACKUP_PURGE_OLDEST_AT_MEGS=5000
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
@@ -82,10 +97,12 @@ SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
COOKIE_NAME=snipeit_session
PASSPORT_COOKIE_NAME='snipeit_passport_token'
COOKIE_DOMAIN=null
SECURE_COOKIES=false
API_TOKEN_EXPIRATION_YEARS=15
BS_TABLE_STORAGE=cookieStorage
BS_TABLE_STORAGE=localStorage
BS_TABLE_DEEPLINK=true
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
@@ -94,6 +111,7 @@ APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
ADDITIONAL_CSP_URLS=null
CORS_ALLOWED_ORIGINS=null
ENABLE_HSTS=false
@@ -157,11 +175,13 @@ LOGIN_AUTOCOMPLETE=false
RESET_PASSWORD_LINK_EXPIRES=15
PASSWORD_CONFIRM_TIMEOUT=10800
PASSWORD_RESET_MAX_ATTEMPTS_PER_MIN=50
INVITE_PASSWORD_LINK_EXPIRES=1500
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=single
LOG_DEPRECATIONS=false
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
@@ -173,9 +193,16 @@ LDAP_TIME_LIM=600
IMPORT_TIME_LIMIT=600
IMPORT_MEMORY_LIMIT=500M
REPORT_TIME_LIMIT=12000
REQUIRE_SAML=false
API_THROTTLE_PER_MINUTE=120
CSV_ESCAPE_FORMULAS=true
LIVEWIRE_URL_PREFIX=null
# --------------------------------------------
# OPTIONAL: SAML SETTINGS
# --------------------------------------------
REQUIRE_SAML=false
SAML_KEY_SIZE=2048
# --------------------------------------------
# OPTIONAL: HASHING
@@ -190,4 +217,4 @@ ARGON_TIME=2
# OPTIONAL: SCIM
# --------------------------------------------
SCIM_TRACE=false
SCIM_STANDARDS_COMPLIANCE=false
SCIM_STANDARDS_COMPLIANCE=false

View File

@@ -6,7 +6,7 @@ APP_DEBUG=false
APP_KEY='base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU='
APP_URL='http://localhost:8000'
APP_TIMEZONE='US/Pacific'
APP_LOCALE=en
APP_LOCALE='en-US'
FILESYSTEM_DISK=local
# --------------------------------------------
@@ -22,7 +22,7 @@ DB_PASSWORD=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=log
MAIL_MAILER=log
# --------------------------------------------

View File

@@ -6,7 +6,7 @@ APP_DEBUG=true
APP_KEY=base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE='en-US'
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS

View File

@@ -18,6 +18,6 @@ APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo=
LOGIN_MAX_ATTEMPTS=1000000
LOGIN_LOCKOUT_DURATION=100000000
MAIL_DRIVER=log
MAIL_MAILER=log
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT

View File

@@ -15,6 +15,6 @@ APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo=
LOGIN_MAX_ATTEMPTS=1000000
LOGIN_LOCKOUT_DURATION=100000000
MAIL_DRIVER=log
MAIL_MAILER=log
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT

View File

@@ -1,38 +0,0 @@
#### Expected Behavior (or desired behavior if a feature request)
(what you expect to happen goes here)
-----
#### Actual Behavior
(what actually happens goes here)
-----
#### Please confirm you have done the following before posting your bug report:
- [ ] I have enabled debug mode
- [ ] I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
-----
#### Provide answers to these questions:
- Is this a fresh install or an upgrade?
- Version of Snipe-IT you're running
- Version of PHP you're running
- Version of MySQL/MariaDB you're running
- What OS and web server you're running Snipe-IT on
- What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
- WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
- What specific Snipe-IT page you're on, and what specific element you're interacting with to trigger the error
- If a stacktrace is provided in the error, include that too.
- Any errors that appear in your browser's error console.
- Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
- Include any additional information you can find in `storage/logs` and your webserver's logs.
- Include what you've done so far in the installation, and if you got any error messages along the way.
- Indicate whether or not you've manually edited any data directly in the database
Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.
https://snipe-it.readme.io/docs/getting-help

137
.github/ISSUE_TEMPLATE/Bug-Report.yml vendored Normal file
View File

@@ -0,0 +1,137 @@
name: Bug Report
description: File a bug report.
title: "[Bug]: "
projects: ["grokability/snipe-it"]
type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Most issues are documented in the [Snipe-IT repository's issues](https://github.com/grokability/snipe-it/issues) or in the official [Common Issues section of the Documentation](https://snipe-it.readme.io/docs/common-issues#/) and are due to the following:
- `.env` misconfiguration
- [Server Permissions](https://snipe-it.readme.io/docs/debugging-permissions#/)
- [Database Migrations](https://snipe-it.readme.io/docs/database-issues#run-migrations)
Please make sure you've checked these resources before submitting a new issue. If you find an existing issue, please add your context to it instead of opening a new issue. If your issue is more of a question, consider [opening a new discussion](https://github.com/grokability/snipe-it/discussions) or [pop by our Discord](https://discord.gg/yZFtShAcKk) instead of creating an issue.
**Please write your bug report in English.** You can use tools like [DeepL](https://www.deepl.com) or [Google Translate](https://translate.google.com/) to translate if necessary.
**If you choose to upload screenshots or videos (which we always encourage), please make sure they do not contain any sensitive information.**
- type: input
id: version
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)
validations:
required: true
- type: input
id: db-version
attributes:
label: MySQL/MariaDB version
description: What database are you using, and what version?
placeholder: ex. MySQL 5.7
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: How did you install Snipe-IT?
options:
- Git install
- Manual install (downloading zip/tar.gz)
- Docker
- install.sh
- Hosted by Grokability
- Other
- Not sure
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see! (Be nice!)
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- 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:
label: Application log output
description: Please copy and paste any relevant log output from `storage/logs/laravel.log`. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: textarea
id: browser-logs
attributes:
label: Browser console output
description: Please copy and paste any relevant log output from your browser console. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: common-issues
attributes:
label: Common Issues
description: Please make sure you have done the following before submitting your issue.
options:
- label: I have searched this repo for existing issues related to my issue (including closed issues)
required: true
- label: My APP_URL is set correctly in my .env file (including http or https and no trailing slash)
required: true
- label: I have searched the official Snipe-IT documentation and have checked the Common Issues documentation (where applicable)
required: true
- label: I have run database migrations (where applicable).
required: true
- label: I have attached screenshots and/or videos of the issue (where applicable)
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/grokability/snipe-it/blob/master/CODE_OF_CONDUCT.md).
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -0,0 +1,38 @@
name: Feature Request
description: Request a new feature.
title: "[Feature]: "
projects: ["grokability/snipe-it"]
type: feature
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request! Please make sure to search the existing issues in this repository to see if your feature has already been requested, and feel free to add your context to any existing requests.
**Please write your issue in English.** You can use tools like [DeepL](https://www.deepl.com) or [Google Translate](https://translate.google.com/) to translate if necessary.
**If you choose to upload screenshots or videos (which we always encourage), please make sure they do not contain any sensitive information.**
- type: input
id: version
attributes:
label: Snipe-IT Version
description: What version of Snipe-IT are you currently running? You can find the version number in the footer of any page in Snipe-IT.
placeholder: ex. v8.3.1 - build 19577 (master)
validations:
required: true
- type: textarea
id: feature-description
attributes:
label: How can we help?
description: Let us know in detail what feature you'd like to see added. While we can't promise to implement every feature request, we do read every one and take them into consideration when planning future releases.
placeholder: Tell us what you'd like to see in Snipe-IT! (Be nice!)
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/grokability/snipe-it/blob/master/CODE_OF_CONDUCT.md).
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -1,129 +0,0 @@
name: Bug Report
description: Create a report to help us improve
body:
- type: checkboxes
attributes:
label: Debug mode
description: Please confirm you have done the following before posting your bug report
options:
- label: I have enabled debug mode
required: true
- label: I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: Reproduction steps
description: Steps to reproduce the behavior.
value: |
1.
2.
3.
...
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Screenshots
description: 'If applicable, add screenshots to help explain your problem.'
- type: markdown
attributes:
value: "### Server"
- type: input
attributes:
label: Snipe-IT Version
validations:
required: true
- type: input
id: server_operatingSystem
attributes:
label: Operating System
description: 'e.g. Ubuntu, Windows'
validations:
required: true
- type: input
attributes:
label: Web Server
description: 'e.g. Apache, IIS'
validations:
required: true
- type: input
attributes:
label: PHP Version
validations:
required: true
- type: markdown
attributes:
value: "### Desktop"
- type: input
id: desktop_operatingSystem
attributes:
label: Operating System
description: 'e.g. Ubuntu, Windows'
- type: input
id: desktop_browser
attributes:
label: Browser
description: 'e.g. Google Chrome, Safari'
- type: input
id: desktop_version
attributes:
label: Version
description: 'e.g. 93'
- type: markdown
attributes:
value: "### Mobile"
- type: input
attributes:
label: Device
description: 'e.g. iPhone 6, Pixel 4a'
- type: input
id: mobile_operatingSystem
attributes:
label: Operating System
description: 'e.g. iOS 8.1, Android 9'
- type: input
id: mobile_browser
attributes:
label: Browser
description: 'e.g. Google Chrome, Safari'
- type: input
id: mobile_version
attributes:
label: Version
description: 'e.g. 93'
- type: textarea
attributes:
label: Error messages
description: |
WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
If a stacktrace is provided in the error, include that too.
Any errors that appear in your browser's error console.
Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
Include any additional information you can find in `storage/logs` and your webserver's logs.
Include the output from `php -m` (this should display what modules you have enabled.)
render: shell
- type: textarea
attributes:
label: Additional context
description: |
Is this a fresh install or an upgrade?
What OS and web server you're running Snipe-IT on
What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
Include what you've done so far in the installation, and if you got any error messages along the way.
Indicate whether or not you've manually edited any data directly in the database
Add any other context about the problem here.
- type: markdown
attributes:
value: Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.

View File

@@ -1 +0,0 @@
blank_issues_enabled: false

View File

@@ -1,25 +0,0 @@
name: Feature Request
description: Suggest an idea for this project
title: "[Feature Request]: "
labels: ["feature request"]
body:
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. The more information you can provide about your use-case, the more liklely we are to consider your feature.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.

View File

@@ -1,40 +0,0 @@
# Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context, providing screenshots where practical. List any dependencies that are required for this change.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [ ] Test A
- [ ] Test B
**Test Configuration**:
* PHP version:
* MySQL version
* Webserver version
* OS version
# Checklist:
- [ ] I have read the Contributing documentation available here: https://snipe-it.readme.io/docs/contributing-overview
- [ ] I have formatted this PR according to the project guidelines: https://snipe-it.readme.io/docs/contributing-overview#pull-request-guidelines
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

43
.github/stale.yml vendored
View File

@@ -1,43 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- :woman_technologist: ready for dev
- :moneybag: bounty
- :hand: bug
- "🔐 security"
- "👩‍💻 ready for dev"
- "💰 bounty"
- "✋ bug"
exemptMilestones: true
# Label to use when marking an issue as stale
staleLabel: stale
only: issues
# Comment to post when removing the stale label.
unmarkComment: >
Okay, it looks like this issue or feature request might still be important. We'll re-open
it for now. Thank you for letting us know!
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Is this still relevant? We haven't heard from anyone in a bit. If so,
please comment with any updates or additional detail.
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Don't
take it personally, we just need to keep a handle on things. Thank you
for your contributions!
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been automatically closed because it has not had
recent activity. If you believe this is still an issue, please confirm that
this issue is still happening in the most recent version of Snipe-IT and reply
to this thread to re-open it.

View File

@@ -1 +0,0 @@
memory_limit= 2048M

View File

@@ -1,7 +0,0 @@
# Configuration for weekly-digest - https://github.com/apps/weekly-digest
publishDay: sun
canPublishIssues: true
canPublishPullRequests: true
canPublishContributors: true
canPublishStargazers: true
canPublishCommits: true

View File

@@ -26,14 +26,14 @@ jobs:
language: [ 'javascript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

View File

@@ -10,10 +10,10 @@ name: Codacy Security Scan
on:
push:
branches: [ master ]
branches: [ develop ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
branches: [ develop ]
schedule:
- cron: '36 23 * * 3'
@@ -22,21 +22,21 @@ permissions:
jobs:
codacy-security-scan:
# Ensure schedule job never runs on forked repos. It's only executed for 'snipe/snipe-it'
# Ensure schedule job never runs on forked repos. It's only executed for 'grokability/snipe-it'
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
if: (github.repository == 'snipe/snipe-it') || ((github.repository != 'snipe/snipe-it') && (github.event_name != 'schedule'))
if: (github.repository == 'grokability/snipe-it') || ((github.repository != 'grokability/snipe-it') && (github.event_name != 'schedule'))
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@v4.3.0
uses: codacy/codacy-analysis-cli-action@v4.4.7
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations
@@ -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@v2
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif

View File

@@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Crowdin push
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: false

View File

@@ -20,8 +20,8 @@ permissions:
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
if: github.repository == 'snipe/snipe-it'
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
@@ -32,7 +32,7 @@ jobs:
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=tag,suffix=-alpine
type=semver,pattern=v{{major}}-latest-alpine
type=semver,pattern=v{{major}}-latest-alpine
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
@@ -42,7 +42,7 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
uses: actions/checkout@v5
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
@@ -73,7 +73,7 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.alpine

86
.github/workflows/docker-ubuntu.yml vendored Normal file
View File

@@ -0,0 +1,86 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker images (Ubuntu)
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
on:
push:
branches:
- master
- develop
tags:
- 'v**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=tag
type=semver,pattern=v{{major}}-latest
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v5
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}

View File

@@ -1,86 +0,0 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker images
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
on:
push:
branches:
- master
- develop
tags:
- 'v**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
if: github.repository == 'snipe/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=tag
type=semver,pattern=v{{major}}-latest
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}

View File

@@ -0,0 +1,22 @@
name: Update Docker Hub Description
on:
push:
branches:
- master
- develop
paths:
- README.md
- .github/workflows/dockerhub-description.yml
jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Docker Hub Description
uses: grokability/dockerhub-description@7ea9d275c7cdbe2b676a093a0308c50665e3b8b4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
repository: snipe/snipe-it
readme-filepath: ./README.md

40
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: 'Close stale issues'
on:
schedule:
- cron: '30 1 * * *'
jobs:
stale:
runs-on: ubuntu-latest
permissions:
# contents: write # only for delete-branch option
issues: write
# pull-requests: write
steps:
- uses: actions/stale@v10
with:
debug-only: true
ascending: true
operations-per-run: 1000 # just while we're debugging
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 60
days-before-close: 7
exempt-all-milestones: true
stale-issue-message: >
Is this still relevant? We haven't heard from anyone in a bit. If so,
please comment with any updates or additional detail.
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Don't
take it personally, we just need to keep a handle on things. Thank you
for your contributions!
close-issue-message: >
This issue has been automatically closed because it has not had
recent activity. If you believe this is still an issue, please confirm that
this issue is still happening in the most recent version of Snipe-IT and reply
to this thread to re-open it.
# There doesn't seem to be a 'reopen issue message'?
# Since there is no 'stale-pr-message' - PR's should not be stale'd
stale-issue-label: stale
exempt-issue-labels: >
pinned,security,:woman_technologist: ready for dev,:moneybag: bounty,:hand: bug,🔐 security,👩‍💻 ready for dev,💰 bounty,✋ bug

91
.github/workflows/tests-mysql.yml vendored Normal file
View File

@@ -0,0 +1,91 @@
name: Tests in MySQL
on:
push:
branches:
- master
- develop
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: snipeit
ports:
- 33306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-version:
- "8.2"
- "8.3"
- "8.4"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v5
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Setup Laravel
env:
DB_CONNECTION: mysql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install --no-interaction
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: mysql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7

90
.github/workflows/tests-postgres.yml vendored Normal file
View File

@@ -0,0 +1,90 @@
name: Tests in Postgres
on: workflow_dispatch
jobs:
tests:
runs-on: ubuntu-latest
services:
postgresql:
image: postgres
env:
POSTGRES_DB: snipeit
POSTGRES_USER: snipeit
POSTGRES_PASSWORD: password
ports:
- 5432:5432
options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-version:
- "8.2"
- "8.3"
- "8.4"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v5
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Setup Laravel
env:
DB_CONNECTION: pgsql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.postgresql.ports[5432] }}
DB_USERNAME: snipeit
DB_PASSWORD: password
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install --no-interaction
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: pgsql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.postgresql.ports[5432] }}
DB_USERNAME: snipeit
DB_PASSWORD: password
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7

76
.github/workflows/tests-sqlite.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Tests in SQLite
on:
push:
branches:
- master
- develop
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- "8.3"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v5
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Create database file
run: touch database/database.sqlite
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Setup Passport
run: php artisan passport:keys
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: sqlite
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7

View File

@@ -1,73 +0,0 @@
name: Tests
on:
push:
branches:
- master
- develop
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: snipeit
ports:
- 33306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-version:
- "7.4"
- "8.0"
- "8.1.1"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: mysql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
run: php artisan test --parallel

4
.gitignore vendored
View File

@@ -47,6 +47,7 @@ storage/private_uploads/users/*
tests/_data/scenarios
tests/_output/*
tests/_support/_generated/*
tests/coverage/*
/npm-debug.log
/storage/oauth-private.key
/storage/oauth-public.key
@@ -67,3 +68,6 @@ _ide_helper_models.php
/.phplint-cache
storage/ldap_client_tls.cert
storage/ldap_client_tls.key
/storage/framework/testing
/.phpunit.cache

2
.nvmrc
View File

@@ -1 +1 @@
v12.22.1
v18.16.0

240
.pa11yci.json Normal file
View File

@@ -0,0 +1,240 @@
{
"standard": "WCAG2AA",
"level": "error",
"defaults": {
"useIncognitoBrowserContext": false,
"timeout": 500000,
"wait": 5000,
"ignore" : [
"WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail",
"WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail"
],
"viewport": {
"width": 1280,
"height": 1024
}
},
"urls": [
{
"__NOTE" : "this should always be FIRST (if browser context is preserved)",
"url": "https://snipe-it.test/login",
"actions": [
"navigate to https://snipe-it.test/login",
"screen capture tests/pa11y/login.png",
"set field input[name='username'] to admin",
"set field input[name='password'] to password",
"click element button[type=submit]",
"wait for url to be https://snipe-it.test/",
"screen capture tests/pa11y/dashboard.png"
]
},
{
"url" : "https://snipe-it.test/admin",
"actions" : [
"navigate to https://snipe-it.test/admin",
"screen capture tests/pa11y/admin-settings.png"
]
},
{
"url" : "https://snipe-it.test/admin/branding",
"actions" : [
"navigate to https://snipe-it.test/admin/branding",
"screen capture tests/pa11y/admin-branding.png"
]
},
{
"url" : "https://snipe-it.test/admin/general",
"actions" : [
"navigate to https://snipe-it.test/admin/general",
"screen capture tests/pa11y/admin-general.png"
]
},
{
"url" : "https://snipe-it.test/hardware/create",
"actions" : [
"navigate to https://snipe-it.test/hardware/create",
"screen capture tests/pa11y/asset-create.png"
]
},
{
"url" : "https://snipe-it.test/hardware",
"actions" : [
"navigate to https://snipe-it.test/hardware",
"screen capture tests/pa11y/asset-list.png"
]
},
{
"url" : "https://snipe-it.test/hardware/1",
"actions" : [
"navigate to https://snipe-it.test/hardware/1",
"screen capture tests/pa11y/asset-detail.png"
]
},
{
"url" : "https://snipe-it.test/account/view-assets",
"actions" : [
"navigate to https://snipe-it.test/account/view-assets",
"screen capture tests/pa11y/profile.png"
]
},
{
"url" : "https://snipe-it.test/licences",
"actions" : [
"navigate to https://snipe-it.test/licenses",
"screen capture tests/pa11y/license-list.png"
]
},
{
"url" : "https://snipe-it.test/licences/create",
"actions" : [
"navigate to https://snipe-it.test/licenses/create",
"screen capture tests/pa11y/license-create.png"
]
},
{
"url" : "https://snipe-it.test/licences/1",
"actions" : [
"navigate to https://snipe-it.test/licenses/1",
"screen capture tests/pa11y/license-view.png"
]
},
{
"url" : "https://snipe-it.test/consumables",
"actions" : [
"navigate to https://snipe-it.test/consumables",
"screen capture tests/pa11y/consumable-list.png"
]
},
{
"url" : "https://snipe-it.test/consumables/create",
"actions" : [
"navigate to https://snipe-it.test/consumables/create",
"screen capture tests/pa11y/consumable-create.png"
]
},
{
"url" : "https://snipe-it.test/consumables/1",
"actions" : [
"navigate to https://snipe-it.test/consumables/1",
"screen capture tests/pa11y/consumable-view.png"
]
},
{
"url" : "https://snipe-it.test/accessories",
"actions" : [
"navigate to https://snipe-it.test/accessories",
"screen capture tests/pa11y/accessory-list.png"
]
},
{
"url" : "https://snipe-it.test/accessories/create",
"actions" : [
"navigate to https://snipe-it.test/accessories/create",
"screen capture tests/pa11y/accessory-create.png"
]
},
{
"url" : "https://snipe-it.test/accessories/1",
"actions" : [
"navigate to https://snipe-it.test/accessories/1",
"screen capture tests/pa11y/accessory-view.png"
]
},
{
"url" : "https://snipe-it.test/locations",
"actions" : [
"navigate to https://snipe-it.test/locations",
"screen capture tests/pa11y/location-list.png"
]
},
{
"url" : "https://snipe-it.test/locations/create",
"actions" : [
"navigate to https://snipe-it.test/locations/create",
"screen capture tests/pa11y/location-create.png"
]
},
{
"url" : "https://snipe-it.test/locations/1",
"actions" : [
"navigate to https://snipe-it.test/locations/1",
"screen capture tests/pa11y/location-view.png"
]
},
{
"url" : "https://snipe-it.test/models",
"actions" : [
"navigate to https://snipe-it.test/models",
"screen capture tests/pa11y/model-list.png"
]
},
{
"url" : "https://snipe-it.test/models/create",
"actions" : [
"navigate to https://snipe-it.test/models/create",
"screen capture tests/pa11y/model-create.png"
]
},
{
"url" : "https://snipe-it.test/models/1",
"actions" : [
"navigate to https://snipe-it.test/models/1",
"screen capture tests/pa11y/model-view.png"
]
},
{
"url" : "https://snipe-it.test/companies",
"actions" : [
"navigate to https://snipe-it.test/companies",
"screen capture tests/pa11y/company-list.png"
]
},
{
"url" : "https://snipe-it.test/companies/create",
"actions" : [
"navigate to https://snipe-it.test/companies/create",
"screen capture tests/pa11y/company-create.png"
]
},
{
"url" : "https://snipe-it.test/companies/1",
"actions" : [
"navigate to https://snipe-it.test/companies/1",
"screen capture tests/pa11y/company-view.png"
]
},
{
"url" : "https://snipe-it.test/departments",
"actions" : [
"navigate to https://snipe-it.test/departments",
"screen capture tests/pa11y/department-list.png"
]
},
{
"url" : "https://snipe-it.test/departments/create",
"actions" : [
"navigate to https://snipe-it.test/departments/create",
"screen capture tests/pa11y/department-create.png"
]
},
{
"url" : "https://snipe-it.test/departments/1",
"actions" : [
"navigate to https://snipe-it.test/departments/1",
"screen capture tests/pa11y/department-view.png"
]
},
{
"url" : "https://snipe-it.test/invalid-url",
"actions" : [
"navigate to https://snipe-it.test/invalid-url",
"screen capture tests/pa11y/404.png"
]
}
]
}

View File

@@ -0,0 +1,10 @@
{
"DOC1": "This file is meant to be pulled from the current HEAD of the desired branch, NOT referenced locally",
"DOC2": "In other words, what you see locally are the requirements for your _current_ install",
"DOC3": "Please don't rely on these versions for planning upgrades unless you've fetched the most recent version",
"DOC4": "You should really just ignore it and run upgrade.php. Really",
"php_min_version": "8.2.0",
"php_max_major_minor": "8.4",
"php_max_wontwork": "8.5.0",
"current_snipeit_version": "8.0"
}

74
CONTRIBUTORS.md Normal file
View File

@@ -0,0 +1,74 @@
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
| [<img src="https://avatars3.githubusercontent.com/u/197404?v=3" width="110px;"/><br /><sub>snipe</sub>](http://www.snipe.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=snipe "Code") [🚇](#infra-snipe "Infrastructure (Hosting, Build-Tools, etc)") [📖](https://github.com/snipe/snipe-it/commits?author=snipe "Documentation") [⚠️](https://github.com/snipe/snipe-it/commits?author=snipe "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asnipe "Bug reports") [🎨](#design-snipe "Design") [👀](#review-snipe "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/36335?v=3" width="110px;"/><br /><sub>Brady Wetherington</sub>](http://www.uberbrady.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=uberbrady "Code") [📖](https://github.com/snipe/snipe-it/commits?author=uberbrady "Documentation") [🚇](#infra-uberbrady "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-uberbrady "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/3803132?v=3" width="110px;"/><br /><sub>Daniel Meltzer</sub>](https://github.com/dmeltzer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Tests") [📖](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1609106?v=3" width="110px;"/><br /><sub>Michael T</sub>](http://www.tuckertechonline.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mtucker6784 "Code") | [<img src="https://avatars2.githubusercontent.com/u/3274937?v=3" width="110px;"/><br /><sub>madd15</sub>](https://github.com/madd15)<br />[📖](https://github.com/snipe/snipe-it/commits?author=madd15 "Documentation") [💬](#question-madd15 "Answering Questions") | [<img src="https://avatars2.githubusercontent.com/u/894126?v=3" width="110px;"/><br /><sub>Vincent Sposato</sub>](https://github.com/vsposato)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vsposato "Code") | [<img src="https://avatars0.githubusercontent.com/u/1639757?v=3" width="110px;"/><br /><sub>Andrea Bergamasco</sub>](https://github.com/vjandrea)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vjandrea "Code") |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [<img src="https://avatars0.githubusercontent.com/u/10640152?v=3" width="110px;"/><br /><sub>Karol</sub>](https://github.com/kpawelski)<br />[🌍](#translation-kpawelski "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=kpawelski "Code") | [<img src="https://avatars3.githubusercontent.com/u/600106?v=3" width="110px;"/><br /><sub>morph027</sub>](http://blog.morph027.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=morph027 "Code") | [<img src="https://avatars3.githubusercontent.com/u/22935755?v=3" width="110px;"/><br /><sub>fvleminckx</sub>](https://github.com/fvleminckx)<br />[🚇](#infra-fvleminckx "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars2.githubusercontent.com/u/15633547?v=3" width="110px;"/><br /><sub>itsupportcmsukorg</sub>](https://github.com/itsupportcmsukorg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=itsupportcmsukorg "Code") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aitsupportcmsukorg "Bug reports") | [<img src="https://avatars3.githubusercontent.com/u/12373799?v=3" width="110px;"/><br /><sub>Frank</sub>](https://override.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=base-zero "Code") | [<img src="https://avatars0.githubusercontent.com/u/10137?v=3" width="110px;"/><br /><sub>Deleted user</sub>](https://github.com/ghost)<br />[🌍](#translation-ghost "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=ghost "Code") | [<img src="https://avatars1.githubusercontent.com/u/10802313?v=3" width="110px;"/><br /><sub>tiagom62</sub>](https://github.com/tiagom62)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tiagom62 "Code") [🚇](#infra-tiagom62 "Infrastructure (Hosting, Build-Tools, etc)") |
| [<img src="https://avatars3.githubusercontent.com/u/2389047?v=3" width="110px;"/><br /><sub>Ryan Stafford</sub>](https://github.com/rystaf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rystaf "Code") | [<img src="https://avatars2.githubusercontent.com/u/10345935?v=3" width="110px;"/><br /><sub>Eammon Hanlon</sub>](https://github.com/ehanlon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ehanlon "Code") | [<img src="https://avatars0.githubusercontent.com/u/441924?v=3" width="110px;"/><br /><sub>zjean</sub>](https://github.com/zjean)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zjean "Code") | [<img src="https://avatars0.githubusercontent.com/u/12660103?v=3" width="110px;"/><br /><sub>Matthias Frei</sub>](http://www.frei.media)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FREImedia "Code") | [<img src="https://avatars0.githubusercontent.com/u/3767518?v=3" width="110px;"/><br /><sub>opsydev</sub>](https://github.com/opsydev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=opsydev "Code") | [<img src="https://avatars1.githubusercontent.com/u/82290?v=3" width="110px;"/><br /><sub>Daniel Dreier</sub>](http://www.ddreier.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ddreier "Code") | [<img src="https://avatars0.githubusercontent.com/u/23448?v=3" width="110px;"/><br /><sub>Nikolai Prokoschenko</sub>](http://rassie.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rassie "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/13452757?v=3" width="110px;"/><br /><sub>Drew</sub>](https://github.com/YetAnotherCodeMonkey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=YetAnotherCodeMonkey "Code") | [<img src="https://avatars0.githubusercontent.com/u/1342320?v=3" width="110px;"/><br /><sub>Walter</sub>](https://github.com/merid14)<br />[💻](https://github.com/snipe/snipe-it/commits?author=merid14 "Code") | [<img src="https://avatars3.githubusercontent.com/u/11254614?v=3" width="110px;"/><br /><sub>Petr Baloun</sub>](https://github.com/balous)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balous "Code") | [<img src="https://avatars0.githubusercontent.com/u/6117660?v=3" width="110px;"/><br /><sub>reidblomquist</sub>](https://github.com/reidblomquist)<br />[📖](https://github.com/snipe/snipe-it/commits?author=reidblomquist "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/539914?v=3" width="110px;"/><br /><sub>Mathieu Kooiman</sub>](https://github.com/mathieuk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mathieuk "Code") | [<img src="https://avatars3.githubusercontent.com/u/6606421?v=3" width="110px;"/><br /><sub>csayre</sub>](https://github.com/csayre)<br />[📖](https://github.com/snipe/snipe-it/commits?author=csayre "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/768488?v=3" width="110px;"/><br /><sub>Adam Dunson</sub>](https://github.com/adamdunson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamdunson "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/5547470?v=3" width="110px;"/><br /><sub>Hereward</sub>](https://github.com/thehereward)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thehereward "Code") | [<img src="https://avatars0.githubusercontent.com/u/5802977?v=3" width="110px;"/><br /><sub>swoopdk</sub>](https://github.com/swoopdk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=swoopdk "Code") | [<img src="https://avatars1.githubusercontent.com/u/3470403?v=3" width="110px;"/><br /><sub>Abdullah Alansari</sub>](https://linkedin.com/in/ahimta)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Ahimta "Code") | [<img src="https://avatars0.githubusercontent.com/u/796443?v=3" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MicaelRodrigues "Code") | [<img src="https://avatars0.githubusercontent.com/u/614564?v=3" width="110px;"/><br /><sub>Patrick Gallagher</sub>](http://macadmincorner.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=patgmac "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/7165922?v=3" width="110px;"/><br /><sub>Miliamber</sub>](https://github.com/Miliamber)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Miliamber "Code") | [<img src="https://avatars3.githubusercontent.com/u/861766?v=3" width="110px;"/><br /><sub>hawk554</sub>](https://github.com/hawk554)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hawk554 "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1695622?v=3" width="110px;"/><br /><sub>Justin Kerr</sub>](http://jbirdkerr.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbirdkerr "Code") | [<img src="https://avatars3.githubusercontent.com/u/11426176?v=3" width="110px;"/><br /><sub>Ira W. Snyder</sub>](http://www.irasnyder.com/devel/)<br />[📖](https://github.com/snipe/snipe-it/commits?author=irasnyd "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/2475759?v=3" width="110px;"/><br /><sub>Aladin Alaily</sub>](https://github.com/aalaily)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aalaily "Code") | [<img src="https://avatars0.githubusercontent.com/u/10247644?v=3" width="110px;"/><br /><sub>Chase Hansen</sub>](https://github.com/kobie-chasehansen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kobie-chasehansen "Code") [💬](#question-kobie-chasehansen "Answering Questions") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Akobie-chasehansen "Bug reports") | [<img src="https://avatars2.githubusercontent.com/u/13545400?v=3" width="110px;"/><br /><sub>IDM Helpdesk</sub>](https://github.com/IDM-Helpdesk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=IDM-Helpdesk "Code") | [<img src="https://avatars2.githubusercontent.com/u/614439?v=3" width="110px;"/><br /><sub>Kai</sub>](http://balticer.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balticer "Code") | [<img src="https://avatars1.githubusercontent.com/u/8762511?v=3" width="110px;"/><br /><sub>Michael Daniels</sub>](http://www.michaeldaniels.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mdaniels5757 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/1532660?v=3" width="110px;"/><br /><sub>Tom Castleman</sub>](http://tomcastleman.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tomcastleman "Code") | [<img src="https://avatars3.githubusercontent.com/u/10723243?v=3" width="110px;"/><br /><sub>Daniel Nemanic</sub>](https://github.com/DanielNemanic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DanielNemanic "Code") | [<img src="https://avatars0.githubusercontent.com/u/150648?v=3" width="110px;"/><br /><sub>SouthWolf</sub>](https://github.com/southwolf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=southwolf "Code") | [<img src="https://avatars2.githubusercontent.com/u/131616?v=3" width="110px;"/><br /><sub>Ivar Nesje</sub>](https://github.com/ivarne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ivarne "Code") | [<img src="https://avatars1.githubusercontent.com/u/62333?v=3" width="110px;"/><br /><sub>Jérémy Benoist</sub>](http://www.j0k3r.net)<br />[📖](https://github.com/snipe/snipe-it/commits?author=j0k3r "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/724344?v=3" width="110px;"/><br /><sub>Chris Leathley</sub>](https://github.com/cleathley)<br />[🚇](#infra-cleathley "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars0.githubusercontent.com/u/972498?v=3" width="110px;"/><br /><sub>splaer</sub>](https://github.com/splaer)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asplaer "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=splaer "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/967362?v=3" width="110px;"/><br /><sub>Joe Ferguson</sub>](http://www.joeferguson.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=svpernova09 "Code") | [<img src="https://avatars3.githubusercontent.com/u/6108682?v=3" width="110px;"/><br /><sub>diwanicki</sub>](https://github.com/diwanicki)<br />[💻](https://github.com/snipe/snipe-it/commits?author=diwanicki "Code") [📖](https://github.com/snipe/snipe-it/commits?author=diwanicki "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/2527115?v=3" width="110px;"/><br /><sub>Lee Thoong Ching</sub>](https://github.com/pakkua80)<br />[📖](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Documentation") [💻](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Code") | [<img src="https://avatars1.githubusercontent.com/u/461491?v=3" width="110px;"/><br /><sub>Marek Šuppa</sub>](http://shu.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mrshu "Code") | [<img src="https://avatars1.githubusercontent.com/u/8693762?v=3" width="110px;"/><br /><sub>Juan J. Martinez</sub>](https://github.com/mizar1616)<br />[🌍](#translation-mizar1616 "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1458388?v=3" width="110px;"/><br /><sub>R Ryan Dial</sub>](https://github.com/rrdial)<br />[🌍](#translation-rrdial "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2871745?v=3" width="110px;"/><br /><sub>Andrej Manduch</sub>](https://github.com/burlito)<br />[📖](https://github.com/snipe/snipe-it/commits?author=burlito "Documentation") |
| [<img src="https://avatars0.githubusercontent.com/u/8341172?v=3" width="110px;"/><br /><sub>Jay Richards</sub>](http://www.cordeos.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=technogenus "Code") | [<img src="https://avatars2.githubusercontent.com/u/7295127?v=3" width="110px;"/><br /><sub>Alexander Innes</sub>](https://necurity.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leostat "Code") | [<img src="https://avatars2.githubusercontent.com/u/334485?v=3" width="110px;"/><br /><sub>Danny Garcia</sub>](https://buzzedword.codes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=buzzedword "Code") | [<img src="https://avatars2.githubusercontent.com/u/366855?v=3" width="110px;"/><br /><sub>archpoint</sub>](https://github.com/archpoint)<br />[💻](https://github.com/snipe/snipe-it/commits?author=archpoint "Code") | [<img src="https://avatars1.githubusercontent.com/u/67991?v=3" width="110px;"/><br /><sub>Jake McGraw</sub>](http://www.jakemcgraw.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jakemcgraw "Code") | [<img src="https://avatars1.githubusercontent.com/u/1714374?v=3" width="110px;"/><br /><sub>FleischKarussel</sub>](https://github.com/FleischKarussel)<br />[📖](https://github.com/snipe/snipe-it/commits?author=FleischKarussel "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/319644?v=3" width="110px;"/><br /><sub>Dylan Yi</sub>](https://github.com/feeva)<br />[💻](https://github.com/snipe/snipe-it/commits?author=feeva "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/857740?v=3" width="110px;"/><br /><sub>Gil Rutkowski</sub>](http://FlashingCursor.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=flashingcursor "Code") | [<img src="https://avatars3.githubusercontent.com/u/129360?v=3" width="110px;"/><br /><sub>Desmond Morris</sub>](http://www.desmondmorris.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=desmondmorris "Code") | [<img src="https://avatars2.githubusercontent.com/u/52936?v=3" width="110px;"/><br /><sub>Nick Peelman</sub>](http://peelman.us)<br />[💻](https://github.com/snipe/snipe-it/commits?author=peelman "Code") | [<img src="https://avatars0.githubusercontent.com/u/53161?v=3" width="110px;"/><br /><sub>Abraham Vegh</sub>](https://abrahamvegh.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=abrahamvegh "Code") | [<img src="https://avatars0.githubusercontent.com/u/2818680?v=3" width="110px;"/><br /><sub>Mohamed Rashid</sub>](https://github.com/rashivkp)<br />[📖](https://github.com/snipe/snipe-it/commits?author=rashivkp "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1509456?v=3" width="110px;"/><br /><sub>Kasey</sub>](http://hinchk.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=HinchK "Code") | [<img src="https://avatars2.githubusercontent.com/u/10522541?v=3" width="110px;"/><br /><sub>Brett</sub>](https://github.com/BrettFagerlund)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=BrettFagerlund "Tests") |
| [<img src="https://avatars2.githubusercontent.com/u/16108587?v=3" width="110px;"/><br /><sub>Jason Spriggs</sub>](http://jasonspriggs.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonspriggs "Code") | [<img src="https://avatars2.githubusercontent.com/u/1134568?v=3" width="110px;"/><br /><sub>Nate Felton</sub>](http://n8felton.wordpress.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=n8felton "Code") | [<img src="https://avatars2.githubusercontent.com/u/14036694?v=3" width="110px;"/><br /><sub>Manasses Ferreira</sub>](http://homepages.dcc.ufmg.br/~manassesferreira)<br />[💻](https://github.com/snipe/snipe-it/commits?author=manassesferreira "Code") | [<img src="https://avatars0.githubusercontent.com/u/15913949?v=3" width="110px;"/><br /><sub>Steve</sub>](https://github.com/steveelwood)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=steveelwood "Tests") | [<img src="https://avatars1.githubusercontent.com/u/3361683?v=3" width="110px;"/><br /><sub>matc</sub>](http://twitter.com/matc)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=matc "Tests") | [<img src="https://avatars3.githubusercontent.com/u/7405702?v=3" width="110px;"/><br /><sub>Cole R. Davis</sub>](http://www.davisracingteam.com)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD "Tests") | [<img src="https://avatars2.githubusercontent.com/u/10167681?v=3" width="110px;"/><br /><sub>gibsonjoshua55</sub>](https://github.com/gibsonjoshua55)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55 "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/2809241?v=4" width="110px;"/><br /><sub>Robin Temme</sub>](https://github.com/zwerch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zwerch "Code") | [<img src="https://avatars0.githubusercontent.com/u/6961695?v=4" width="110px;"/><br /><sub>Iman</sub>](https://github.com/imanghafoori1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=imanghafoori1 "Code") | [<img src="https://avatars1.githubusercontent.com/u/6551003?v=4" width="110px;"/><br /><sub>Richard Hofman</sub>](https://github.com/richardhofman6)<br />[💻](https://github.com/snipe/snipe-it/commits?author=richardhofman6 "Code") | [<img src="https://avatars0.githubusercontent.com/u/3697569?v=4" width="110px;"/><br /><sub>gizzmojr</sub>](https://github.com/gizzmojr)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gizzmojr "Code") | [<img src="https://avatars3.githubusercontent.com/u/404729?v=4" width="110px;"/><br /><sub>Jenny Li</sub>](https://github.com/imjennyli)<br />[📖](https://github.com/snipe/snipe-it/commits?author=imjennyli "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/869227?v=4" width="110px;"/><br /><sub>Geoff Young</sub>](https://github.com/GeoffYoung)<br />[💻](https://github.com/snipe/snipe-it/commits?author=GeoffYoung "Code") | [<img src="https://avatars3.githubusercontent.com/u/1068477?v=4" width="110px;"/><br /><sub>Elliot Blackburn</sub>](http://www.elliotblackburn.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=BlueHatbRit "Documentation") |
| [<img src="https://avatars1.githubusercontent.com/u/6357451?v=4" width="110px;"/><br /><sub>Tõnis Ormisson</sub>](http://andmemasin.eu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | [<img src="https://avatars0.githubusercontent.com/u/449411?v=4" width="110px;"/><br /><sub>Nicolai Essig</sub>](http://www.nicolai-essig.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thakilla "Code") | [<img src="https://avatars1.githubusercontent.com/u/14809698?v=4" width="110px;"/><br /><sub>Danielle</sub>](https://github.com/techincolor)<br />[📖](https://github.com/snipe/snipe-it/commits?author=techincolor "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/18545156?v=4" width="110px;"/><br /><sub>Lawrence</sub>](https://github.com/TheVakman)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=TheVakman "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3ATheVakman "Bug reports") | [<img src="https://avatars1.githubusercontent.com/u/22473767?v=4" width="110px;"/><br /><sub>uknzaeinozpas</sub>](https://github.com/uknzaeinozpas)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Tests") [💻](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Code") | [<img src="https://avatars3.githubusercontent.com/u/422752?v=4" width="110px;"/><br /><sub>Ryan</sub>](https://github.com/Gelob)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Gelob "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/10672546?v=4" width="110px;"/><br /><sub>vcordes79</sub>](https://github.com/vcordes79)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vcordes79 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/27958330?v=4" width="110px;"/><br /><sub>fordster78</sub>](https://github.com/fordster78)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fordster78 "Code") | [<img src="https://avatars0.githubusercontent.com/u/34064225?v=4" width="110px;"/><br /><sub>CronKz</sub>](https://github.com/CronKz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CronKz "Code") [🌍](#translation-CronKz "Translation") | [<img src="https://avatars1.githubusercontent.com/u/585486?v=4" width="110px;"/><br /><sub>Tim Bishop</sub>](https://github.com/tdb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tdb "Code") | [<img src="https://avatars2.githubusercontent.com/u/5384694?v=4" width="110px;"/><br /><sub>Sean McIlvenna</sub>](https://www.seanmcilvenna.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=seanmcilvenna "Code") | [<img src="https://avatars3.githubusercontent.com/u/36515590?v=4" width="110px;"/><br /><sub>cepacs</sub>](https://github.com/cepacs)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Acepacs "Bug reports") [📖](https://github.com/snipe/snipe-it/commits?author=cepacs "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/37537300?v=4" width="110px;"/><br /><sub>lea-mink</sub>](https://github.com/lea-mink)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lea-mink "Code") | [<img src="https://avatars0.githubusercontent.com/u/7140719?v=4" width="110px;"/><br /><sub>Hannah Tinkler</sub>](https://github.com/hannahtinkler)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hannahtinkler "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1086388?v=4" width="110px;"/><br /><sub>Doeke Zanstra</sub>](https://github.com/doekman)<br />[💻](https://github.com/snipe/snipe-it/commits?author=doekman "Code") | [<img src="https://avatars1.githubusercontent.com/u/4325936?v=4" width="110px;"/><br /><sub>Djamon Staal</sub>](https://www.sdhd.nl/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=SjamonDaal "Code") | [<img src="https://avatars3.githubusercontent.com/u/12306859?v=4" width="110px;"/><br /><sub>Earl Ramirez</sub>](https://github.com/EarlRamirez)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EarlRamirez "Code") | [<img src="https://avatars2.githubusercontent.com/u/8671456?v=4" width="110px;"/><br /><sub>Richard Ray Thomas</sub>](https://github.com/RichardRay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=RichardRay "Code") | [<img src="https://avatars3.githubusercontent.com/u/1852688?v=4" width="110px;"/><br /><sub>Ryan Kuba</sub>](https://www.taisun.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thelamer "Code") | [<img src="https://avatars1.githubusercontent.com/u/6751928?v=4" width="110px;"/><br /><sub>Brian Monroe</sub>](https://github.com/ParadoxGuitarist)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ParadoxGuitarist "Code") | [<img src="https://avatars1.githubusercontent.com/u/605167?v=4" width="110px;"/><br /><sub>plexorama</sub>](https://github.com/plexorama)<br />[💻](https://github.com/snipe/snipe-it/commits?author=plexorama "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/1795149?v=4" width="110px;"/><br /><sub>Till Deeke</sub>](https://tilldeeke.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tilldeeke "Code") | [<img src="https://avatars0.githubusercontent.com/u/12634129?v=4" width="110px;"/><br /><sub>5quirrel</sub>](https://github.com/5quirrel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=5quirrel "Code") | [<img src="https://avatars1.githubusercontent.com/u/13071957?v=4" width="110px;"/><br /><sub>Jason</sub>](https://github.com/jasonlshelton)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonlshelton "Code") | [<img src="https://avatars3.githubusercontent.com/u/7128321?v=4" width="110px;"/><br /><sub>Antti</sub>](https://github.com/chemfy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chemfy "Code") | [<img src="https://avatars3.githubusercontent.com/u/10080364?v=4" width="110px;"/><br /><sub>DeusMaximus</sub>](https://github.com/DeusMaximus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DeusMaximus "Code") | [<img src="https://avatars2.githubusercontent.com/u/16384611?v=4" width="110px;"/><br /><sub>a-royal</sub>](https://github.com/A-ROYAL)<br />[🌍](#translation-A-ROYAL "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5358208?v=4" width="110px;"/><br /><sub>Alberto Aldrigo</sub>](https://github.com/albertoaldrigo)<br />[🌍](#translation-albertoaldrigo "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1412342?v=4" width="110px;"/><br /><sub>Alex Stanev</sub>](http://alex.stanev.org/blog)<br />[🌍](#translation-RealEnder "Translation") | [<img src="https://avatars0.githubusercontent.com/u/177295?v=4" width="110px;"/><br /><sub>Andreas Rehm</sub>](http://devel.itsolution2.de)<br />[🌍](#translation-sirrus "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5080535?v=4" width="110px;"/><br /><sub>Andreas Erhard</sub>](https://github.com/xelan)<br />[🌍](#translation-xelan "Translation") | [<img src="https://avatars2.githubusercontent.com/u/142350?v=4" width="110px;"/><br /><sub>Andrés Vanegas Jiménez</sub>](https://github.com/angeldeejay)<br />[🌍](#translation-angeldeejay "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3910403?v=4" width="110px;"/><br /><sub>Antonio Schiavon</sub>](https://github.com/aschiavon91)<br />[🌍](#translation-aschiavon91 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10464547?v=4" width="110px;"/><br /><sub>benunter</sub>](https://github.com/benunter)<br />[🌍](#translation-benunter "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5038647?v=4" width="110px;"/><br /><sub>Borys Żmuda</sub>](http://catweb24.pl)<br />[🌍](#translation-rudashi "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/5539359?v=4" width="110px;"/><br /><sub>chibacityblues</sub>](https://github.com/chibacityblues)<br />[🌍](#translation-chibacityblues "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1954830?v=4" width="110px;"/><br /><sub>Chien Wei Lin</sub>](https://github.com/cwlin0416)<br />[🌍](#translation-cwlin0416 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/11700533?v=4" width="110px;"/><br /><sub>Christian Schuster</sub>](https://github.com/Againstreality)<br />[🌍](#translation-Againstreality "Translation") | [<img src="https://avatars1.githubusercontent.com/u/4308704?v=4" width="110px;"/><br /><sub>Christian Stefanus</sub>](http://chriss.webhostid.com)<br />[🌍](#translation-kopi-item "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3009327?v=4" width="110px;"/><br /><sub>wxcafé</sub>](http://wxcafe.net)<br />[🌍](#translation-wxcafe "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35761525?v=4" width="110px;"/><br /><sub>dpyroc</sub>](https://github.com/dpyroc)<br />[🌍](#translation-dpyroc "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2153639?v=4" width="110px;"/><br /><sub>Daniel Friedlmaier</sub>](http://www.friedlmaier.net)<br />[🌍](#translation-da-friedl "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/2947640?v=4" width="110px;"/><br /><sub>Daniel Heene</sub>](https://github.com/danielheene)<br />[🌍](#translation-danielheene "Translation") | [<img src="https://avatars3.githubusercontent.com/u/319022?v=4" width="110px;"/><br /><sub>danielcb</sub>](https://github.com/danielcb)<br />[🌍](#translation-danielcb "Translation") | [<img src="https://avatars3.githubusercontent.com/u/15846537?v=4" width="110px;"/><br /><sub>Dominik Senti</sub>](https://github.com/dominiksenti)<br />[🌍](#translation-dominiksenti "Translation") | [<img src="https://avatars0.githubusercontent.com/u/25570954?v=4" width="110px;"/><br /><sub>Eric Gautheron</sub>](http://www.konectik.com)<br />[🌍](#translation-EpixFr "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5732623?v=4" width="110px;"/><br /><sub>Erlend Pilø</sub>](https://erlpil.com)<br />[🌍](#translation-Erlpil "Translation") | [<img src="https://avatars0.githubusercontent.com/u/541832?v=4" width="110px;"/><br /><sub>Fabio Rapposelli</sub>](http://fabio.technology)<br />[🌍](#translation-frapposelli "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3605240?v=4" width="110px;"/><br /><sub>Felipe Barros</sub>](https://github.com/fgbs)<br />[🌍](#translation-fgbs "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/257745?v=4" width="110px;"/><br /><sub>Fernando Possebon</sub>](https://github.com/possebon)<br />[🌍](#translation-possebon "Translation") | [<img src="https://avatars3.githubusercontent.com/u/2540832?v=4" width="110px;"/><br /><sub>gdraque</sub>](https://github.com/gdraque)<br />[🌍](#translation-gdraque "Translation") | [<img src="https://avatars0.githubusercontent.com/u/23440381?v=4" width="110px;"/><br /><sub>Georg Wallisch</sub>](https://github.com/georgwallisch)<br />[🌍](#translation-georgwallisch "Translation") | [<img src="https://avatars1.githubusercontent.com/u/9852832?v=4" width="110px;"/><br /><sub>Gerardo Robles</sub>](https://github.com/jgroblesr85)<br />[🌍](#translation-jgroblesr85 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/11082640?v=4" width="110px;"/><br /><sub>Gluek</sub>](https://t.me/Gluek)<br />[🌍](#translation-mrgluek "Translation") | [<img src="https://avatars0.githubusercontent.com/u/6847946?v=4" width="110px;"/><br /><sub>AdnanAbuShahad</sub>](https://github.com/AdnanAbuShahad)<br />[🌍](#translation-AdnanAbuShahad "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3580608?v=4" width="110px;"/><br /><sub>Hafidzi My</sub>](https://hafidzi.my)<br />[🌍](#translation-hafidzi "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/205521?v=4" width="110px;"/><br /><sub>Harim Park</sub>](https://github.com/fofwisdom)<br />[🌍](#translation-fofwisdom "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3333841?v=4" width="110px;"/><br /><sub>Henrik Kentsson</sub>](http://www.kentsson.se)<br />[🌍](#translation-Kentsson "Translation") | [<img src="https://avatars0.githubusercontent.com/u/36551034?v=4" width="110px;"/><br /><sub>Husnul Yaqien</sub>](https://github.com/husnulyaqien)<br />[🌍](#translation-husnulyaqien "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2372747?v=4" width="110px;"/><br /><sub>Ibrahim</sub>](http://abaalkhail.org)<br />[🌍](#translation-abaalkh "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1389334?v=4" width="110px;"/><br /><sub>igolman</sub>](https://github.com/igolman)<br />[🌍](#translation-igolman "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3257070?v=4" width="110px;"/><br /><sub>itangiang</sub>](https://github.com/itangiang)<br />[🌍](#translation-itangiang "Translation") | [<img src="https://avatars2.githubusercontent.com/u/14814254?v=4" width="110px;"/><br /><sub>jarby1211</sub>](https://github.com/jarby1211)<br />[🌍](#translation-jarby1211 "Translation") |
| [<img src="https://avatars3.githubusercontent.com/u/6719357?v=4" width="110px;"/><br /><sub>Jhonn Willker</sub>](http://jwillker.com)<br />[🌍](#translation-JohnWillker "Translation") | [<img src="https://avatars2.githubusercontent.com/u/10983635?v=4" width="110px;"/><br /><sub>Jose</sub>](https://github.com/joxelito94)<br />[🌍](#translation-joxelito94 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5206122?v=4" width="110px;"/><br /><sub>laopangzi</sub>](https://github.com/laopangzi)<br />[🌍](#translation-laopangzi "Translation") | [<img src="https://avatars2.githubusercontent.com/u/79707?v=4" width="110px;"/><br /><sub>Lars Strojny</sub>](http://usrportage.de)<br />[🌍](#translation-lstrojny "Translation") | [<img src="https://avatars0.githubusercontent.com/u/389801?v=4" width="110px;"/><br /><sub>MarcosBL</sub>](http://twitter.com/marcosbl)<br />[🌍](#translation-MarcosBL "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35664606?v=4" width="110px;"/><br /><sub>marie joy cajes</sub>](https://github.com/mariejoyacajes)<br />[🌍](#translation-mariejoyacajes "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3052816?v=4" width="110px;"/><br /><sub>Mark S. Johansen</sub>](http://www.markjohansen.dk)<br />[🌍](#translation-msjohansen "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/982885?v=4" width="110px;"/><br /><sub>Martin Stub</sub>](http://martinstub.dk)<br />[🌍](#translation-stubben "Translation") | [<img src="https://avatars2.githubusercontent.com/u/28959963?v=4" width="110px;"/><br /><sub>Meyer Flavio</sub>](https://github.com/meyerf99)<br />[🌍](#translation-meyerf99 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/796443?v=4" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[🌍](#translation-MicaelRodrigues "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10481331?v=4" width="110px;"/><br /><sub>Mikael Rasmussen</sub>](http://rubixy.com/)<br />[🌍](#translation-mikaelssen "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1544552?v=4" width="110px;"/><br /><sub>IxFail</sub>](https://github.com/IxFail)<br />[🌍](#translation-IxFail "Translation") | [<img src="https://avatars3.githubusercontent.com/u/18483118?v=4" width="110px;"/><br /><sub>Mohammed Fota</sub>](http://www.mohammedfota.com)<br />[🌍](#translation-MohammedFota "Translation") | [<img src="https://avatars0.githubusercontent.com/u/227080?v=4" width="110px;"/><br /><sub>Moayad Alserihi</sub>](https://github.com/omego)<br />[🌍](#translation-omego "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1680266?v=4" width="110px;"/><br /><sub>saymd</sub>](https://github.com/saymd)<br />[🌍](#translation-saymd "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1826808?v=4" width="110px;"/><br /><sub>Patrik Larsson</sub>](https://nordsken.se)<br />[🌍](#translation-pooot "Translation") | [<img src="https://avatars1.githubusercontent.com/u/20584746?v=4" width="110px;"/><br /><sub>drcryo</sub>](https://github.com/drcryo)<br />[🌍](#translation-drcryo "Translation") | [<img src="https://avatars1.githubusercontent.com/u/19408004?v=4" width="110px;"/><br /><sub>pawel1615</sub>](https://github.com/pawel1615)<br />[🌍](#translation-pawel1615 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/23340468?v=4" width="110px;"/><br /><sub>bodrovics</sub>](https://github.com/bodrovics)<br />[🌍](#translation-bodrovics "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3257654?v=4" width="110px;"/><br /><sub>priatna</sub>](https://github.com/priatna)<br />[🌍](#translation-priatna "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5358374?v=4" width="110px;"/><br /><sub>Fan Jiang</sub>](https://amayume.net)<br />[🌍](#translation-ProfFan "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/22555451?v=4" width="110px;"/><br /><sub>ragnarcx</sub>](https://github.com/ragnarcx)<br />[🌍](#translation-ragnarcx "Translation") | [<img src="https://avatars2.githubusercontent.com/u/18654582?v=4" width="110px;"/><br /><sub>Rein van Haaren</sub>](http://www.reinvanhaaren.nl/)<br />[🌍](#translation-reinvanhaaren "Translation") | [<img src="https://avatars1.githubusercontent.com/u/386672?v=4" width="110px;"/><br /><sub>Teguh Dwicaksana</sub>](http://dheche.songolimo.net)<br />[🌍](#translation-dheche "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2572552?v=4" width="110px;"/><br /><sub>fraccie</sub>](https://github.com/FRaccie)<br />[🌍](#translation-FRaccie "Translation") | [<img src="https://avatars0.githubusercontent.com/u/35182720?v=4" width="110px;"/><br /><sub>vinzruzell</sub>](https://github.com/vinzruzell)<br />[🌍](#translation-vinzruzell "Translation") | [<img src="https://avatars1.githubusercontent.com/u/7883603?v=4" width="110px;"/><br /><sub>Kevin Austin</sub>](http://kevinaustin.com)<br />[🌍](#translation-vipsystem "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3861828?v=4" width="110px;"/><br /><sub>Wira Sandy</sub>](http://azuraweb.xyz)<br />[🌍](#translation-wira-sandy "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/8663789?v=4" width="110px;"/><br /><sub>Илья</sub>](https://github.com/GrayHoax)<br />[🌍](#translation-GrayHoax "Translation") | [<img src="https://avatars3.githubusercontent.com/u/30119111?v=4" width="110px;"/><br /><sub>GodUseVPN</sub>](https://github.com/godusevpn)<br />[🌍](#translation-godusevpn "Translation") | [<img src="https://avatars1.githubusercontent.com/u/745576?v=4" width="110px;"/><br /><sub>周周</sub>](https://github.com/EngrZhou)<br />[🌍](#translation-EngrZhou "Translation") | [<img src="https://avatars3.githubusercontent.com/u/1631095?v=4" width="110px;"/><br /><sub>Sam</sub>](https://github.com/takuy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [<img src="https://avatars1.githubusercontent.com/u/264022?v=4" width="110px;"/><br /><sub>Azerothian</sub>](https://www.illisian.com.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [<img src="https://avatars1.githubusercontent.com/u/4930051?v=4" width="110px;"/><br /><sub>Wes Hulette</sub>](http://macfoo.wordpress.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jwhulette "Code") | [<img src="https://avatars0.githubusercontent.com/u/8134591?v=4" width="110px;"/><br /><sub>patrict</sub>](https://github.com/patrict)<br />[💻](https://github.com/snipe/snipe-it/commits?author=patrict "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/2611616?v=4" width="110px;"/><br /><sub>Dmitriy Minaev</sub>](https://github.com/VELIKII-DIVAN)<br />[💻](https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN "Code") | [<img src="https://avatars0.githubusercontent.com/u/5132245?v=4" width="110px;"/><br /><sub>liquidhorse</sub>](https://github.com/liquidhorse)<br />[💻](https://github.com/snipe/snipe-it/commits?author=liquidhorse "Code") | [<img src="https://avatars1.githubusercontent.com/u/183678?v=4" width="110px;"/><br /><sub>Jordi Boggiano</sub>](https://seld.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Seldaek "Code") | [<img src="https://avatars0.githubusercontent.com/u/653557?v=4" width="110px;"/><br /><sub>Ivan Nieto</sub>](https://github.com/inietov)<br />[💻](https://github.com/snipe/snipe-it/commits?author=inietov "Code") | [<img src="https://avatars2.githubusercontent.com/u/6764151?v=4" width="110px;"/><br /><sub>Ben RUBSON</sub>](https://github.com/benrubson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benrubson "Code") | [<img src="https://avatars2.githubusercontent.com/u/8554558?v=4" width="110px;"/><br /><sub>NMathar</sub>](https://github.com/NMathar)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NMathar "Code") | [<img src="https://avatars1.githubusercontent.com/u/139566?v=4" width="110px;"/><br /><sub>Steffen</sub>](https://github.com/smb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smb "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/6609453?v=4" width="110px;"/><br /><sub>Sxderp</sub>](https://github.com/Sxderp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Sxderp "Code") | [<img src="https://avatars1.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>fanta8897</sub>](https://github.com/fanta8897)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fanta8897 "Code") | [<img src="https://avatars2.githubusercontent.com/u/2576509?v=4" width="110px;"/><br /><sub>Andrey Bolonin</sub>](https://andreybolonin.com/phpconsulting/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreybolonin "Code") | [<img src="https://avatars3.githubusercontent.com/u/2173307?v=4" width="110px;"/><br /><sub>shinayoshi</sub>](http://www.shinayoshi.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=shinayoshi "Code") | [<img src="https://avatars3.githubusercontent.com/u/2130159?v=4" width="110px;"/><br /><sub>Hubert</sub>](https://github.com/reuser)<br />[💻](https://github.com/snipe/snipe-it/commits?author=reuser "Code") | [<img src="https://avatars0.githubusercontent.com/u/6865789?v=4" width="110px;"/><br /><sub>KeenRivals</sub>](https://brashear.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KeenRivals "Code") | [<img src="https://avatars3.githubusercontent.com/u/2902513?v=4" width="110px;"/><br /><sub>omyno</sub>](https://github.com/omyno)<br />[💻](https://github.com/snipe/snipe-it/commits?author=omyno "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/6271335?v=4" width="110px;"/><br /><sub>Evgeny</sub>](https://github.com/jackka)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jackka "Code") | [<img src="https://avatars2.githubusercontent.com/u/1169963?v=4" width="110px;"/><br /><sub>Colin Campbell</sub>](https://digitalist.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=colin-campbell "Code") | [<img src="https://avatars3.githubusercontent.com/u/2872098?v=4" width="110px;"/><br /><sub>Ľubomír Kučera</sub>](https://github.com/lubo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lubo "Code") | [<img src="https://avatars3.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://www.sourceguru.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mezzle "Code") | [<img src="https://avatars1.githubusercontent.com/u/7632599?v=4" width="110px;"/><br /><sub>Tim Farmer</sub>](https://github.com/timothyfarmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [<img src="https://avatars0.githubusercontent.com/u/17459600?v=4" width="110px;"/><br /><sub>Marián Skrip</sub>](https://github.com/mskrip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") | [<img src="https://avatars2.githubusercontent.com/u/47435081?v=4" width="110px;"/><br /><sub>Godfrey Martinez</sub>](https://github.com/Godmartinz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/2075128?v=4" width="110px;"/><br /><sub>bigtreeEdo</sub>](https://github.com/bigtreeEdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [<img src="https://avatars0.githubusercontent.com/u/5000430?v=4" width="110px;"/><br /><sub>Colin McNeil</sub>](https://colinmcneil.me/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [<img src="https://avatars0.githubusercontent.com/u/421625?v=4" width="110px;"/><br /><sub>JoKneeMo</sub>](https://github.com/JoKneeMo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [<img src="https://avatars0.githubusercontent.com/u/54849013?v=4" width="110px;"/><br /><sub>Joshi</sub>](http://www.redbridge.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [<img src="https://avatars2.githubusercontent.com/u/15731458?v=4" width="110px;"/><br /><sub>Anthony Burns</sub>](https://github.com/anthonypburns)<br />[💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [<img src="https://avatars1.githubusercontent.com/u/63399474?v=4" width="110px;"/><br /><sub>johnson-yi</sub>](https://github.com/johnson-yi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=johnson-yi "Code") | [<img src="https://avatars1.githubusercontent.com/u/1862720?v=4" width="110px;"/><br /><sub>Sanjay Govind</sub>](https://tangentmc.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sanjay900 "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/1255375?v=4" width="110px;"/><br /><sub>Peter Upfold</sub>](https://peter.upfold.org.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [<img src="https://avatars2.githubusercontent.com/u/961717?v=4" width="110px;"/><br /><sub>Jared Biel</sub>](https://github.com/jbiel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") | [<img src="https://avatars1.githubusercontent.com/u/1733625?v=4" width="110px;"/><br /><sub>Dampfklon</sub>](https://github.com/dampfklon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dampfklon "Code") | [<img src="https://avatars2.githubusercontent.com/u/52973156?v=4" width="110px;"/><br /><sub>Charles Hamilton</sub>](https://communityclosing.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chamilton-ccn "Code") | [<img src="https://avatars.githubusercontent.com/u/551789?v=4" width="110px;"/><br /><sub>Giuseppe Iannello</sub>](https://github.com/giannello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=giannello "Code") | [<img src="https://avatars.githubusercontent.com/u/3691490?v=4" width="110px;"/><br /><sub>Peter Dave Hello</sub>](https://www.peterdavehello.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterDaveHello "Code") | [<img src="https://avatars.githubusercontent.com/u/6106332?v=4" width="110px;"/><br /><sub>sigmoidal</sub>](https://github.com/sigmoidal)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sigmoidal "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2082554?v=4" width="110px;"/><br /><sub>Vincent Lainé</sub>](https://github.com/phenixdotnet)<br />[💻](https://github.com/snipe/snipe-it/commits?author=phenixdotnet "Code") | [<img src="https://avatars.githubusercontent.com/u/1943040?v=4" width="110px;"/><br /><sub>Lucas Pleß</sub>](http://www.lucas-pless.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derlucas "Code") | [<img src="https://avatars.githubusercontent.com/u/472804?v=4" width="110px;"/><br /><sub>Ian Littman</sub>](http://twitter.com/iansltx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=iansltx "Code") | [<img src="https://avatars.githubusercontent.com/u/3519029?v=4" width="110px;"/><br /><sub>João Paulo</sub>](https://github.com/PauloLuna)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PauloLuna "Code") | [<img src="https://avatars.githubusercontent.com/u/70443365?v=4" width="110px;"/><br /><sub>ThoBur</sub>](https://github.com/ThoBur)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ThoBur "Code") | [<img src="https://avatars.githubusercontent.com/u/1972329?v=4" width="110px;"/><br /><sub>Alexander Chibrikin</sub>](http://phpprofi.ru/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alek13 "Code") | [<img src="https://avatars.githubusercontent.com/u/438332?v=4" width="110px;"/><br /><sub>Anthony Winstanley</sub>](https://github.com/winstan)<br />[💻](https://github.com/snipe/snipe-it/commits?author=winstan "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3075214?v=4" width="110px;"/><br /><sub>Folke</sub>](https://github.com/fashberg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fashberg "Code") | [<img src="https://avatars.githubusercontent.com/u/1351571?v=4" width="110px;"/><br /><sub>Bennett Blodinger</sub>](https://github.com/benwa)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benwa "Code") | [<img src="https://avatars.githubusercontent.com/u/2974631?v=4" width="110px;"/><br /><sub>NMC</sub>](https://nmc.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ncareau "Code") | [<img src="https://avatars.githubusercontent.com/u/52182449?v=4" width="110px;"/><br /><sub>andres-baller</sub>](https://github.com/andres-baller)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andres-baller "Code") | [<img src="https://avatars.githubusercontent.com/u/67109348?v=4" width="110px;"/><br /><sub>sean-borg</sub>](https://github.com/sean-borg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sean-borg "Code") | [<img src="https://avatars.githubusercontent.com/u/32170051?v=4" width="110px;"/><br /><sub>EDVLeer</sub>](https://github.com/EDVLeer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EDVLeer "Code") | [<img src="https://avatars.githubusercontent.com/u/23075196?v=4" width="110px;"/><br /><sub>Kurokat</sub>](https://github.com/Kurokat)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Kurokat "Code") |
| [<img src="https://avatars.githubusercontent.com/u/915514?v=4" width="110px;"/><br /><sub>Kevin Köllmann</sub>](https://www.kevinkoellmann.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koelle25 "Code") | [<img src="https://avatars.githubusercontent.com/u/49025941?v=4" width="110px;"/><br /><sub>sw-mreyes</sub>](https://github.com/sw-mreyes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sw-mreyes "Code") | [<img src="https://avatars.githubusercontent.com/u/70129?v=4" width="110px;"/><br /><sub>Joel Pittet</sub>](https://pittet.ca)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joelpittet "Code") | [<img src="https://avatars.githubusercontent.com/u/792695?v=4" width="110px;"/><br /><sub>Eli Young</sub>](https://elyscape.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=elyscape "Code") | [<img src="https://avatars.githubusercontent.com/u/317015?v=4" width="110px;"/><br /><sub>Raell Dottin</sub>](https://github.com/raelldottin)<br />[💻](https://github.com/snipe/snipe-it/commits?author=raelldottin "Code") | [<img src="https://avatars.githubusercontent.com/u/1446856?v=4" width="110px;"/><br /><sub>Tom Misilo</sub>](https://github.com/misilot)<br />[💻](https://github.com/snipe/snipe-it/commits?author=misilot "Code") | [<img src="https://avatars.githubusercontent.com/u/4496300?v=4" width="110px;"/><br /><sub>David Davenne</sub>](http://david.davenne.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JuustoMestari "Code") |
| [<img src="https://avatars.githubusercontent.com/u/9255772?v=4" width="110px;"/><br /><sub>Mark Stenglein</sub>](https://markstenglein.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ocelotsloth "Code") | [<img src="https://avatars.githubusercontent.com/u/35658596?v=4" width="110px;"/><br /><sub>ajsy</sub>](https://github.com/ajsy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ajsy "Code") | [<img src="https://avatars.githubusercontent.com/u/3628035?v=4" width="110px;"/><br /><sub>Jan Kiesewetter</sub>](https://github.com/t3easy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=t3easy "Code") | [<img src="https://avatars.githubusercontent.com/u/79449630?v=4" width="110px;"/><br /><sub>Tetrachloromethane250</sub>](https://github.com/Tetrachloromethane250)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tetrachloromethane250 "Code") | [<img src="https://avatars.githubusercontent.com/u/22004482?v=4" width="110px;"/><br /><sub>Lars Kajes</sub>](https://www.kajes.se/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kajes "Code") | [<img src="https://avatars.githubusercontent.com/u/13993216?v=4" width="110px;"/><br /><sub>Joly0</sub>](https://github.com/Joly0)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Joly0 "Code") | [<img src="https://avatars.githubusercontent.com/u/1501022?v=4" width="110px;"/><br /><sub>theburger</sub>](https://github.com/limeless)<br />[💻](https://github.com/snipe/snipe-it/commits?author=limeless "Code") |
| [<img src="https://avatars.githubusercontent.com/u/36065681?v=4" width="110px;"/><br /><sub>David Valin Alonso</sub>](https://github.com/deivishome)<br />[💻](https://github.com/snipe/snipe-it/commits?author=deivishome "Code") | [<img src="https://avatars.githubusercontent.com/u/8290389?v=4" width="110px;"/><br /><sub>andreaci</sub>](https://github.com/andreaci)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreaci "Code") | [<img src="https://avatars.githubusercontent.com/u/1828542?v=4" width="110px;"/><br /><sub>Jelle Sebreghts</sub>](http://www.jellesebreghts.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Jelle-S "Code") | [<img src="https://avatars.githubusercontent.com/u/11180862?v=4" width="110px;"/><br /><sub>Michael Pietsch</sub>](https://github.com/Skywalker-11)<br /> | [<img src="https://avatars.githubusercontent.com/u/22068886?v=4" width="110px;"/><br /><sub>Masudul Haque Shihab</sub>](https://github.com/sh1hab)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sh1hab "Code") | [<img src="https://avatars.githubusercontent.com/u/16099942?v=4" width="110px;"/><br /><sub>Supapong Areeprasertkul</sub>](http://www.freedomdive.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zybersup "Code") | [<img src="https://avatars.githubusercontent.com/u/207358?v=4" width="110px;"/><br /><sub>Peter Sarossy</sub>](https://github.com/psarossy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=psarossy "Code") |
| [<img src="https://avatars.githubusercontent.com/u/11823649?v=4" width="110px;"/><br /><sub>Renee Margaret McConahy</sub>](https://github.com/nepella)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nepella "Code") | [<img src="https://avatars.githubusercontent.com/u/5553884?v=4" width="110px;"/><br /><sub>JohnnyPicnic</sub>](https://github.com/JohnnyPicnic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JohnnyPicnic "Code") | [<img src="https://avatars.githubusercontent.com/u/8799594?v=4" width="110px;"/><br /><sub>markbrule</sub>](https://github.com/markbrule)<br />[💻](https://github.com/snipe/snipe-it/commits?author=markbrule "Code") | [<img src="https://avatars.githubusercontent.com/u/1962801?v=4" width="110px;"/><br /><sub>Mike Campbell</sub>](https://github.com/mikecmpbll)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikecmpbll "Code") | [<img src="https://avatars.githubusercontent.com/u/11973217?v=4" width="110px;"/><br /><sub>tbrconnect</sub>](https://github.com/tbrconnect)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tbrconnect "Code") | [<img src="https://avatars.githubusercontent.com/u/12447225?v=4" width="110px;"/><br /><sub>kcoyo</sub>](https://github.com/kcoyo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kcoyo "Code") | [<img src="https://avatars.githubusercontent.com/u/494017?v=4" width="110px;"/><br /><sub>Travis Miller</sub>](https://travismiller.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=travismiller "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1975640?v=4" width="110px;"/><br /><sub>Evan Taylor</sub>](https://github.com/Delta5)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Delta5 "Code") | [<img src="https://avatars.githubusercontent.com/u/8735148?v=4" width="110px;"/><br /><sub>Petri Asikainen</sub>](https://github.com/PetriAsi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PetriAsi "Code") | [<img src="https://avatars.githubusercontent.com/u/11424540?v=4" width="110px;"/><br /><sub>derdeagle</sub>](https://github.com/derdeagle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derdeagle "Code") | [<img src="https://avatars.githubusercontent.com/u/176950?v=4" width="110px;"/><br /><sub>Mike Frysinger</sub>](https://wh0rd.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vapier "Code") | [<img src="https://avatars.githubusercontent.com/u/22044358?v=4" width="110px;"/><br /><sub>ALPHA</sub>](https://github.com/AL4AL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AL4AL "Code") | [<img src="https://avatars.githubusercontent.com/u/1042587?v=4" width="110px;"/><br /><sub>FliegenKLATSCH</sub>](https://www.ifern.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH "Code") | [<img src="https://avatars.githubusercontent.com/u/442138?v=4" width="110px;"/><br /><sub>Jeremy Price</sub>](https://github.com/jerm)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jerm "Code") |
| [<img src="https://avatars.githubusercontent.com/u/84392209?v=4" width="110px;"/><br /><sub>Toreg87</sub>](https://github.com/Toreg87)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Toreg87 "Code") | [<img src="https://avatars.githubusercontent.com/u/67638596?v=4" width="110px;"/><br /><sub>Matthew Nickson</sub>](https://github.com/Computroniks)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Computroniks "Code") | [<img src="https://avatars.githubusercontent.com/u/1646397?v=4" width="110px;"/><br /><sub>Jethro Nederhof</sub>](https://jethron.id.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jethron "Code") | [<img src="https://avatars.githubusercontent.com/u/23289826?v=4" width="110px;"/><br /><sub>Oskar Stenberg</sub>](https://github.com/01ste02)<br />[💻](https://github.com/snipe/snipe-it/commits?author=01ste02 "Code") | [<img src="https://avatars.githubusercontent.com/u/82208283?v=4" width="110px;"/><br /><sub>Robert-Azelis</sub>](https://github.com/Robert-Azelis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Robert-Azelis "Code") | [<img src="https://avatars.githubusercontent.com/u/60648387?v=4" width="110px;"/><br /><sub>Alexander William Smith</sub>](https://github.com/alwism)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alwism "Code") | [<img src="https://avatars.githubusercontent.com/u/24418301?v=4" width="110px;"/><br /><sub>LEITWERK AG</sub>](https://www.leitwerk.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leitwerk-ag "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1911435?v=4" width="110px;"/><br /><sub>Adam</sub>](http://www.aboutcher.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamboutcher "Code") | [<img src="https://avatars.githubusercontent.com/u/16104273?v=4" width="110px;"/><br /><sub>Ian</sub>](https://snksrv.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sneak-it "Code") | [<img src="https://avatars.githubusercontent.com/u/4023909?v=4" width="110px;"/><br /><sub>Shao Yu-Lung (Allen)</sub>](http://blog.bestlong.idv.tw/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bestlong "Code") | [<img src="https://avatars.githubusercontent.com/u/76475453?v=4" width="110px;"/><br /><sub>Haxatron</sub>](https://github.com/Haxatron)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Haxatron "Code") | [<img src="https://avatars.githubusercontent.com/u/88776392?v=4" width="110px;"/><br /><sub>PlaneNuts</sub>](https://github.com/PlaneNuts)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PlaneNuts "Code") | [<img src="https://avatars.githubusercontent.com/u/3842948?v=4" width="110px;"/><br /><sub>Bradley Coudriet</sub>](http://bjcpgd.cias.rit.edu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=exula "Code") | [<img src="https://avatars.githubusercontent.com/u/21966173?v=4" width="110px;"/><br /><sub>Dalton Durst</sub>](https://daltondur.st)<br />[💻](https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox "Code") |
| [<img src="https://avatars.githubusercontent.com/u/38761237?v=4" width="110px;"/><br /><sub>Alex Janes</sub>](https://adagiohealth.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adagioajanes "Code") | [<img src="https://avatars.githubusercontent.com/u/32387849?v=4" width="110px;"/><br /><sub>Nuraeil</sub>](https://github.com/nuraeil)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nuraeil "Code") | [<img src="https://avatars.githubusercontent.com/u/48162670?v=4" width="110px;"/><br /><sub>TenOfTens</sub>](https://github.com/TenOfTens)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [<img src="https://avatars.githubusercontent.com/u/9415391?v=4" width="110px;"/><br /><sub>waffle</sub>](https://ditisjens.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=insert-waffle "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/qveensi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qveensi "Code") | [<img src="https://avatars.githubusercontent.com/u/3839381?v=4" width="110px;"/><br /><sub>Achmad Fienan Rahardianto</sub>](https://github.com/veenone)<br />[💻](https://github.com/snipe/snipe-it/commits?author=veenone "Code") | [<img src="https://avatars.githubusercontent.com/u/97299851?v=4" width="110px;"/><br /><sub>Christian Weirich</sub>](https://github.com/chrisweirich)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1294403?v=4" width="110px;"/><br /><sub>denzfarid</sub>](https://github.com/denzfarid)<br /> | [<img src="https://avatars.githubusercontent.com/u/94018771?v=4" width="110px;"/><br /><sub>ntbutler-nbcs</sub>](https://github.com/ntbutler-nbcs)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs "Code") | [<img src="https://avatars.githubusercontent.com/u/172697?v=4" width="110px;"/><br /><sub>Naveen</sub>](https://naveensrinivasan.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=naveensrinivasan "Code") | [<img src="https://avatars.githubusercontent.com/u/55674383?v=4" width="110px;"/><br /><sub>Mike Roquemore</sub>](https://github.com/mikeroq)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikeroq "Code") | [<img src="https://avatars.githubusercontent.com/u/7991086?v=4" width="110px;"/><br /><sub>Daniel Reeder</sub>](https://github.com/reederda)<br />[🌍](#translation-reederda "Translation") [🌍](#translation-reederda "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=reederda "Code") | [<img src="https://avatars.githubusercontent.com/u/109422491?v=4" width="110px;"/><br /><sub>vickyjaura183</sub>](https://github.com/vickyjaura183)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vickyjaura183 "Code") | [<img src="https://avatars.githubusercontent.com/u/32363424?v=4" width="110px;"/><br /><sub>Peace</sub>](https://github.com/julian-piehl)<br />[💻](https://github.com/snipe/snipe-it/commits?author=julian-piehl "Code") |
| [<img src="https://avatars.githubusercontent.com/u/231528?v=4" width="110px;"/><br /><sub>Kyle Gordon</sub>](https://github.com/kylegordon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kylegordon "Code") | [<img src="https://avatars.githubusercontent.com/u/53009155?v=4" width="110px;"/><br /><sub>Katharina Drexel</sub>](http://www.bfh.ch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sunflowerbofh "Code") | [<img src="https://avatars.githubusercontent.com/u/1931963?v=4" width="110px;"/><br /><sub>David Sferruzza</sub>](https://david.sferruzza.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dsferruzza "Code") | [<img src="https://avatars.githubusercontent.com/u/19511639?v=4" width="110px;"/><br /><sub>Rick Nelson</sub>](https://github.com/rnelsonee)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rnelsonee "Code") | [<img src="https://avatars.githubusercontent.com/u/94169344?v=4" width="110px;"/><br /><sub>BasO12</sub>](https://github.com/BasO12)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BasO12 "Code") | [<img src="https://avatars.githubusercontent.com/u/111710123?v=4" width="110px;"/><br /><sub>Vautia</sub>](https://github.com/Vautia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Vautia "Code") | [<img src="https://avatars.githubusercontent.com/u/28321?v=4" width="110px;"/><br /><sub>Chris Hartjes</sub>](http://www.littlehart.net/atthekeyboard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chartjes "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2404584?v=4" width="110px;"/><br /><sub>geo-chen</sub>](https://github.com/geo-chen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=geo-chen "Code") | [<img src="https://avatars.githubusercontent.com/u/6006620?v=4" width="110px;"/><br /><sub>Phan Nguyen</sub>](https://github.com/nh314)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nh314 "Code") | [<img src="https://avatars.githubusercontent.com/u/115993812?v=4" width="110px;"/><br /><sub>Iisakki Jaakkola</sub>](https://github.com/StarlessNights)<br />[💻](https://github.com/snipe/snipe-it/commits?author=StarlessNights "Code") | [<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="110px;"/><br /><sub>Ikko Ashimine</sub>](https://bandism.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=eltociear "Code") | [<img src="https://avatars.githubusercontent.com/u/56871540?v=4" width="110px;"/><br /><sub>Lukas Fehling</sub>](https://github.com/lukasfehling)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukasfehling "Code") | [<img src="https://avatars.githubusercontent.com/u/1975990?v=4" width="110px;"/><br /><sub>Fernando Almeida</sub>](https://github.com/fernando-almeida)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fernando-almeida "Code") | [<img src="https://avatars.githubusercontent.com/u/116301219?v=4" width="110px;"/><br /><sub>akemidx</sub>](https://github.com/akemidx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akemidx "Code") |
| [<img src="https://avatars.githubusercontent.com/u/144778?v=4" width="110px;"/><br /><sub>Oguz Bilgic</sub>](http://oguz.site)<br />[💻](https://github.com/snipe/snipe-it/commits?author=oguzbilgic "Code") | [<img src="https://avatars.githubusercontent.com/u/9262438?v=4" width="110px;"/><br /><sub>Scooter Crawford</sub>](https://github.com/scoo73r)<br />[💻](https://github.com/snipe/snipe-it/commits?author=scoo73r "Code") | [<img src="https://avatars.githubusercontent.com/u/5957345?v=4" width="110px;"/><br /><sub>subdriven</sub>](https://github.com/subdriven)<br />[💻](https://github.com/snipe/snipe-it/commits?author=subdriven "Code") | [<img src="https://avatars.githubusercontent.com/u/658865?v=4" width="110px;"/><br /><sub>Andrew Savinykh</sub>](https://github.com/AndrewSav)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AndrewSav "Code") | [<img src="https://avatars.githubusercontent.com/u/1155067?v=4" width="110px;"/><br /><sub>Tadayuki Onishi</sub>](https://kenchan0130.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kenchan0130 "Code") | [<img src="https://avatars.githubusercontent.com/u/112496896?v=4" width="110px;"/><br /><sub>Florian</sub>](https://github.com/floschoepfer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=floschoepfer "Code") | [<img src="https://avatars.githubusercontent.com/u/7305753?v=4" width="110px;"/><br /><sub>Spencer Long</sub>](http://spencerlong.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=spencerrlongg "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1141514?v=4" width="110px;"/><br /><sub>Marcus Moore</sub>](https://github.com/marcusmoore)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcusmoore "Code") | [<img src="https://avatars.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://github.com/Mezzle)<br /> | [<img src="https://avatars.githubusercontent.com/u/5731963?v=4" width="110px;"/><br /><sub>dboth</sub>](http://dboth.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dboth "Code") | [<img src="https://avatars.githubusercontent.com/u/87536651?v=4" width="110px;"/><br /><sub>Zachary Fleck</sub>](https://github.com/zacharyfleck)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zacharyfleck "Code") | [<img src="https://avatars.githubusercontent.com/u/74609912?v=4" width="110px;"/><br /><sub>VIKAAS-A</sub>](https://github.com/vikaas-cyper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vikaas-cyper "Code") | [<img src="https://avatars.githubusercontent.com/u/88882041?v=4" width="110px;"/><br /><sub>Abdul Kareem</sub>](https://github.com/ak-piracha)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ak-piracha "Code") | [<img src="https://avatars.githubusercontent.com/u/111287779?v=4" width="110px;"/><br /><sub>NojoudAlshehri</sub>](https://github.com/NojoudAlshehri)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri "Code") |
| [<img src="https://avatars.githubusercontent.com/u/54367449?v=4" width="110px;"/><br /><sub>Stefan Stidl</sub>](https://github.com/stefanstidlffg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=stefanstidlffg "Code") | [<img src="https://avatars.githubusercontent.com/u/87803479?v=4" width="110px;"/><br /><sub>Quentin Aymard</sub>](https://github.com/qay21)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qay21 "Code") | [<img src="https://avatars.githubusercontent.com/u/5396871?v=4" width="110px;"/><br /><sub>Grant Le Roux</sub>](https://github.com/cram42)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cram42 "Code") | [<img src="https://avatars.githubusercontent.com/u/58479551?v=4" width="110px;"/><br /><sub>Bogdan</sub>](http://@singrity)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Singrity "Code") | [<img src="https://avatars.githubusercontent.com/u/3483684?v=4" width="110px;"/><br /><sub>mmanjos</sub>](https://github.com/mmanjos)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mmanjos "Code") | [<img src="https://avatars.githubusercontent.com/u/7429229?v=4" width="110px;"/><br /><sub>Abdelaziz Faki</sub>](https://azooz2014.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azooz2014 "Code") | [<img src="https://avatars.githubusercontent.com/u/47315739?v=4" width="110px;"/><br /><sub>bilias</sub>](https://github.com/bilias)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bilias "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2565989?v=4" width="110px;"/><br /><sub>coach1988</sub>](https://github.com/coach1988)<br />[💻](https://github.com/snipe/snipe-it/commits?author=coach1988 "Code") | [<img src="https://avatars.githubusercontent.com/u/11910225?v=4" width="110px;"/><br /><sub>MrM</sub>](https://github.com/mauro-miatello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mauro-miatello "Code") | [<img src="https://avatars.githubusercontent.com/u/60405354?v=4" width="110px;"/><br /><sub>koiakoia</sub>](https://github.com/koiakoia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koiakoia "Code") | [<img src="https://avatars.githubusercontent.com/u/5323832?v=4" width="110px;"/><br /><sub>Mustafa Online</sub>](https://github.com/mustafa-online)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mustafa-online "Code") | [<img src="https://avatars.githubusercontent.com/u/104601439?v=4" width="110px;"/><br /><sub>franceslui</sub>](https://github.com/franceslui)<br />[💻](https://github.com/snipe/snipe-it/commits?author=franceslui "Code") | [<img src="https://avatars.githubusercontent.com/u/125313163?v=4" width="110px;"/><br /><sub>Q4kK</sub>](https://github.com/Q4kK)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Q4kK "Code") | [<img src="https://avatars.githubusercontent.com/u/55590532?v=4" width="110px;"/><br /><sub>squintfox</sub>](https://github.com/squintfox)<br />[💻](https://github.com/snipe/snipe-it/commits?author=squintfox "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1380084?v=4" width="110px;"/><br /><sub>Jeff Clay</sub>](https://github.com/jeffclay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jeffclay "Code") | [<img src="https://avatars.githubusercontent.com/u/52716446?v=4" width="110px;"/><br /><sub>Phil J R</sub>](https://github.com/PP-JN-RL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PP-JN-RL "Code") | [<img src="https://avatars.githubusercontent.com/u/1496725?v=4" width="110px;"/><br /><sub>i_virus</sub>](https://www.corelight.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chandanchowdhury "Code") | [<img src="https://avatars.githubusercontent.com/u/1020541?v=4" width="110px;"/><br /><sub>Paul Grime</sub>](https://github.com/gitgrimbo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gitgrimbo "Code") | [<img src="https://avatars.githubusercontent.com/u/922815?v=4" width="110px;"/><br /><sub>Lee Porte</sub>](https://leeporte.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeePorte "Code") | [<img src="https://avatars.githubusercontent.com/u/23613427?v=4" width="110px;"/><br /><sub>BRYAN </sub>](https://github.com/bryanlopezinc)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Tests") | [<img src="https://avatars.githubusercontent.com/u/64061710?v=4" width="110px;"/><br /><sub>U-H-T</sub>](https://github.com/U-H-T)<br />[💻](https://github.com/snipe/snipe-it/commits?author=U-H-T "Code") |
| [<img src="https://avatars.githubusercontent.com/u/5395363?v=4" width="110px;"/><br /><sub>Matt Tyree</sub>](https://github.com/Tyree)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Tyree "Documentation") | [<img src="https://avatars.githubusercontent.com/u/292081?v=4" width="110px;"/><br /><sub>Florent Bervas</sub>](http://spoontux.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorentDotMe "Code") | [<img src="https://avatars.githubusercontent.com/u/4498077?v=4" width="110px;"/><br /><sub>Daniel Albertsen</sub>](https://ditscheri.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dbakan "Code") | [<img src="https://avatars.githubusercontent.com/u/100710244?v=4" width="110px;"/><br /><sub>r-xyz</sub>](https://github.com/r-xyz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=r-xyz "Code") | [<img src="https://avatars.githubusercontent.com/u/47491036?v=4" width="110px;"/><br /><sub>Steven Mainor</sub>](https://github.com/DrekiDegga)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DrekiDegga "Code") | [<img src="https://avatars.githubusercontent.com/u/65785975?v=4" width="110px;"/><br /><sub>arne-kroeger</sub>](https://github.com/arne-kroeger)<br />[💻](https://github.com/snipe/snipe-it/commits?author=arne-kroeger "Code") | [<img src="https://avatars.githubusercontent.com/u/167117705?v=4" width="110px;"/><br /><sub>Glukose1</sub>](https://github.com/Glukose1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1197791?v=4" width="110px;"/><br /><sub>Scarzy</sub>](https://github.com/Scarzy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | [<img src="https://avatars.githubusercontent.com/u/37372069?v=4" width="110px;"/><br /><sub>setpill</sub>](https://github.com/setpill)<br />[💻](https://github.com/snipe/snipe-it/commits?author=setpill "Code") | [<img src="https://avatars.githubusercontent.com/u/3755203?v=4" width="110px;"/><br /><sub>swift2512</sub>](https://github.com/swift2512)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aswift2512 "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=swift2512 "Code") | [<img src="https://avatars.githubusercontent.com/u/6136439?v=4" width="110px;"/><br /><sub>Darren Rainey</sub>](https://darrenraineys.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DarrenRainey "Code") | [<img src="https://avatars.githubusercontent.com/u/133033121?v=4" width="110px;"/><br /><sub>maciej-poleszczyk</sub>](https://github.com/maciej-poleszczyk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=maciej-poleszczyk "Code") | [<img src="https://avatars.githubusercontent.com/u/143394709?v=4" width="110px;"/><br /><sub>Sebastian Groß</sub>](https://github.com/sgross-emlix)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sgross-emlix "Code") | [<img src="https://avatars.githubusercontent.com/u/41107778?v=4" width="110px;"/><br /><sub>Anouar Touati</sub>](https://github.com/AnouarTouati)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AnouarTouati "Code") |
| [<img src="https://avatars.githubusercontent.com/u/25596663?v=4" width="110px;"/><br /><sub>aHVzY2g</sub>](https://github.com/aHVzY2g)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aHVzY2g "Code") | [<img src="https://avatars.githubusercontent.com/u/13408130?v=4" width="110px;"/><br /><sub>林博仁 Buo-ren Lin</sub>](https://brlin.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=brlin-tw "Code") | [<img src="https://avatars.githubusercontent.com/u/18550946?v=4" width="110px;"/><br /><sub>Adugna Gizaw</sub>](https://orbalia.pythonanywhere.com/)<br />[🌍](#translation-addex12 "Translation") | [<img src="https://avatars.githubusercontent.com/u/760989?v=4" width="110px;"/><br /><sub>Jesse Ostrander</sub>](https://github.com/jostrander)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jostrander "Code") | [<img src="https://avatars.githubusercontent.com/u/31522486?v=4" width="110px;"/><br /><sub>James M</sub>](https://github.com/azmcnutt)<br />[💻](https://github.com/snipe/snipe-it/commits?author=azmcnutt "Code") | [<img src="https://avatars.githubusercontent.com/u/5183146?v=4" width="110px;"/><br /><sub>Fiala06</sub>](https://github.com/Fiala06)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Fiala06 "Code") | [<img src="https://avatars.githubusercontent.com/u/28693782?v=4" width="110px;"/><br /><sub>Nathan Taylor</sub>](https://github.com/ntaylor-86)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntaylor-86 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/16699443?v=4" width="110px;"/><br /><sub>fvollmer</sub>](https://github.com/fvollmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fvollmer "Code") | [<img src="https://avatars.githubusercontent.com/u/109086466?v=4" width="110px;"/><br /><sub>36864</sub>](https://github.com/36864)<br />[💻](https://github.com/snipe/snipe-it/commits?author=36864 "Code") | [<img src="https://avatars.githubusercontent.com/u/365751?v=4" width="110px;"/><br /><sub>Daniel O'Connor</sub>](http://clockwerx.blogspot.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CloCkWeRX "Code") | [<img src="https://avatars.githubusercontent.com/u/102852568?v=4" width="110px;"/><br /><sub>BeatSpark</sub>](https://github.com/BeatSpark)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BeatSpark "Code") | [<img src="https://avatars.githubusercontent.com/u/59203607?v=4" width="110px;"/><br /><sub>mrdahbi</sub>](https://github.com/mrdahbi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mrdahbi "Code") | [<img src="https://avatars.githubusercontent.com/u/6661332?v=4" width="110px;"/><br /><sub>Fabian Schmid</sub>](http://sr.solutions)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chfsx "Code") | [<img src="https://avatars.githubusercontent.com/u/1288116?v=4" width="110px;"/><br /><sub>Chris Olin</sub>](https://www.chrisolin.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=realchrisolin "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3803132?v=4" width="110px;"/><br /><sub>Dan</sub>](https://github.com/mnemonicly)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mnemonicly "Code") | [<img src="https://avatars.githubusercontent.com/u/43917728?v=4" width="110px;"/><br /><sub>Nebel</sub>](https://github.com/NebelKreis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NebelKreis "Code") | [<img src="https://avatars.githubusercontent.com/u/132433803?v=4" width="110px;"/><br /><sub>test1337ahp</sub>](https://github.com/test1337ahp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=test1337ahp "Code") | [<img src="https://avatars.githubusercontent.com/u/1916566?v=4" width="110px;"/><br /><sub>Jonathon Reinhart</sub>](https://github.com/JonathonReinhart)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JonathonReinhart "Code") | [<img src="https://avatars.githubusercontent.com/u/484742?v=4" width="110px;"/><br /><sub>aranar-pro</sub>](https://github.com/aranar-pro)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aranar-pro "Code") | [<img src="https://avatars.githubusercontent.com/u/27019397?v=4" width="110px;"/><br /><sub>Phil</sub>](https://github.com/phil-flip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=phil-flip "Code") | [<img src="https://avatars.githubusercontent.com/u/6473460?v=4" width="110px;"/><br /><sub>Steffy Fort</sub>](https://fe80.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fe80 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3302372?v=4" width="110px;"/><br /><sub>Jared Busch</sub>](https://github.com/sorvani)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sorvani "Code") | [<img src="https://avatars.githubusercontent.com/u/111956991?v=4" width="110px;"/><br /><sub>seanborg-codethink</sub>](https://github.com/seanborg-codethink)<br />[💻](https://github.com/snipe/snipe-it/commits?author=seanborg-codethink "Code") | [<img src="https://avatars.githubusercontent.com/u/160669961?v=4" width="110px;"/><br /><sub>dkaatz</sub>](https://github.com/dkaatz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dkaatz "Code") | [<img src="https://avatars.githubusercontent.com/u/827205?v=4" width="110px;"/><br /><sub>Daniel Ruf</sub>](https://threema.id/74SF7MW6?text=)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DanielRuf "Code") | [<img src="https://avatars.githubusercontent.com/u/38883201?v=4" width="110px;"/><br /><sub>ahpaleus</sub>](https://github.com/ahpaleus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ahpaleus "Code") | [<img src="https://avatars.githubusercontent.com/u/22906055?v=4" width="110px;"/><br /><sub>Anh DAO-DUY</sub>](https://github.com/mink-adao-duy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mink-adao-duy "Code") | [<img src="https://avatars.githubusercontent.com/u/4723453?v=4" width="110px;"/><br /><sub>Andres Gutierrez</sub>](https://github.com/Serdnad)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Serdnad "Code") |
| [<img src="https://avatars.githubusercontent.com/u/111083379?v=4" width="110px;"/><br /><sub>Warren White</sub>](https://github.com/wewhite)<br />[💻](https://github.com/snipe/snipe-it/commits?author=wewhite "Code") | [<img src="https://avatars.githubusercontent.com/u/2809241?v=4" width="110px;"/><br /><sub>Robin Temme</sub>](https://robintemme.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=robintemme "Code") | [<img src="https://avatars.githubusercontent.com/u/47008367?v=4" width="110px;"/><br /><sub>herroworrd</sub>](https://github.com/herroworrd)<br />[💻](https://github.com/snipe/snipe-it/commits?author=herroworrd "Code") | [<img src="https://avatars.githubusercontent.com/u/28558609?v=4" width="110px;"/><br /><sub>vicleos</sub>](https://mubiu.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vicleos "Code") | [<img src="https://avatars.githubusercontent.com/u/1016780?v=4" width="110px;"/><br /><sub>Bob Clough</sub>](http://thinkl33t.co.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thinkl33t "Code") | [<img src="https://avatars.githubusercontent.com/u/10648463?v=4" width="110px;"/><br /><sub>Brandon Daniel Bailey</sub>](https://github.com/brandon-bailey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=brandon-bailey "Code") | [<img src="https://avatars.githubusercontent.com/u/23556080?v=4" width="110px;"/><br /><sub>Marc Bartelt</sub>](https://github.com/marcquark)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcquark "Code") |
| [<img src="https://avatars.githubusercontent.com/u/18286893?v=4" width="110px;"/><br /><sub>manu-crealytics</sub>](https://github.com/manu-crealytics)<br />[💻](https://github.com/snipe/snipe-it/commits?author=manu-crealytics "Code") | [<img src="https://avatars.githubusercontent.com/u/18245993?v=4" width="110px;"/><br /><sub>Konstantin Köhring</sub>](https://www.galaxy102.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Galaxy102 "Code") | [<img src="https://avatars.githubusercontent.com/u/685167?v=4" width="110px;"/><br /><sub>Deloz</sub>](https://deloz.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=deloz "Code") | [<img src="https://avatars.githubusercontent.com/u/2682426?v=4" width="110px;"/><br /><sub>Martin Berg</sub>](https://github.com/mbrrg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mbrrg "Code") | [<img src="https://avatars.githubusercontent.com/u/3694534?v=4" width="110px;"/><br /><sub>Richard Schwab</sub>](https://github.com/Nothing4You)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Nothing4You "Code") | [<img src="https://avatars.githubusercontent.com/u/8959676?v=4" width="110px;"/><br /><sub>Rick Heil</sub>](https://rickheil.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rickheil "Code") | [<img src="https://avatars.githubusercontent.com/u/397106?v=4" width="110px;"/><br /><sub>Ross Crawford-d'Heureuse</sub>](https://github.com/rosscdh)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rosscdh "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1621107?v=4" width="110px;"/><br /><sub>Ryan McGuire</sub>](https://github.com/McG800)<br />[💻](https://github.com/snipe/snipe-it/commits?author=McG800 "Code") | [<img src="https://avatars.githubusercontent.com/u/77835667?v=4" width="110px;"/><br /><sub>SBrown2021</sub>](https://github.com/SBrown2021)<br />[💻](https://github.com/snipe/snipe-it/commits?author=SBrown2021 "Code") | [<img src="https://avatars.githubusercontent.com/u/8780913?v=4" width="110px;"/><br /><sub>Serkan</sub>](https://github.com/serkanerip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=serkanerip "Code") | [<img src="https://avatars.githubusercontent.com/u/63188620?v=4" width="110px;"/><br /><sub>Shanks</sub>](https://www.yudelei.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Shankschn "Code") | [<img src="https://avatars.githubusercontent.com/u/198525698?v=4" width="110px;"/><br /><sub>cendai-mis</sub>](https://github.com/cendai-mis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cendai-mis "Code") | [<img src="https://avatars.githubusercontent.com/u/8724583?v=4" width="110px;"/><br /><sub>Shaun McPeck</sub>](https://smcpeck.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smcpeck "Code") | [<img src="https://avatars.githubusercontent.com/u/1378836?v=4" width="110px;"/><br /><sub>Stephen</sub>](https://github.com/snazy2000)<br />[💻](https://github.com/snipe/snipe-it/commits?author=snazy2000 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/4462739?v=4" width="110px;"/><br /><sub>Steven</sub>](http://nevets82.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Nevets82 "Code") | [<img src="https://avatars.githubusercontent.com/u/29017267?v=4" width="110px;"/><br /><sub>Mateus Villar</sub>](https://mateusvillar.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mateus-Romera "Code") | [<img src="https://avatars.githubusercontent.com/u/12749393?v=4" width="110px;"/><br /><sub>Matthew Zackschewski</sub>](https://github.com/mzack5020)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mzack5020 "Code") | [<img src="https://avatars.githubusercontent.com/u/12660103?v=4" width="110px;"/><br /><sub>Matthias Frei</sub>](https://www.frei.media/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=firefrei "Code") | [<img src="https://avatars.githubusercontent.com/u/824840?v=4" width="110px;"/><br /><sub>Nenad Ticaric</sub>](https://github.com/nticaric)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nticaric "Code") | [<img src="https://avatars.githubusercontent.com/u/706439?v=4" width="110px;"/><br /><sub>Nikolay Didenko</sub>](https://github.com/Scorcher)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Scorcher "Code") | [<img src="https://avatars.githubusercontent.com/u/5457236?v=4" width="110px;"/><br /><sub>Nuno Maduro</sub>](https://nunomaduro.com/sponsorships)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nunomaduro "Code") |
| [<img src="https://avatars.githubusercontent.com/u/8883074?v=4" width="110px;"/><br /><sub>Oliver Walerys</sub>](https://tektikhq.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=owalerys "Code") | [<img src="https://avatars.githubusercontent.com/u/3102039?v=4" width="110px;"/><br /><sub>R. Christian McDonald</sub>](https://keybase.io/rcmcdonald91)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rcmcdonald91 "Code") | [<img src="https://avatars.githubusercontent.com/u/1525581?v=4" width="110px;"/><br /><sub>nix</sub>](https://nnix.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nixn "Code") | [<img src="https://avatars.githubusercontent.com/u/55462380?v=4" width="110px;"/><br /><sub>octobunny</sub>](https://github.com/octobunny)<br />[💻](https://github.com/snipe/snipe-it/commits?author=octobunny "Code") | [<img src="https://avatars.githubusercontent.com/u/8558670?v=4" width="110px;"/><br /><sub>Ryan</sub>](https://github.com/sreyemnayr)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sreyemnayr "Code") | [<img src="https://avatars.githubusercontent.com/u/1501022?v=4" width="110px;"/><br /><sub>p3nj</sub>](https://benji.ltd/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=p3nj "Code") | [<img src="https://avatars.githubusercontent.com/u/6201617?v=4" width="110px;"/><br /><sub>Tim White</sub>](https://github.com/timwsuqld)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timwsuqld "Code") |
| [<img src="https://avatars.githubusercontent.com/u/22473767?v=4" width="110px;"/><br /><sub>yannikp</sub>](https://github.com/yannikp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=yannikp "Code") | [<img src="https://avatars.githubusercontent.com/u/20525448?v=4" width="110px;"/><br /><sub>victoria</sub>](https://github.com/viclou)<br />[💻](https://github.com/snipe/snipe-it/commits?author=viclou "Code") | [<img src="https://avatars.githubusercontent.com/u/40685314?v=4" width="110px;"/><br /><sub>Valentyn Tulub</sub>](https://github.com/valentyntu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=valentyntu "Code") | [<img src="https://avatars.githubusercontent.com/u/864520?v=4" width="110px;"/><br /><sub>Wouter van Os</sub>](http://wouter0100.nl/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Wouter0100 "Code") | [<img src="https://avatars.githubusercontent.com/u/3946540?v=4" width="110px;"/><br /><sub>Wyatt Teeter</sub>](https://www.linkedin.com/in/wyatt-teeter)<br />[💻](https://github.com/snipe/snipe-it/commits?author=xWyatt "Code") | [<img src="https://avatars.githubusercontent.com/u/1596124?v=4" width="110px;"/><br /><sub>Yorick Terweijden</sub>](https://github.com/terwey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=terwey "Code") | [<img src="https://avatars.githubusercontent.com/u/69298836?v=4" width="110px;"/><br /><sub>bmkalle</sub>](https://github.com/bmkalle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bmkalle "Code") |
| [<img src="https://avatars.githubusercontent.com/u/28403467?v=4" width="110px;"/><br /><sub>bricelabelle</sub>](https://github.com/bricelabelle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bricelabelle "Code") | [<img src="https://avatars.githubusercontent.com/u/97770090?v=4" width="110px;"/><br /><sub>corydlamb</sub>](https://github.com/corydlamb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=corydlamb "Code") | [<img src="https://avatars.githubusercontent.com/u/1154133?v=4" width="110px;"/><br /><sub>Diogenes S. Jesus</sub>](http://twitter.com/splash)<br />[💻](https://github.com/snipe/snipe-it/commits?author=splashx "Code") | [<img src="https://avatars.githubusercontent.com/u/5826629?v=4" width="110px;"/><br /><sub>D M</sub>](https://github.com/dkmansion)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dkmansion "Code") | [<img src="https://avatars.githubusercontent.com/u/14837699?v=4" width="110px;"/><br /><sub>Dustin B</sub>](https://github.com/Jarli01)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Jarli01 "Code") | [<img src="https://avatars.githubusercontent.com/u/348344?v=4" width="110px;"/><br /><sub>Fabian Grutschus</sub>](https://github.com/fabiang)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fabiang "Code") | [<img src="https://avatars.githubusercontent.com/u/1491053?v=4" width="110px;"/><br /><sub>MelonSmasher</sub>](https://github.com/MelonSmasher)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MelonSmasher "Code") |
| [<img src="https://avatars.githubusercontent.com/u/80526133?v=4" width="110px;"/><br /><sub>AlexanderWPapyrus</sub>](https://github.com/AlexanderWPapyrus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AlexanderWPapyrus "Code") | [<img src="https://avatars.githubusercontent.com/u/306231?v=4" width="110px;"/><br /><sub>Alexandr Hacicheant</sub>](https://github.com/disc)<br />[💻](https://github.com/snipe/snipe-it/commits?author=disc "Code") | [<img src="https://avatars.githubusercontent.com/u/3032891?v=4" width="110px;"/><br /><sub>Hex</sub>](https://hex128.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hex128 "Code") | [<img src="https://avatars.githubusercontent.com/u/8697942?v=4" width="110px;"/><br /><sub>Arunas Skirius</sub>](https://github.com/arukompas)<br />[💻](https://github.com/snipe/snipe-it/commits?author=arukompas "Code") | [<img src="https://avatars.githubusercontent.com/u/104396?v=4" width="110px;"/><br /><sub>Ben Periton</sub>](https://github.com/benperiton)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benperiton "Code") | [<img src="https://avatars.githubusercontent.com/u/11906832?v=4" width="110px;"/><br /><sub>Byron Wolfman</sub>](https://wolfman.dev/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=byronwolfman "Code") | [<img src="https://avatars.githubusercontent.com/u/56485508?v=4" width="110px;"/><br /><sub>Calvin</sub>](https://github.com/CalvinSchwartz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CalvinSchwartz "Code") |
| [<img src="https://avatars.githubusercontent.com/u/181059?v=4" width="110px;"/><br /><sub>Juan Font</sub>](https://github.com/juanfont)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juanfont "Code") | [<img src="https://avatars.githubusercontent.com/u/13137708?v=4" width="110px;"/><br /><sub>Juho Taipale</sub>](https://github.com/juhotaipale)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juhotaipale "Code") | [<img src="https://avatars.githubusercontent.com/u/1007419?v=4" width="110px;"/><br /><sub>Korvin Szanto</sub>](https://github.com/KorvinSzanto)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KorvinSzanto "Code") | [<img src="https://avatars.githubusercontent.com/u/8513053?v=4" width="110px;"/><br /><sub>Lewis Foster</sub>](https://lewisfoster.foo/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sniff122 "Code") | [<img src="https://avatars.githubusercontent.com/u/33877541?v=4" width="110px;"/><br /><sub>Logan Swartzendruber</sub>](https://github.com/loganswartz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=loganswartz "Code") | [<img src="https://avatars.githubusercontent.com/u/1156208?v=4" width="110px;"/><br /><sub>Lorenzo P.</sub>](https://github.com/lopezio)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lopezio "Code") | [<img src="https://avatars.githubusercontent.com/u/33946590?v=4" width="110px;"/><br /><sub>Lukas Jung</sub>](https://github.com/m4us1ne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=m4us1ne "Code") |
| [<img src="https://avatars.githubusercontent.com/u/10965027?v=4" width="110px;"/><br /><sub>Ellie</sub>](https://leafedfox.xyz/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeafedFox "Code") | [<img src="https://avatars.githubusercontent.com/u/20960555?v=4" width="110px;"/><br /><sub>GA Stamper</sub>](https://github.com/gastamper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gastamper "Code") | [<img src="https://avatars.githubusercontent.com/u/206553556?v=4" width="110px;"/><br /><sub>Guillaume Lefranc</sub>](https://github.com/gl-pup)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gl-pup "Code") | [<img src="https://avatars.githubusercontent.com/u/733892?v=4" width="110px;"/><br /><sub>Hajo Möller</sub>](https://github.com/dasjoe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dasjoe "Code") | [<img src="https://avatars.githubusercontent.com/u/3420063?v=4" width="110px;"/><br /><sub>Istvan Basa</sub>](https://github.com/pottom)<br />[💻](https://github.com/snipe/snipe-it/commits?author=pottom "Code") | [<img src="https://avatars.githubusercontent.com/u/810824?v=4" width="110px;"/><br /><sub>JJ Asghar</sub>](https://jjasghar.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jjasghar "Code") | [<img src="https://avatars.githubusercontent.com/u/40404495?v=4" width="110px;"/><br /><sub>James E. Msenga</sub>](https://github.com/JemCdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JemCdo "Code") |
| [<img src="https://avatars.githubusercontent.com/u/6865786?v=4" width="110px;"/><br /><sub>Jan Felix Wiebe</sub>](https://github.com/jfwiebe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jfwiebe "Code") | [<img src="https://avatars.githubusercontent.com/u/43412008?v=4" width="110px;"/><br /><sub>Jo Drexl</sub>](https://www.nfon.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=drexljo "Code") | [<img src="https://avatars.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>Austin Sasko</sub>](https://github.com/austinsasko)<br />[💻](https://github.com/snipe/snipe-it/commits?author=austinsasko "Code") | [<img src="https://avatars.githubusercontent.com/u/4875039?v=4" width="110px;"/><br /><sub>Jasson</sub>](http://jassoncordones.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JassonCordones "Code") | [<img src="https://avatars.githubusercontent.com/u/76069640?v=4" width="110px;"/><br /><sub>Okean</sub>](https://github.com/Tinyblargon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tinyblargon "Code") | [<img src="https://avatars.githubusercontent.com/u/6515064?v=4" width="110px;"/><br /><sub>Alejandro Medrano</sub>](https://www.lst.tfo.upm.es/alejandro-medrano/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=amedranogil "Code") | [<img src="https://avatars.githubusercontent.com/u/58696401?v=4" width="110px;"/><br /><sub>Lukas Kraic</sub>](https://github.com/lukaskraic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukaskraic "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1571724?v=4" width="110px;"/><br /><sub>Герхард PICCORO Lenz McKAY </sub>](https://github-readme-stats.vercel.app/api?username=mckaygerhard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mckaygerhard "Code") | [<img src="https://avatars.githubusercontent.com/u/15015119?v=4" width="110px;"/><br /><sub>Johannes Pollitt</sub>](https://github.com/FlorestanII)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorestanII "Code") | [<img src="https://avatars.githubusercontent.com/u/14185442?v=4" width="110px;"/><br /><sub>Michael Strobel</sub>](https://strobelm.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=strobelm "Code") | [<img src="https://avatars.githubusercontent.com/u/634790?v=4" width="110px;"/><br /><sub>Nicky West</sub>](http://nickwest.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nickwest "Code") | [<img src="https://avatars.githubusercontent.com/u/1347327?v=4" width="110px;"/><br /><sub>akaspeh1</sub>](https://github.com/akaspeh1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akaspeh1 "Code") |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!

View File

@@ -1,8 +1,8 @@
FROM ubuntu:22.04
FROM ubuntu:24.04
LABEL maintainer="Brady Wetherington <bwetherington@grokability.com>"
# No need to add `apt-get clean` here, reference:
# - https://github.com/snipe/snipe-it/pull/9201
# - https://github.com/grokability/snipe-it/pull/9201
# - https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get
RUN export DEBIAN_FRONTEND=noninteractive; \
@@ -14,16 +14,16 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
apt-utils \
apache2 \
apache2-bin \
libapache2-mod-php8.1 \
php8.1-curl \
php8.1-ldap \
php8.1-mysql \
php8.1-gd \
php8.1-xml \
php8.1-mbstring \
php8.1-zip \
php8.1-bcmath \
php8.1-redis \
libapache2-mod-php8.3 \
php8.3-curl \
php8.3-ldap \
php8.3-mysql \
php8.3-gd \
php8.3-xml \
php8.3-mbstring \
php8.3-zip \
php8.3-bcmath \
php8.3-redis \
php-memcached \
patch \
curl \
@@ -40,8 +40,7 @@ autoconf \
libc-dev \
libldap-common \
pkg-config \
libmcrypt-dev \
php8.1-dev \
php8.3-dev \
ca-certificates \
unzip \
dnsutils \
@@ -51,18 +50,13 @@ dnsutils \
RUN curl -L -O https://github.com/pear/pearweb_phars/raw/master/go-pear.phar
RUN php go-pear.phar
RUN pecl install mcrypt
RUN bash -c "echo extension=/usr/lib/php/20210902/mcrypt.so > /etc/php/8.1/mods-available/mcrypt.ini"
RUN phpenmod mcrypt
RUN phpenmod gd
RUN phpenmod bcmath
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.1/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.1/cli/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.3/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.3/cli/php.ini
RUN useradd -m --uid 1000 --gid 50 docker
RUN useradd -m --uid 10000 --gid 50 docker
RUN echo export APACHE_RUN_USER=docker >> /etc/apache2/envvars
RUN echo export APACHE_RUN_GROUP=staff >> /etc/apache2/envvars
@@ -105,7 +99,7 @@ RUN \
&& ln -fs "/var/lib/snipeit/keys/ldap_client_tls.cert" "/var/www/html/storage/ldap_client_tls.cert" \
&& ln -fs "/var/lib/snipeit/keys/ldap_client_tls.key" "/var/www/html/storage/ldap_client_tls.key" \
&& chown docker "/var/lib/snipeit/keys/" \
&& chown -h docker "/var/www/html/storage/" \
&& chown -Rh docker "/var/www/html/storage/" \
&& chmod +x /var/www/html/artisan \
&& echo "Finished setting up application in /var/www/html"
@@ -116,7 +110,7 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Get dependencies
USER docker
RUN composer install --no-dev --working-dir=/var/www/html
RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html && rm -rf /var/www/html/vendor/*/*/.git
USER root
############### APPLICATION INSTALL/INIT #################

View File

@@ -1,34 +1,35 @@
FROM alpine:3.17.3
FROM alpine:3.19
# Apache + PHP
RUN apk add --no-cache \
apache2 \
php81 \
php81-common \
php81-apache2 \
php81-curl \
php81-ldap \
php81-mysqli \
php81-gd \
php81-xml \
php81-mbstring \
php81-zip \
php81-ctype \
php81-tokenizer \
php81-pdo_mysql \
php81-openssl \
php81-bcmath \
php81-phar \
php81-json \
php81-iconv \
php81-fileinfo \
php81-simplexml \
php81-session \
php81-dom \
php81-xmlwriter \
php81-xmlreader \
php81-sodium \
php81-redis \
php81-pecl-memcached \
php82 \
php82-common \
php82-apache2 \
php82-curl \
php82-ldap \
php82-mysqli \
php82-gd \
php82-xml \
php82-mbstring \
php82-zip \
php82-ctype \
php82-tokenizer \
php82-pdo_mysql \
php82-openssl \
php82-bcmath \
php82-phar \
php82-json \
php82-iconv \
php82-fileinfo \
php82-simplexml \
php82-session \
php82-dom \
php82-xmlwriter \
php82-xmlreader \
php82-sodium \
php82-redis \
php82-pecl-memcached \
php82-exif \
curl \
wget \
vim \
@@ -41,7 +42,7 @@ COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
# Where apache's PID lives
RUN mkdir -p /run/apache2 && chown apache:apache /run/apache2
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php81/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php82/php.ini
COPY docker/000-default-2.4.conf /etc/apache2/conf.d/default.conf
# Enable mod_rewrite
@@ -72,18 +73,18 @@ RUN mkdir -p /var/www/.composer && chown apache /var/www/.composer
# Install dependencies
USER apache
RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html
RUN COMPOSER_CACHE_DIR=/dev/null composer install --working-dir=/var/www/html
USER root
VOLUME ["/var/lib/snipeit"]
# Entrypoints
COPY docker/entrypoint_alpine.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Startup script
COPY docker/startup_alpine.sh /startup.sh
RUN chmod +x /startup.sh
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/entrypoint.sh"]
CMD ["/startup.sh"]
EXPOSE 80

View File

@@ -70,7 +70,7 @@ COPY --from=composer /usr/bin/composer /usr/local/bin
ARG COMPOSER_ALLOW_SUPERUSER=1
RUN set -eux; \
# Download and extract snipeit tarball
curl -o snipeit.tar.gz -fL "https://github.com/snipe/snipe-it/archive/v$SNIPEIT_RELEASE.tar.gz"; \
curl -o snipeit.tar.gz -fL "https://github.com/grokability/snipe-it/archive/v$SNIPEIT_RELEASE.tar.gz"; \
tar -xzf snipeit.tar.gz --strip-components=1 -C /var/www/html/; \
rm snipeit.tar.gz; \
# Install composer php dependencies
@@ -97,7 +97,7 @@ RUN set -eux; \
VOLUME [ "/var/lib/snipeit" ]
COPY --chown=www-data:www-data docker/docker-secrets.env /var/www/html/.env
COPY --chmod=655 docker/docker-entrypoint.sh /usr/local/bin/docker-snipeit-entrypoint
COPY --chmod=655 docker/startup_alpine_fpm.sh /startup.sh
COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
ENTRYPOINT [ "/usr/local/bin/docker-snipeit-entrypoint" ]
CMD [ "/usr/local/bin/docker-php-entrypoint", "php-fpm" ]
ENTRYPOINT [ "/startup.sh" ]
CMD [ "/startup.sh", "php-fpm" ]

163
README.md
View File

@@ -1,15 +1,33 @@
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Twitter Follow](https://img.shields.io/twitter/follow/snipeitapp.svg?style=social)](https://twitter.com/snipeitapp) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=snipe/snipe-it&amp;utm_campaign=Badge_Grade)
[![All Contributors](https://img.shields.io/badge/all_contributors-326-orange.svg?style=flat-square)](#contributors) [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/yZFtShAcKk) [![huntr](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev)
![snipe-it-by-grok](https://github.com/grokability/snipe-it/assets/197404/b515673b-c7c8-4d9a-80f5-9fa58829a602)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/804dd1beb14a41f38810ab77d64fc4fc)](https://app.codacy.com/gh/grokability/snipe-it/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![Tests](https://github.com/grokability/snipe-it/actions/workflows/tests.yml/badge.svg)](https://github.com/grokability/snipe-it/actions/workflows/tests.yml)
[![All Contributors](https://img.shields.io/badge/all_contributors-331-orange.svg?style=flat-square)](#contributing) [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/yZFtShAcKk)
## Snipe-IT - Open Source Asset Management System
This is a FOSS project for asset management in IT Operations. Knowing who has which laptop, when it was purchased in order to depreciate it correctly, handling software licenses, etc.
It is built on [Laravel 8](http://laravel.com).
It is built on [Laravel 11](http://laravel.com).
Snipe-IT is actively developed and we [release quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
Snipe-IT is actively developed and we [release quite frequently](https://github.com/grokability/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
> [!TIP]
> __This is web-based software__. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, any flavor of Linux, as well as Windows, and we have a [Docker image](https://snipe-it.readme.io/docs/docker) available if that's what you're into.
-----
### Table of Contents
* [Installation](#installation)
* [User's Manual](#users-manual)
* [Bug Reports & Feature Requests](#bug-reports--feature-requests)
* [Security](#security)
* [Upgrading](#upgrading)
* [Translations!](#translations-)
* [Libraries, Modules & Related Projects](#libraries-modules--related-projects)
* [Join the Community!](#join-the-community)
* [Contributing](#contributing)
* [Announcement List](#announcement-list)
__This is web-based software__. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows, and we have a [Docker image](https://snipe-it.readme.io/docs/docker) available if that's what you're into.
-----
@@ -19,8 +37,6 @@ For instructions on installing and configuring Snipe-IT on your server, check ou
If you're having trouble with the installation, please check the [Common Issues](https://snipe-it.readme.io/docs/common-issues) and [Getting Help](https://snipe-it.readme.io/docs/getting-help) documentation, and search this repository's open *and* closed issues for help.
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
-----
### User's Manual
For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.io/docs/overview).
@@ -28,23 +44,25 @@ For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.i
-----
### Bug Reports & Feature Requests
Feel free to check out the [GitHub Issues for this project](https://github.com/snipe/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open *and* closed) to see if your question has already been answered before opening a new issue.
Feel free to check out the [GitHub Issues for this project](https://github.com/grokability/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open *and* closed) to see if your question has already been answered before opening a new issue.
**PLEASE see the [Getting Help Guidelines](https://snipe-it.readme.io/docs/getting-help) and [Common Issues](https://snipe-it.readme.io/docs/common-issues) before opening a ticket, and be sure to complete all of the questions in the Github Issue template to help us to help you as quickly as possible.**
> [!IMPORTANT]
> **PLEASE see the [Getting Help Guidelines](https://snipe-it.readme.io/docs/getting-help) and [Common Issues](https://snipe-it.readme.io/docs/common-issues) before opening a ticket, and be sure to complete all of the questions in the Github Issue template to help us to help you as quickly as possible.**
-----
### Security
> [!IMPORTANT]
> **To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.**
-----
### Upgrading
Please see the [upgrading documentation](https://snipe-it.readme.io/docs/upgrading) for instructions on upgrading Snipe-IT.
------
### Announcement List
To be notified of important news (such as new releases, security advisories, etc), [sign up for our list](http://eepurl.com/XyZKz). We'll never sell or give away your info, and we'll only email you when it's important.
------
### Translations!
Please see the [translations documentation](https://snipe-it.readme.io/docs/translations) for information about available languages and how to add translations to Snipe-IT.
@@ -55,98 +73,75 @@ Please see the [translations documentation](https://snipe-it.readme.io/docs/tran
Since the release of the JSON REST API, several third-party developers have been developing modules and libraries to work with Snipe-IT.
- [Python Module](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer)
> [!NOTE]
> As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :)
#### Libraries & Modules
- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey)
- [InQRy -unmaintained-](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [SnipeitPS](https://github.com/snazy2000/SnipeitPS) by [@snazy2000](https://github.com/snazy2000) - Powershell API Wrapper for Snipe-it
- [jamf2snipe](https://github.com/grokability/jamf2snipe) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
- [jamf-snipe-rename](https://macblog.org/jamf-snipe-rename/) - Python script to rename computers in Jamf from Snipe-IT
- [Marksman](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Snipe-IT plugin for Jira Service Desk](https://marketplace.atlassian.com/apps/1220964/snipe-it-for-jira)
- [Python 3 CSV importer](https://github.com/gastamper/snipeit-csvimporter) - allows importing assets into Snipe-IT based on Item Name rather than Asset Tag.
- [Snipe-IT Kubernetes Helm Chart](https://github.com/t3n/helm-charts/tree/master/snipeit) - For more information, [click here](https://hub.helm.sh/charts/t3n/snipeit).
- [Snipe-IT Bulk Edit](https://github.com/bricelabelle/snipe-it-bulkedit) - Google Script files to use Google Sheets as a bulk checkout/checkin/edit tool for Snipe-it.
- [MosyleSnipeSync](https://github.com/RodneyLeeBrands/MosyleSnipeSync) by [@Karpadiem](https://github.com/Karpadiem) - Python script to synchronize information between Mosyle and Snipe-IT
- [Snipe-IT Bulk Edit](https://github.com/bricelabelle/snipe-it-bulkedit) - Google Script files to use Google Sheets as a bulk checkout/checkin/edit tool for Snipe-IT.
- [MosyleSnipeSync](https://github.com/RodneyLeeBrands/MosyleSnipeSync) by [@Karpadiem](https://github.com/Karpadiem) - Python script to synchronize information between Mosyle and Snipe-IT.
- [WWW::SnipeIT](https://github.com/SEDC/perl-www-snipeit) by [@SEDC](https://github.com/SEDC) - perl module for accessing the API
- [UniFi to Snipe-IT](https://github.com/RodneyLeeBrands/UnifiSnipeSync) by [@karpadiem](https://github.com/karpadiem) - Python script that synchronizes UniFi devices with Snipe-IT.
- [UniFi to Snipe-IT](https://www.edtechirl.com/p/snipe-it-and-azure-asset-management) originally by [@karpadiem](https://github.com/karpadiem) - Python script that synchronizes UniFi devices with Snipe-IT.
- [Kandji2Snipe](https://github.com/grokability/kandji2snipe) by [@briangoldstein](https://github.com/briangoldstein) - Python script that synchronizes Kandji with Snipe-IT.
- [SnipeAgent](https://github.com/ReticentRobot/SnipeAgent) by @ReticentRobot - Windows agent for Snipe-IT
As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :)
- [SnipeAgent](https://github.com/ReticentRobot/SnipeAgent) by [@ReticentRobot](https://github.com/ReticentRobot) - Windows agent for Snipe-IT.
- [Gate Pass Generator](https://github.com/cha7uraAE/snipe-it-gate-pass-system) by [@cha7uraAE](https://github.com/cha7uraAE) - A Streamlit application for generating gate passes based on hardware data from a Snipe-IT API.
- [InQRy (archived)](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [Marksman (archived)](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Python Module (archived)](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer)
We also have a handful of [Google Apps scripts](https://github.com/grokability/google-apps-scripts-for-snipe-it) to help with various tasks.
#### Mobile Apps
We're currently working on our own mobile app, but in the meantime, check out these third-party apps that work with Snipe-IT:
- [SnipeMate](https://snipemate.app/) (iOS, Google Play, Huawei AppGallery) by Mars Technology
- [Snipe-Scan](https://apps.apple.com/do/app/snipe-scan/id6744179400?uo=2) (iOS) by Nicolas Maton
- [Snipe-IT Assets Management](https://play.google.com/store/apps/details?id=com.diegogarciadev.assetsmanager.snipeit&hl=en&pli=1) (Google Play) by DiegoGarciaDEV
- [AssetX](https://apps.apple.com/my/app/assetx-for-snipe-it/id6741996196?uo=2) (iOS) for Snipe-IT by Rishi Gupta
-----
### Join the Community!
- **[Join our Discord](https://discord.gg/yZFtShAcKk)!** Its full of great people. We even wrote about it [here](https://grokstar.dev/culture/2024/06/the-unlikely-rise-of-discord-as-a-support-channel/)!
- **Follow us on Bluesky** at [@snipeitapp.com](https://bsky.app/profile/snipeitapp.com)
- **Follow us on Mastodon** at [hachyderm.io/@grokability](https://hachyderm.io/@grokability)
- **Follow our blog** at [Grokstar.Dev](https://grokstar.dev)
- **Subscribe here** on Github for notifications about new releases. (We recommend selecting "Releases" only for most users - this repo can get noisy.)
-----
### Contributing
Please see the documentation on [contributing and developing for Snipe-IT](https://snipe-it.readme.io/docs/contributing-overview).
**Please refrain from submitting issues or pull requests generated by fully-automated tools. Maintainers reserve the right, at their sole discretion, to close such submissions and to block any account responsible for them.**
Contributions should follow from a human-to-human discussion in the form of an issue for the best chances of being merged into the core project. (Sometimes we might already be working on that feature, sometimes we've decided against )
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
Please see the complete documentation on [contributing and developing for Snipe-IT](https://snipe-it.readme.io/docs/contributing-overview).
This project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
The ERD is available [online here](https://drawsql.app/templates/snipe-it).
-----
### Security
To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.
Be sure to check out all of the [amazing people](CONTRIBUTORS.md) that have contributed to Snipe-IT over the years!
-----
### Contributors
### Star History
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
[![Star History Chart](https://api.star-history.com/svg?repos=grokability/snipe-it&type=Date)](https://www.star-history.com/#grokability/snipe-it&Date)
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
| [<img src="https://avatars3.githubusercontent.com/u/197404?v=3" width="110px;"/><br /><sub>snipe</sub>](http://www.snipe.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=snipe "Code") [🚇](#infra-snipe "Infrastructure (Hosting, Build-Tools, etc)") [📖](https://github.com/snipe/snipe-it/commits?author=snipe "Documentation") [⚠️](https://github.com/snipe/snipe-it/commits?author=snipe "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asnipe "Bug reports") [🎨](#design-snipe "Design") [👀](#review-snipe "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/36335?v=3" width="110px;"/><br /><sub>Brady Wetherington</sub>](http://www.uberbrady.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=uberbrady "Code") [📖](https://github.com/snipe/snipe-it/commits?author=uberbrady "Documentation") [🚇](#infra-uberbrady "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-uberbrady "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/3803132?v=3" width="110px;"/><br /><sub>Daniel Meltzer</sub>](https://github.com/dmeltzer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Tests") [📖](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1609106?v=3" width="110px;"/><br /><sub>Michael T</sub>](http://www.tuckertechonline.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mtucker6784 "Code") | [<img src="https://avatars2.githubusercontent.com/u/3274937?v=3" width="110px;"/><br /><sub>madd15</sub>](https://github.com/madd15)<br />[📖](https://github.com/snipe/snipe-it/commits?author=madd15 "Documentation") [💬](#question-madd15 "Answering Questions") | [<img src="https://avatars2.githubusercontent.com/u/894126?v=3" width="110px;"/><br /><sub>Vincent Sposato</sub>](https://github.com/vsposato)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vsposato "Code") | [<img src="https://avatars0.githubusercontent.com/u/1639757?v=3" width="110px;"/><br /><sub>Andrea Bergamasco</sub>](https://github.com/vjandrea)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vjandrea "Code") |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [<img src="https://avatars0.githubusercontent.com/u/10640152?v=3" width="110px;"/><br /><sub>Karol</sub>](https://github.com/kpawelski)<br />[🌍](#translation-kpawelski "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=kpawelski "Code") | [<img src="https://avatars3.githubusercontent.com/u/600106?v=3" width="110px;"/><br /><sub>morph027</sub>](http://blog.morph027.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=morph027 "Code") | [<img src="https://avatars3.githubusercontent.com/u/22935755?v=3" width="110px;"/><br /><sub>fvleminckx</sub>](https://github.com/fvleminckx)<br />[🚇](#infra-fvleminckx "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars2.githubusercontent.com/u/15633547?v=3" width="110px;"/><br /><sub>itsupportcmsukorg</sub>](https://github.com/itsupportcmsukorg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=itsupportcmsukorg "Code") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aitsupportcmsukorg "Bug reports") | [<img src="https://avatars3.githubusercontent.com/u/12373799?v=3" width="110px;"/><br /><sub>Frank</sub>](https://override.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=base-zero "Code") | [<img src="https://avatars0.githubusercontent.com/u/10137?v=3" width="110px;"/><br /><sub>Deleted user</sub>](https://github.com/ghost)<br />[🌍](#translation-ghost "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=ghost "Code") | [<img src="https://avatars1.githubusercontent.com/u/10802313?v=3" width="110px;"/><br /><sub>tiagom62</sub>](https://github.com/tiagom62)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tiagom62 "Code") [🚇](#infra-tiagom62 "Infrastructure (Hosting, Build-Tools, etc)") |
| [<img src="https://avatars3.githubusercontent.com/u/2389047?v=3" width="110px;"/><br /><sub>Ryan Stafford</sub>](https://github.com/rystaf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rystaf "Code") | [<img src="https://avatars2.githubusercontent.com/u/10345935?v=3" width="110px;"/><br /><sub>Eammon Hanlon</sub>](https://github.com/ehanlon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ehanlon "Code") | [<img src="https://avatars0.githubusercontent.com/u/441924?v=3" width="110px;"/><br /><sub>zjean</sub>](https://github.com/zjean)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zjean "Code") | [<img src="https://avatars0.githubusercontent.com/u/12660103?v=3" width="110px;"/><br /><sub>Matthias Frei</sub>](http://www.frei.media)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FREImedia "Code") | [<img src="https://avatars0.githubusercontent.com/u/3767518?v=3" width="110px;"/><br /><sub>opsydev</sub>](https://github.com/opsydev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=opsydev "Code") | [<img src="https://avatars1.githubusercontent.com/u/82290?v=3" width="110px;"/><br /><sub>Daniel Dreier</sub>](http://www.ddreier.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ddreier "Code") | [<img src="https://avatars0.githubusercontent.com/u/23448?v=3" width="110px;"/><br /><sub>Nikolai Prokoschenko</sub>](http://rassie.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rassie "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/13452757?v=3" width="110px;"/><br /><sub>Drew</sub>](https://github.com/YetAnotherCodeMonkey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=YetAnotherCodeMonkey "Code") | [<img src="https://avatars0.githubusercontent.com/u/1342320?v=3" width="110px;"/><br /><sub>Walter</sub>](https://github.com/merid14)<br />[💻](https://github.com/snipe/snipe-it/commits?author=merid14 "Code") | [<img src="https://avatars3.githubusercontent.com/u/11254614?v=3" width="110px;"/><br /><sub>Petr Baloun</sub>](https://github.com/balous)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balous "Code") | [<img src="https://avatars0.githubusercontent.com/u/6117660?v=3" width="110px;"/><br /><sub>reidblomquist</sub>](https://github.com/reidblomquist)<br />[📖](https://github.com/snipe/snipe-it/commits?author=reidblomquist "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/539914?v=3" width="110px;"/><br /><sub>Mathieu Kooiman</sub>](https://github.com/mathieuk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mathieuk "Code") | [<img src="https://avatars3.githubusercontent.com/u/6606421?v=3" width="110px;"/><br /><sub>csayre</sub>](https://github.com/csayre)<br />[📖](https://github.com/snipe/snipe-it/commits?author=csayre "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/768488?v=3" width="110px;"/><br /><sub>Adam Dunson</sub>](https://github.com/adamdunson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamdunson "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/5547470?v=3" width="110px;"/><br /><sub>Hereward</sub>](https://github.com/thehereward)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thehereward "Code") | [<img src="https://avatars0.githubusercontent.com/u/5802977?v=3" width="110px;"/><br /><sub>swoopdk</sub>](https://github.com/swoopdk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=swoopdk "Code") | [<img src="https://avatars1.githubusercontent.com/u/3470403?v=3" width="110px;"/><br /><sub>Abdullah Alansari</sub>](https://linkedin.com/in/ahimta)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Ahimta "Code") | [<img src="https://avatars0.githubusercontent.com/u/796443?v=3" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MicaelRodrigues "Code") | [<img src="https://avatars0.githubusercontent.com/u/614564?v=3" width="110px;"/><br /><sub>Patrick Gallagher</sub>](http://macadmincorner.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=patgmac "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/7165922?v=3" width="110px;"/><br /><sub>Miliamber</sub>](https://github.com/Miliamber)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Miliamber "Code") | [<img src="https://avatars3.githubusercontent.com/u/861766?v=3" width="110px;"/><br /><sub>hawk554</sub>](https://github.com/hawk554)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hawk554 "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1695622?v=3" width="110px;"/><br /><sub>Justin Kerr</sub>](http://jbirdkerr.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbirdkerr "Code") | [<img src="https://avatars3.githubusercontent.com/u/11426176?v=3" width="110px;"/><br /><sub>Ira W. Snyder</sub>](http://www.irasnyder.com/devel/)<br />[📖](https://github.com/snipe/snipe-it/commits?author=irasnyd "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/2475759?v=3" width="110px;"/><br /><sub>Aladin Alaily</sub>](https://github.com/aalaily)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aalaily "Code") | [<img src="https://avatars0.githubusercontent.com/u/10247644?v=3" width="110px;"/><br /><sub>Chase Hansen</sub>](https://github.com/kobie-chasehansen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kobie-chasehansen "Code") [💬](#question-kobie-chasehansen "Answering Questions") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Akobie-chasehansen "Bug reports") | [<img src="https://avatars2.githubusercontent.com/u/13545400?v=3" width="110px;"/><br /><sub>IDM Helpdesk</sub>](https://github.com/IDM-Helpdesk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=IDM-Helpdesk "Code") | [<img src="https://avatars2.githubusercontent.com/u/614439?v=3" width="110px;"/><br /><sub>Kai</sub>](http://balticer.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balticer "Code") | [<img src="https://avatars1.githubusercontent.com/u/8762511?v=3" width="110px;"/><br /><sub>Michael Daniels</sub>](http://www.michaeldaniels.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mdaniels5757 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/1532660?v=3" width="110px;"/><br /><sub>Tom Castleman</sub>](http://tomcastleman.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tomcastleman "Code") | [<img src="https://avatars3.githubusercontent.com/u/10723243?v=3" width="110px;"/><br /><sub>Daniel Nemanic</sub>](https://github.com/DanielNemanic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DanielNemanic "Code") | [<img src="https://avatars0.githubusercontent.com/u/150648?v=3" width="110px;"/><br /><sub>SouthWolf</sub>](https://github.com/southwolf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=southwolf "Code") | [<img src="https://avatars2.githubusercontent.com/u/131616?v=3" width="110px;"/><br /><sub>Ivar Nesje</sub>](https://github.com/ivarne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ivarne "Code") | [<img src="https://avatars1.githubusercontent.com/u/62333?v=3" width="110px;"/><br /><sub>Jérémy Benoist</sub>](http://www.j0k3r.net)<br />[📖](https://github.com/snipe/snipe-it/commits?author=j0k3r "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/724344?v=3" width="110px;"/><br /><sub>Chris Leathley</sub>](https://github.com/cleathley)<br />[🚇](#infra-cleathley "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars0.githubusercontent.com/u/972498?v=3" width="110px;"/><br /><sub>splaer</sub>](https://github.com/splaer)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asplaer "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=splaer "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/967362?v=3" width="110px;"/><br /><sub>Joe Ferguson</sub>](http://www.joeferguson.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=svpernova09 "Code") | [<img src="https://avatars3.githubusercontent.com/u/6108682?v=3" width="110px;"/><br /><sub>diwanicki</sub>](https://github.com/diwanicki)<br />[💻](https://github.com/snipe/snipe-it/commits?author=diwanicki "Code") [📖](https://github.com/snipe/snipe-it/commits?author=diwanicki "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/2527115?v=3" width="110px;"/><br /><sub>Lee Thoong Ching</sub>](https://github.com/pakkua80)<br />[📖](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Documentation") [💻](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Code") | [<img src="https://avatars1.githubusercontent.com/u/461491?v=3" width="110px;"/><br /><sub>Marek Šuppa</sub>](http://shu.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mrshu "Code") | [<img src="https://avatars1.githubusercontent.com/u/8693762?v=3" width="110px;"/><br /><sub>Juan J. Martinez</sub>](https://github.com/mizar1616)<br />[🌍](#translation-mizar1616 "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1458388?v=3" width="110px;"/><br /><sub>R Ryan Dial</sub>](https://github.com/rrdial)<br />[🌍](#translation-rrdial "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2871745?v=3" width="110px;"/><br /><sub>Andrej Manduch</sub>](https://github.com/burlito)<br />[📖](https://github.com/snipe/snipe-it/commits?author=burlito "Documentation") |
| [<img src="https://avatars0.githubusercontent.com/u/8341172?v=3" width="110px;"/><br /><sub>Jay Richards</sub>](http://www.cordeos.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=technogenus "Code") | [<img src="https://avatars2.githubusercontent.com/u/7295127?v=3" width="110px;"/><br /><sub>Alexander Innes</sub>](https://necurity.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leostat "Code") | [<img src="https://avatars2.githubusercontent.com/u/334485?v=3" width="110px;"/><br /><sub>Danny Garcia</sub>](https://buzzedword.codes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=buzzedword "Code") | [<img src="https://avatars2.githubusercontent.com/u/366855?v=3" width="110px;"/><br /><sub>archpoint</sub>](https://github.com/archpoint)<br />[💻](https://github.com/snipe/snipe-it/commits?author=archpoint "Code") | [<img src="https://avatars1.githubusercontent.com/u/67991?v=3" width="110px;"/><br /><sub>Jake McGraw</sub>](http://www.jakemcgraw.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jakemcgraw "Code") | [<img src="https://avatars1.githubusercontent.com/u/1714374?v=3" width="110px;"/><br /><sub>FleischKarussel</sub>](https://github.com/FleischKarussel)<br />[📖](https://github.com/snipe/snipe-it/commits?author=FleischKarussel "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/319644?v=3" width="110px;"/><br /><sub>Dylan Yi</sub>](https://github.com/feeva)<br />[💻](https://github.com/snipe/snipe-it/commits?author=feeva "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/857740?v=3" width="110px;"/><br /><sub>Gil Rutkowski</sub>](http://FlashingCursor.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=flashingcursor "Code") | [<img src="https://avatars3.githubusercontent.com/u/129360?v=3" width="110px;"/><br /><sub>Desmond Morris</sub>](http://www.desmondmorris.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=desmondmorris "Code") | [<img src="https://avatars2.githubusercontent.com/u/52936?v=3" width="110px;"/><br /><sub>Nick Peelman</sub>](http://peelman.us)<br />[💻](https://github.com/snipe/snipe-it/commits?author=peelman "Code") | [<img src="https://avatars0.githubusercontent.com/u/53161?v=3" width="110px;"/><br /><sub>Abraham Vegh</sub>](https://abrahamvegh.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=abrahamvegh "Code") | [<img src="https://avatars0.githubusercontent.com/u/2818680?v=3" width="110px;"/><br /><sub>Mohamed Rashid</sub>](https://github.com/rashivkp)<br />[📖](https://github.com/snipe/snipe-it/commits?author=rashivkp "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1509456?v=3" width="110px;"/><br /><sub>Kasey</sub>](http://hinchk.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=HinchK "Code") | [<img src="https://avatars2.githubusercontent.com/u/10522541?v=3" width="110px;"/><br /><sub>Brett</sub>](https://github.com/BrettFagerlund)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=BrettFagerlund "Tests") |
| [<img src="https://avatars2.githubusercontent.com/u/16108587?v=3" width="110px;"/><br /><sub>Jason Spriggs</sub>](http://jasonspriggs.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonspriggs "Code") | [<img src="https://avatars2.githubusercontent.com/u/1134568?v=3" width="110px;"/><br /><sub>Nate Felton</sub>](http://n8felton.wordpress.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=n8felton "Code") | [<img src="https://avatars2.githubusercontent.com/u/14036694?v=3" width="110px;"/><br /><sub>Manasses Ferreira</sub>](http://homepages.dcc.ufmg.br/~manassesferreira)<br />[💻](https://github.com/snipe/snipe-it/commits?author=manassesferreira "Code") | [<img src="https://avatars0.githubusercontent.com/u/15913949?v=3" width="110px;"/><br /><sub>Steve</sub>](https://github.com/steveelwood)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=steveelwood "Tests") | [<img src="https://avatars1.githubusercontent.com/u/3361683?v=3" width="110px;"/><br /><sub>matc</sub>](http://twitter.com/matc)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=matc "Tests") | [<img src="https://avatars3.githubusercontent.com/u/7405702?v=3" width="110px;"/><br /><sub>Cole R. Davis</sub>](http://www.davisracingteam.com)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD "Tests") | [<img src="https://avatars2.githubusercontent.com/u/10167681?v=3" width="110px;"/><br /><sub>gibsonjoshua55</sub>](https://github.com/gibsonjoshua55)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55 "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/2809241?v=4" width="110px;"/><br /><sub>Robin Temme</sub>](https://github.com/zwerch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zwerch "Code") | [<img src="https://avatars0.githubusercontent.com/u/6961695?v=4" width="110px;"/><br /><sub>Iman</sub>](https://github.com/imanghafoori1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=imanghafoori1 "Code") | [<img src="https://avatars1.githubusercontent.com/u/6551003?v=4" width="110px;"/><br /><sub>Richard Hofman</sub>](https://github.com/richardhofman6)<br />[💻](https://github.com/snipe/snipe-it/commits?author=richardhofman6 "Code") | [<img src="https://avatars0.githubusercontent.com/u/3697569?v=4" width="110px;"/><br /><sub>gizzmojr</sub>](https://github.com/gizzmojr)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gizzmojr "Code") | [<img src="https://avatars3.githubusercontent.com/u/404729?v=4" width="110px;"/><br /><sub>Jenny Li</sub>](https://github.com/imjennyli)<br />[📖](https://github.com/snipe/snipe-it/commits?author=imjennyli "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/869227?v=4" width="110px;"/><br /><sub>Geoff Young</sub>](https://github.com/GeoffYoung)<br />[💻](https://github.com/snipe/snipe-it/commits?author=GeoffYoung "Code") | [<img src="https://avatars3.githubusercontent.com/u/1068477?v=4" width="110px;"/><br /><sub>Elliot Blackburn</sub>](http://www.elliotblackburn.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=BlueHatbRit "Documentation") |
| [<img src="https://avatars1.githubusercontent.com/u/6357451?v=4" width="110px;"/><br /><sub>Tõnis Ormisson</sub>](http://andmemasin.eu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | [<img src="https://avatars0.githubusercontent.com/u/449411?v=4" width="110px;"/><br /><sub>Nicolai Essig</sub>](http://www.nicolai-essig.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thakilla "Code") | [<img src="https://avatars1.githubusercontent.com/u/14809698?v=4" width="110px;"/><br /><sub>Danielle</sub>](https://github.com/techincolor)<br />[📖](https://github.com/snipe/snipe-it/commits?author=techincolor "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/18545156?v=4" width="110px;"/><br /><sub>Lawrence</sub>](https://github.com/TheVakman)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=TheVakman "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3ATheVakman "Bug reports") | [<img src="https://avatars1.githubusercontent.com/u/22473767?v=4" width="110px;"/><br /><sub>uknzaeinozpas</sub>](https://github.com/uknzaeinozpas)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Tests") [💻](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Code") | [<img src="https://avatars3.githubusercontent.com/u/422752?v=4" width="110px;"/><br /><sub>Ryan</sub>](https://github.com/Gelob)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Gelob "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/10672546?v=4" width="110px;"/><br /><sub>vcordes79</sub>](https://github.com/vcordes79)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vcordes79 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/27958330?v=4" width="110px;"/><br /><sub>fordster78</sub>](https://github.com/fordster78)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fordster78 "Code") | [<img src="https://avatars0.githubusercontent.com/u/34064225?v=4" width="110px;"/><br /><sub>CronKz</sub>](https://github.com/CronKz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CronKz "Code") [🌍](#translation-CronKz "Translation") | [<img src="https://avatars1.githubusercontent.com/u/585486?v=4" width="110px;"/><br /><sub>Tim Bishop</sub>](https://github.com/tdb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tdb "Code") | [<img src="https://avatars2.githubusercontent.com/u/5384694?v=4" width="110px;"/><br /><sub>Sean McIlvenna</sub>](https://www.seanmcilvenna.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=seanmcilvenna "Code") | [<img src="https://avatars3.githubusercontent.com/u/36515590?v=4" width="110px;"/><br /><sub>cepacs</sub>](https://github.com/cepacs)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Acepacs "Bug reports") [📖](https://github.com/snipe/snipe-it/commits?author=cepacs "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/37537300?v=4" width="110px;"/><br /><sub>lea-mink</sub>](https://github.com/lea-mink)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lea-mink "Code") | [<img src="https://avatars0.githubusercontent.com/u/7140719?v=4" width="110px;"/><br /><sub>Hannah Tinkler</sub>](https://github.com/hannahtinkler)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hannahtinkler "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1086388?v=4" width="110px;"/><br /><sub>Doeke Zanstra</sub>](https://github.com/doekman)<br />[💻](https://github.com/snipe/snipe-it/commits?author=doekman "Code") | [<img src="https://avatars1.githubusercontent.com/u/4325936?v=4" width="110px;"/><br /><sub>Djamon Staal</sub>](https://www.sdhd.nl/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=SjamonDaal "Code") | [<img src="https://avatars3.githubusercontent.com/u/12306859?v=4" width="110px;"/><br /><sub>Earl Ramirez</sub>](https://github.com/EarlRamirez)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EarlRamirez "Code") | [<img src="https://avatars2.githubusercontent.com/u/8671456?v=4" width="110px;"/><br /><sub>Richard Ray Thomas</sub>](https://github.com/RichardRay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=RichardRay "Code") | [<img src="https://avatars3.githubusercontent.com/u/1852688?v=4" width="110px;"/><br /><sub>Ryan Kuba</sub>](https://www.taisun.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thelamer "Code") | [<img src="https://avatars1.githubusercontent.com/u/6751928?v=4" width="110px;"/><br /><sub>Brian Monroe</sub>](https://github.com/ParadoxGuitarist)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ParadoxGuitarist "Code") | [<img src="https://avatars1.githubusercontent.com/u/605167?v=4" width="110px;"/><br /><sub>plexorama</sub>](https://github.com/plexorama)<br />[💻](https://github.com/snipe/snipe-it/commits?author=plexorama "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/1795149?v=4" width="110px;"/><br /><sub>Till Deeke</sub>](https://tilldeeke.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tilldeeke "Code") | [<img src="https://avatars0.githubusercontent.com/u/12634129?v=4" width="110px;"/><br /><sub>5quirrel</sub>](https://github.com/5quirrel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=5quirrel "Code") | [<img src="https://avatars1.githubusercontent.com/u/13071957?v=4" width="110px;"/><br /><sub>Jason</sub>](https://github.com/jasonlshelton)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonlshelton "Code") | [<img src="https://avatars3.githubusercontent.com/u/7128321?v=4" width="110px;"/><br /><sub>Antti</sub>](https://github.com/chemfy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chemfy "Code") | [<img src="https://avatars3.githubusercontent.com/u/10080364?v=4" width="110px;"/><br /><sub>DeusMaximus</sub>](https://github.com/DeusMaximus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DeusMaximus "Code") | [<img src="https://avatars2.githubusercontent.com/u/16384611?v=4" width="110px;"/><br /><sub>a-royal</sub>](https://github.com/A-ROYAL)<br />[🌍](#translation-A-ROYAL "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5358208?v=4" width="110px;"/><br /><sub>Alberto Aldrigo</sub>](https://github.com/albertoaldrigo)<br />[🌍](#translation-albertoaldrigo "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1412342?v=4" width="110px;"/><br /><sub>Alex Stanev</sub>](http://alex.stanev.org/blog)<br />[🌍](#translation-RealEnder "Translation") | [<img src="https://avatars0.githubusercontent.com/u/177295?v=4" width="110px;"/><br /><sub>Andreas Rehm</sub>](http://devel.itsolution2.de)<br />[🌍](#translation-sirrus "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5080535?v=4" width="110px;"/><br /><sub>Andreas Erhard</sub>](https://github.com/xelan)<br />[🌍](#translation-xelan "Translation") | [<img src="https://avatars2.githubusercontent.com/u/142350?v=4" width="110px;"/><br /><sub>Andrés Vanegas Jiménez</sub>](https://github.com/angeldeejay)<br />[🌍](#translation-angeldeejay "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3910403?v=4" width="110px;"/><br /><sub>Antonio Schiavon</sub>](https://github.com/aschiavon91)<br />[🌍](#translation-aschiavon91 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10464547?v=4" width="110px;"/><br /><sub>benunter</sub>](https://github.com/benunter)<br />[🌍](#translation-benunter "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5038647?v=4" width="110px;"/><br /><sub>Borys Żmuda</sub>](http://catweb24.pl)<br />[🌍](#translation-rudashi "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/5539359?v=4" width="110px;"/><br /><sub>chibacityblues</sub>](https://github.com/chibacityblues)<br />[🌍](#translation-chibacityblues "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1954830?v=4" width="110px;"/><br /><sub>Chien Wei Lin</sub>](https://github.com/cwlin0416)<br />[🌍](#translation-cwlin0416 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/11700533?v=4" width="110px;"/><br /><sub>Christian Schuster</sub>](https://github.com/Againstreality)<br />[🌍](#translation-Againstreality "Translation") | [<img src="https://avatars1.githubusercontent.com/u/4308704?v=4" width="110px;"/><br /><sub>Christian Stefanus</sub>](http://chriss.webhostid.com)<br />[🌍](#translation-kopi-item "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3009327?v=4" width="110px;"/><br /><sub>wxcafé</sub>](http://wxcafe.net)<br />[🌍](#translation-wxcafe "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35761525?v=4" width="110px;"/><br /><sub>dpyroc</sub>](https://github.com/dpyroc)<br />[🌍](#translation-dpyroc "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2153639?v=4" width="110px;"/><br /><sub>Daniel Friedlmaier</sub>](http://www.friedlmaier.net)<br />[🌍](#translation-da-friedl "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/2947640?v=4" width="110px;"/><br /><sub>Daniel Heene</sub>](https://github.com/danielheene)<br />[🌍](#translation-danielheene "Translation") | [<img src="https://avatars3.githubusercontent.com/u/319022?v=4" width="110px;"/><br /><sub>danielcb</sub>](https://github.com/danielcb)<br />[🌍](#translation-danielcb "Translation") | [<img src="https://avatars3.githubusercontent.com/u/15846537?v=4" width="110px;"/><br /><sub>Dominik Senti</sub>](https://github.com/dominiksenti)<br />[🌍](#translation-dominiksenti "Translation") | [<img src="https://avatars0.githubusercontent.com/u/25570954?v=4" width="110px;"/><br /><sub>Eric Gautheron</sub>](http://www.konectik.com)<br />[🌍](#translation-EpixFr "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5732623?v=4" width="110px;"/><br /><sub>Erlend Pilø</sub>](https://erlpil.com)<br />[🌍](#translation-Erlpil "Translation") | [<img src="https://avatars0.githubusercontent.com/u/541832?v=4" width="110px;"/><br /><sub>Fabio Rapposelli</sub>](http://fabio.technology)<br />[🌍](#translation-frapposelli "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3605240?v=4" width="110px;"/><br /><sub>Felipe Barros</sub>](https://github.com/fgbs)<br />[🌍](#translation-fgbs "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/257745?v=4" width="110px;"/><br /><sub>Fernando Possebon</sub>](https://github.com/possebon)<br />[🌍](#translation-possebon "Translation") | [<img src="https://avatars3.githubusercontent.com/u/2540832?v=4" width="110px;"/><br /><sub>gdraque</sub>](https://github.com/gdraque)<br />[🌍](#translation-gdraque "Translation") | [<img src="https://avatars0.githubusercontent.com/u/23440381?v=4" width="110px;"/><br /><sub>Georg Wallisch</sub>](https://github.com/georgwallisch)<br />[🌍](#translation-georgwallisch "Translation") | [<img src="https://avatars1.githubusercontent.com/u/9852832?v=4" width="110px;"/><br /><sub>Gerardo Robles</sub>](https://github.com/jgroblesr85)<br />[🌍](#translation-jgroblesr85 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/11082640?v=4" width="110px;"/><br /><sub>Gluek</sub>](https://t.me/Gluek)<br />[🌍](#translation-mrgluek "Translation") | [<img src="https://avatars0.githubusercontent.com/u/6847946?v=4" width="110px;"/><br /><sub>AdnanAbuShahad</sub>](https://github.com/AdnanAbuShahad)<br />[🌍](#translation-AdnanAbuShahad "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3580608?v=4" width="110px;"/><br /><sub>Hafidzi My</sub>](https://hafidzi.my)<br />[🌍](#translation-hafidzi "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/205521?v=4" width="110px;"/><br /><sub>Harim Park</sub>](https://github.com/fofwisdom)<br />[🌍](#translation-fofwisdom "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3333841?v=4" width="110px;"/><br /><sub>Henrik Kentsson</sub>](http://www.kentsson.se)<br />[🌍](#translation-Kentsson "Translation") | [<img src="https://avatars0.githubusercontent.com/u/36551034?v=4" width="110px;"/><br /><sub>Husnul Yaqien</sub>](https://github.com/husnulyaqien)<br />[🌍](#translation-husnulyaqien "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2372747?v=4" width="110px;"/><br /><sub>Ibrahim</sub>](http://abaalkhail.org)<br />[🌍](#translation-abaalkh "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1389334?v=4" width="110px;"/><br /><sub>igolman</sub>](https://github.com/igolman)<br />[🌍](#translation-igolman "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3257070?v=4" width="110px;"/><br /><sub>itangiang</sub>](https://github.com/itangiang)<br />[🌍](#translation-itangiang "Translation") | [<img src="https://avatars2.githubusercontent.com/u/14814254?v=4" width="110px;"/><br /><sub>jarby1211</sub>](https://github.com/jarby1211)<br />[🌍](#translation-jarby1211 "Translation") |
| [<img src="https://avatars3.githubusercontent.com/u/6719357?v=4" width="110px;"/><br /><sub>Jhonn Willker</sub>](http://jwillker.com)<br />[🌍](#translation-JohnWillker "Translation") | [<img src="https://avatars2.githubusercontent.com/u/10983635?v=4" width="110px;"/><br /><sub>Jose</sub>](https://github.com/joxelito94)<br />[🌍](#translation-joxelito94 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5206122?v=4" width="110px;"/><br /><sub>laopangzi</sub>](https://github.com/laopangzi)<br />[🌍](#translation-laopangzi "Translation") | [<img src="https://avatars2.githubusercontent.com/u/79707?v=4" width="110px;"/><br /><sub>Lars Strojny</sub>](http://usrportage.de)<br />[🌍](#translation-lstrojny "Translation") | [<img src="https://avatars0.githubusercontent.com/u/389801?v=4" width="110px;"/><br /><sub>MarcosBL</sub>](http://twitter.com/marcosbl)<br />[🌍](#translation-MarcosBL "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35664606?v=4" width="110px;"/><br /><sub>marie joy cajes</sub>](https://github.com/mariejoyacajes)<br />[🌍](#translation-mariejoyacajes "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3052816?v=4" width="110px;"/><br /><sub>Mark S. Johansen</sub>](http://www.markjohansen.dk)<br />[🌍](#translation-msjohansen "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/982885?v=4" width="110px;"/><br /><sub>Martin Stub</sub>](http://martinstub.dk)<br />[🌍](#translation-stubben "Translation") | [<img src="https://avatars2.githubusercontent.com/u/28959963?v=4" width="110px;"/><br /><sub>Meyer Flavio</sub>](https://github.com/meyerf99)<br />[🌍](#translation-meyerf99 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/796443?v=4" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[🌍](#translation-MicaelRodrigues "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10481331?v=4" width="110px;"/><br /><sub>Mikael Rasmussen</sub>](http://rubixy.com/)<br />[🌍](#translation-mikaelssen "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1544552?v=4" width="110px;"/><br /><sub>IxFail</sub>](https://github.com/IxFail)<br />[🌍](#translation-IxFail "Translation") | [<img src="https://avatars3.githubusercontent.com/u/18483118?v=4" width="110px;"/><br /><sub>Mohammed Fota</sub>](http://www.mohammedfota.com)<br />[🌍](#translation-MohammedFota "Translation") | [<img src="https://avatars0.githubusercontent.com/u/227080?v=4" width="110px;"/><br /><sub>Moayad Alserihi</sub>](https://github.com/omego)<br />[🌍](#translation-omego "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1680266?v=4" width="110px;"/><br /><sub>saymd</sub>](https://github.com/saymd)<br />[🌍](#translation-saymd "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1826808?v=4" width="110px;"/><br /><sub>Patrik Larsson</sub>](https://nordsken.se)<br />[🌍](#translation-pooot "Translation") | [<img src="https://avatars1.githubusercontent.com/u/20584746?v=4" width="110px;"/><br /><sub>drcryo</sub>](https://github.com/drcryo)<br />[🌍](#translation-drcryo "Translation") | [<img src="https://avatars1.githubusercontent.com/u/19408004?v=4" width="110px;"/><br /><sub>pawel1615</sub>](https://github.com/pawel1615)<br />[🌍](#translation-pawel1615 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/23340468?v=4" width="110px;"/><br /><sub>bodrovics</sub>](https://github.com/bodrovics)<br />[🌍](#translation-bodrovics "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3257654?v=4" width="110px;"/><br /><sub>priatna</sub>](https://github.com/priatna)<br />[🌍](#translation-priatna "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5358374?v=4" width="110px;"/><br /><sub>Fan Jiang</sub>](https://amayume.net)<br />[🌍](#translation-ProfFan "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/22555451?v=4" width="110px;"/><br /><sub>ragnarcx</sub>](https://github.com/ragnarcx)<br />[🌍](#translation-ragnarcx "Translation") | [<img src="https://avatars2.githubusercontent.com/u/18654582?v=4" width="110px;"/><br /><sub>Rein van Haaren</sub>](http://www.reinvanhaaren.nl/)<br />[🌍](#translation-reinvanhaaren "Translation") | [<img src="https://avatars1.githubusercontent.com/u/386672?v=4" width="110px;"/><br /><sub>Teguh Dwicaksana</sub>](http://dheche.songolimo.net)<br />[🌍](#translation-dheche "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2572552?v=4" width="110px;"/><br /><sub>fraccie</sub>](https://github.com/FRaccie)<br />[🌍](#translation-FRaccie "Translation") | [<img src="https://avatars0.githubusercontent.com/u/35182720?v=4" width="110px;"/><br /><sub>vinzruzell</sub>](https://github.com/vinzruzell)<br />[🌍](#translation-vinzruzell "Translation") | [<img src="https://avatars1.githubusercontent.com/u/7883603?v=4" width="110px;"/><br /><sub>Kevin Austin</sub>](http://kevinaustin.com)<br />[🌍](#translation-vipsystem "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3861828?v=4" width="110px;"/><br /><sub>Wira Sandy</sub>](http://azuraweb.xyz)<br />[🌍](#translation-wira-sandy "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/8663789?v=4" width="110px;"/><br /><sub>Илья</sub>](https://github.com/GrayHoax)<br />[🌍](#translation-GrayHoax "Translation") | [<img src="https://avatars3.githubusercontent.com/u/30119111?v=4" width="110px;"/><br /><sub>GodUseVPN</sub>](https://github.com/godusevpn)<br />[🌍](#translation-godusevpn "Translation") | [<img src="https://avatars1.githubusercontent.com/u/745576?v=4" width="110px;"/><br /><sub>周周</sub>](https://github.com/EngrZhou)<br />[🌍](#translation-EngrZhou "Translation") | [<img src="https://avatars3.githubusercontent.com/u/1631095?v=4" width="110px;"/><br /><sub>Sam</sub>](https://github.com/takuy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [<img src="https://avatars1.githubusercontent.com/u/264022?v=4" width="110px;"/><br /><sub>Azerothian</sub>](https://www.illisian.com.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [<img src="https://avatars1.githubusercontent.com/u/4930051?v=4" width="110px;"/><br /><sub>Wes Hulette</sub>](http://macfoo.wordpress.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jwhulette "Code") | [<img src="https://avatars0.githubusercontent.com/u/8134591?v=4" width="110px;"/><br /><sub>patrict</sub>](https://github.com/patrict)<br />[💻](https://github.com/snipe/snipe-it/commits?author=patrict "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/2611616?v=4" width="110px;"/><br /><sub>Dmitriy Minaev</sub>](https://github.com/VELIKII-DIVAN)<br />[💻](https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN "Code") | [<img src="https://avatars0.githubusercontent.com/u/5132245?v=4" width="110px;"/><br /><sub>liquidhorse</sub>](https://github.com/liquidhorse)<br />[💻](https://github.com/snipe/snipe-it/commits?author=liquidhorse "Code") | [<img src="https://avatars1.githubusercontent.com/u/183678?v=4" width="110px;"/><br /><sub>Jordi Boggiano</sub>](https://seld.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Seldaek "Code") | [<img src="https://avatars0.githubusercontent.com/u/653557?v=4" width="110px;"/><br /><sub>Ivan Nieto</sub>](https://github.com/inietov)<br />[💻](https://github.com/snipe/snipe-it/commits?author=inietov "Code") | [<img src="https://avatars2.githubusercontent.com/u/6764151?v=4" width="110px;"/><br /><sub>Ben RUBSON</sub>](https://github.com/benrubson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benrubson "Code") | [<img src="https://avatars2.githubusercontent.com/u/8554558?v=4" width="110px;"/><br /><sub>NMathar</sub>](https://github.com/NMathar)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NMathar "Code") | [<img src="https://avatars1.githubusercontent.com/u/139566?v=4" width="110px;"/><br /><sub>Steffen</sub>](https://github.com/smb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smb "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/6609453?v=4" width="110px;"/><br /><sub>Sxderp</sub>](https://github.com/Sxderp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Sxderp "Code") | [<img src="https://avatars1.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>fanta8897</sub>](https://github.com/fanta8897)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fanta8897 "Code") | [<img src="https://avatars2.githubusercontent.com/u/2576509?v=4" width="110px;"/><br /><sub>Andrey Bolonin</sub>](https://andreybolonin.com/phpconsulting/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreybolonin "Code") | [<img src="https://avatars3.githubusercontent.com/u/2173307?v=4" width="110px;"/><br /><sub>shinayoshi</sub>](http://www.shinayoshi.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=shinayoshi "Code") | [<img src="https://avatars3.githubusercontent.com/u/2130159?v=4" width="110px;"/><br /><sub>Hubert</sub>](https://github.com/reuser)<br />[💻](https://github.com/snipe/snipe-it/commits?author=reuser "Code") | [<img src="https://avatars0.githubusercontent.com/u/6865789?v=4" width="110px;"/><br /><sub>KeenRivals</sub>](https://brashear.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KeenRivals "Code") | [<img src="https://avatars3.githubusercontent.com/u/2902513?v=4" width="110px;"/><br /><sub>omyno</sub>](https://github.com/omyno)<br />[💻](https://github.com/snipe/snipe-it/commits?author=omyno "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/6271335?v=4" width="110px;"/><br /><sub>Evgeny</sub>](https://github.com/jackka)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jackka "Code") | [<img src="https://avatars2.githubusercontent.com/u/1169963?v=4" width="110px;"/><br /><sub>Colin Campbell</sub>](https://digitalist.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=colin-campbell "Code") | [<img src="https://avatars3.githubusercontent.com/u/2872098?v=4" width="110px;"/><br /><sub>Ľubomír Kučera</sub>](https://github.com/lubo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lubo "Code") | [<img src="https://avatars3.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://www.sourceguru.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mezzle "Code") | [<img src="https://avatars1.githubusercontent.com/u/7632599?v=4" width="110px;"/><br /><sub>Tim Farmer</sub>](https://github.com/timothyfarmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [<img src="https://avatars0.githubusercontent.com/u/17459600?v=4" width="110px;"/><br /><sub>Marián Skrip</sub>](https://github.com/mskrip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") | [<img src="https://avatars2.githubusercontent.com/u/47435081?v=4" width="110px;"/><br /><sub>Godfrey Martinez</sub>](https://github.com/Godmartinz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/2075128?v=4" width="110px;"/><br /><sub>bigtreeEdo</sub>](https://github.com/bigtreeEdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [<img src="https://avatars0.githubusercontent.com/u/5000430?v=4" width="110px;"/><br /><sub>Colin McNeil</sub>](https://colinmcneil.me/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [<img src="https://avatars0.githubusercontent.com/u/421625?v=4" width="110px;"/><br /><sub>JoKneeMo</sub>](https://github.com/JoKneeMo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [<img src="https://avatars0.githubusercontent.com/u/54849013?v=4" width="110px;"/><br /><sub>Joshi</sub>](http://www.redbridge.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [<img src="https://avatars2.githubusercontent.com/u/15731458?v=4" width="110px;"/><br /><sub>Anthony Burns</sub>](https://github.com/anthonypburns)<br />[💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [<img src="https://avatars1.githubusercontent.com/u/63399474?v=4" width="110px;"/><br /><sub>johnson-yi</sub>](https://github.com/johnson-yi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=johnson-yi "Code") | [<img src="https://avatars1.githubusercontent.com/u/1862720?v=4" width="110px;"/><br /><sub>Sanjay Govind</sub>](https://tangentmc.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sanjay900 "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/1255375?v=4" width="110px;"/><br /><sub>Peter Upfold</sub>](https://peter.upfold.org.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [<img src="https://avatars2.githubusercontent.com/u/961717?v=4" width="110px;"/><br /><sub>Jared Biel</sub>](https://github.com/jbiel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") | [<img src="https://avatars1.githubusercontent.com/u/1733625?v=4" width="110px;"/><br /><sub>Dampfklon</sub>](https://github.com/dampfklon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dampfklon "Code") | [<img src="https://avatars2.githubusercontent.com/u/52973156?v=4" width="110px;"/><br /><sub>Charles Hamilton</sub>](https://communityclosing.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chamilton-ccn "Code") | [<img src="https://avatars.githubusercontent.com/u/551789?v=4" width="110px;"/><br /><sub>Giuseppe Iannello</sub>](https://github.com/giannello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=giannello "Code") | [<img src="https://avatars.githubusercontent.com/u/3691490?v=4" width="110px;"/><br /><sub>Peter Dave Hello</sub>](https://www.peterdavehello.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterDaveHello "Code") | [<img src="https://avatars.githubusercontent.com/u/6106332?v=4" width="110px;"/><br /><sub>sigmoidal</sub>](https://github.com/sigmoidal)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sigmoidal "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2082554?v=4" width="110px;"/><br /><sub>Vincent Lainé</sub>](https://github.com/phenixdotnet)<br />[💻](https://github.com/snipe/snipe-it/commits?author=phenixdotnet "Code") | [<img src="https://avatars.githubusercontent.com/u/1943040?v=4" width="110px;"/><br /><sub>Lucas Pleß</sub>](http://www.lucas-pless.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derlucas "Code") | [<img src="https://avatars.githubusercontent.com/u/472804?v=4" width="110px;"/><br /><sub>Ian Littman</sub>](http://twitter.com/iansltx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=iansltx "Code") | [<img src="https://avatars.githubusercontent.com/u/3519029?v=4" width="110px;"/><br /><sub>João Paulo</sub>](https://github.com/PauloLuna)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PauloLuna "Code") | [<img src="https://avatars.githubusercontent.com/u/70443365?v=4" width="110px;"/><br /><sub>ThoBur</sub>](https://github.com/ThoBur)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ThoBur "Code") | [<img src="https://avatars.githubusercontent.com/u/1972329?v=4" width="110px;"/><br /><sub>Alexander Chibrikin</sub>](http://phpprofi.ru/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alek13 "Code") | [<img src="https://avatars.githubusercontent.com/u/438332?v=4" width="110px;"/><br /><sub>Anthony Winstanley</sub>](https://github.com/winstan)<br />[💻](https://github.com/snipe/snipe-it/commits?author=winstan "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3075214?v=4" width="110px;"/><br /><sub>Folke</sub>](https://github.com/fashberg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fashberg "Code") | [<img src="https://avatars.githubusercontent.com/u/1351571?v=4" width="110px;"/><br /><sub>Bennett Blodinger</sub>](https://github.com/benwa)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benwa "Code") | [<img src="https://avatars.githubusercontent.com/u/2974631?v=4" width="110px;"/><br /><sub>NMC</sub>](https://nmc.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ncareau "Code") | [<img src="https://avatars.githubusercontent.com/u/52182449?v=4" width="110px;"/><br /><sub>andres-baller</sub>](https://github.com/andres-baller)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andres-baller "Code") | [<img src="https://avatars.githubusercontent.com/u/67109348?v=4" width="110px;"/><br /><sub>sean-borg</sub>](https://github.com/sean-borg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sean-borg "Code") | [<img src="https://avatars.githubusercontent.com/u/32170051?v=4" width="110px;"/><br /><sub>EDVLeer</sub>](https://github.com/EDVLeer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EDVLeer "Code") | [<img src="https://avatars.githubusercontent.com/u/23075196?v=4" width="110px;"/><br /><sub>Kurokat</sub>](https://github.com/Kurokat)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Kurokat "Code") |
| [<img src="https://avatars.githubusercontent.com/u/915514?v=4" width="110px;"/><br /><sub>Kevin Köllmann</sub>](https://www.kevinkoellmann.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koelle25 "Code") | [<img src="https://avatars.githubusercontent.com/u/49025941?v=4" width="110px;"/><br /><sub>sw-mreyes</sub>](https://github.com/sw-mreyes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sw-mreyes "Code") | [<img src="https://avatars.githubusercontent.com/u/70129?v=4" width="110px;"/><br /><sub>Joel Pittet</sub>](https://pittet.ca)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joelpittet "Code") | [<img src="https://avatars.githubusercontent.com/u/792695?v=4" width="110px;"/><br /><sub>Eli Young</sub>](https://elyscape.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=elyscape "Code") | [<img src="https://avatars.githubusercontent.com/u/317015?v=4" width="110px;"/><br /><sub>Raell Dottin</sub>](https://github.com/raelldottin)<br />[💻](https://github.com/snipe/snipe-it/commits?author=raelldottin "Code") | [<img src="https://avatars.githubusercontent.com/u/1446856?v=4" width="110px;"/><br /><sub>Tom Misilo</sub>](https://github.com/misilot)<br />[💻](https://github.com/snipe/snipe-it/commits?author=misilot "Code") | [<img src="https://avatars.githubusercontent.com/u/4496300?v=4" width="110px;"/><br /><sub>David Davenne</sub>](http://david.davenne.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JuustoMestari "Code") |
| [<img src="https://avatars.githubusercontent.com/u/9255772?v=4" width="110px;"/><br /><sub>Mark Stenglein</sub>](https://markstenglein.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ocelotsloth "Code") | [<img src="https://avatars.githubusercontent.com/u/35658596?v=4" width="110px;"/><br /><sub>ajsy</sub>](https://github.com/ajsy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ajsy "Code") | [<img src="https://avatars.githubusercontent.com/u/3628035?v=4" width="110px;"/><br /><sub>Jan Kiesewetter</sub>](https://github.com/t3easy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=t3easy "Code") | [<img src="https://avatars.githubusercontent.com/u/79449630?v=4" width="110px;"/><br /><sub>Tetrachloromethane250</sub>](https://github.com/Tetrachloromethane250)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tetrachloromethane250 "Code") | [<img src="https://avatars.githubusercontent.com/u/22004482?v=4" width="110px;"/><br /><sub>Lars Kajes</sub>](https://www.kajes.se/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kajes "Code") | [<img src="https://avatars.githubusercontent.com/u/13993216?v=4" width="110px;"/><br /><sub>Joly0</sub>](https://github.com/Joly0)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Joly0 "Code") | [<img src="https://avatars.githubusercontent.com/u/1501022?v=4" width="110px;"/><br /><sub>theburger</sub>](https://github.com/limeless)<br />[💻](https://github.com/snipe/snipe-it/commits?author=limeless "Code") |
| [<img src="https://avatars.githubusercontent.com/u/36065681?v=4" width="110px;"/><br /><sub>David Valin Alonso</sub>](https://github.com/deivishome)<br />[💻](https://github.com/snipe/snipe-it/commits?author=deivishome "Code") | [<img src="https://avatars.githubusercontent.com/u/8290389?v=4" width="110px;"/><br /><sub>andreaci</sub>](https://github.com/andreaci)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreaci "Code") | [<img src="https://avatars.githubusercontent.com/u/1828542?v=4" width="110px;"/><br /><sub>Jelle Sebreghts</sub>](http://www.jellesebreghts.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Jelle-S "Code") | [<img src="https://avatars.githubusercontent.com/u/11180862?v=4" width="110px;"/><br /><sub>Michael Pietsch</sub>](https://github.com/Skywalker-11)<br /> | [<img src="https://avatars.githubusercontent.com/u/22068886?v=4" width="110px;"/><br /><sub>Masudul Haque Shihab</sub>](https://github.com/sh1hab)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sh1hab "Code") | [<img src="https://avatars.githubusercontent.com/u/16099942?v=4" width="110px;"/><br /><sub>Supapong Areeprasertkul</sub>](http://www.freedomdive.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zybersup "Code") | [<img src="https://avatars.githubusercontent.com/u/207358?v=4" width="110px;"/><br /><sub>Peter Sarossy</sub>](https://github.com/psarossy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=psarossy "Code") |
| [<img src="https://avatars.githubusercontent.com/u/11823649?v=4" width="110px;"/><br /><sub>Renee Margaret McConahy</sub>](https://github.com/nepella)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nepella "Code") | [<img src="https://avatars.githubusercontent.com/u/5553884?v=4" width="110px;"/><br /><sub>JohnnyPicnic</sub>](https://github.com/JohnnyPicnic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JohnnyPicnic "Code") | [<img src="https://avatars.githubusercontent.com/u/8799594?v=4" width="110px;"/><br /><sub>markbrule</sub>](https://github.com/markbrule)<br />[💻](https://github.com/snipe/snipe-it/commits?author=markbrule "Code") | [<img src="https://avatars.githubusercontent.com/u/1962801?v=4" width="110px;"/><br /><sub>Mike Campbell</sub>](https://github.com/mikecmpbll)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikecmpbll "Code") | [<img src="https://avatars.githubusercontent.com/u/11973217?v=4" width="110px;"/><br /><sub>tbrconnect</sub>](https://github.com/tbrconnect)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tbrconnect "Code") | [<img src="https://avatars.githubusercontent.com/u/12447225?v=4" width="110px;"/><br /><sub>kcoyo</sub>](https://github.com/kcoyo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kcoyo "Code") | [<img src="https://avatars.githubusercontent.com/u/494017?v=4" width="110px;"/><br /><sub>Travis Miller</sub>](https://travismiller.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=travismiller "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1975640?v=4" width="110px;"/><br /><sub>Evan Taylor</sub>](https://github.com/Delta5)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Delta5 "Code") | [<img src="https://avatars.githubusercontent.com/u/8735148?v=4" width="110px;"/><br /><sub>Petri Asikainen</sub>](https://github.com/PetriAsi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PetriAsi "Code") | [<img src="https://avatars.githubusercontent.com/u/11424540?v=4" width="110px;"/><br /><sub>derdeagle</sub>](https://github.com/derdeagle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derdeagle "Code") | [<img src="https://avatars.githubusercontent.com/u/176950?v=4" width="110px;"/><br /><sub>Mike Frysinger</sub>](https://wh0rd.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vapier "Code") | [<img src="https://avatars.githubusercontent.com/u/22044358?v=4" width="110px;"/><br /><sub>ALPHA</sub>](https://github.com/AL4AL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AL4AL "Code") | [<img src="https://avatars.githubusercontent.com/u/1042587?v=4" width="110px;"/><br /><sub>FliegenKLATSCH</sub>](https://www.ifern.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH "Code") | [<img src="https://avatars.githubusercontent.com/u/442138?v=4" width="110px;"/><br /><sub>Jeremy Price</sub>](https://github.com/jerm)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jerm "Code") |
| [<img src="https://avatars.githubusercontent.com/u/84392209?v=4" width="110px;"/><br /><sub>Toreg87</sub>](https://github.com/Toreg87)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Toreg87 "Code") | [<img src="https://avatars.githubusercontent.com/u/67638596?v=4" width="110px;"/><br /><sub>Matthew Nickson</sub>](https://github.com/Computroniks)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Computroniks "Code") | [<img src="https://avatars.githubusercontent.com/u/1646397?v=4" width="110px;"/><br /><sub>Jethro Nederhof</sub>](https://jethron.id.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jethron "Code") | [<img src="https://avatars.githubusercontent.com/u/23289826?v=4" width="110px;"/><br /><sub>Oskar Stenberg</sub>](https://github.com/01ste02)<br />[💻](https://github.com/snipe/snipe-it/commits?author=01ste02 "Code") | [<img src="https://avatars.githubusercontent.com/u/82208283?v=4" width="110px;"/><br /><sub>Robert-Azelis</sub>](https://github.com/Robert-Azelis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Robert-Azelis "Code") | [<img src="https://avatars.githubusercontent.com/u/60648387?v=4" width="110px;"/><br /><sub>Alexander William Smith</sub>](https://github.com/alwism)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alwism "Code") | [<img src="https://avatars.githubusercontent.com/u/24418301?v=4" width="110px;"/><br /><sub>LEITWERK AG</sub>](https://www.leitwerk.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leitwerk-ag "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1911435?v=4" width="110px;"/><br /><sub>Adam</sub>](http://www.aboutcher.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamboutcher "Code") | [<img src="https://avatars.githubusercontent.com/u/16104273?v=4" width="110px;"/><br /><sub>Ian</sub>](https://snksrv.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sneak-it "Code") | [<img src="https://avatars.githubusercontent.com/u/4023909?v=4" width="110px;"/><br /><sub>Shao Yu-Lung (Allen)</sub>](http://blog.bestlong.idv.tw/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bestlong "Code") | [<img src="https://avatars.githubusercontent.com/u/76475453?v=4" width="110px;"/><br /><sub>Haxatron</sub>](https://github.com/Haxatron)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Haxatron "Code") | [<img src="https://avatars.githubusercontent.com/u/88776392?v=4" width="110px;"/><br /><sub>PlaneNuts</sub>](https://github.com/PlaneNuts)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PlaneNuts "Code") | [<img src="https://avatars.githubusercontent.com/u/3842948?v=4" width="110px;"/><br /><sub>Bradley Coudriet</sub>](http://bjcpgd.cias.rit.edu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=exula "Code") | [<img src="https://avatars.githubusercontent.com/u/21966173?v=4" width="110px;"/><br /><sub>Dalton Durst</sub>](https://daltondur.st)<br />[💻](https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox "Code") |
| [<img src="https://avatars.githubusercontent.com/u/38761237?v=4" width="110px;"/><br /><sub>Alex Janes</sub>](https://adagiohealth.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adagioajanes "Code") | [<img src="https://avatars.githubusercontent.com/u/32387849?v=4" width="110px;"/><br /><sub>Nuraeil</sub>](https://github.com/nuraeil)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nuraeil "Code") | [<img src="https://avatars.githubusercontent.com/u/48162670?v=4" width="110px;"/><br /><sub>TenOfTens</sub>](https://github.com/TenOfTens)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [<img src="https://avatars.githubusercontent.com/u/9415391?v=4" width="110px;"/><br /><sub>waffle</sub>](https://ditisjens.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=insert-waffle "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/QveenSi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") | [<img src="https://avatars.githubusercontent.com/u/3839381?v=4" width="110px;"/><br /><sub>Achmad Fienan Rahardianto</sub>](https://github.com/veenone)<br />[💻](https://github.com/snipe/snipe-it/commits?author=veenone "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/QveenSi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") |
| [<img src="https://avatars.githubusercontent.com/u/97299851?v=4" width="110px;"/><br /><sub>Christian Weirich</sub>](https://github.com/chrisweirich)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") | [<img src="https://avatars.githubusercontent.com/u/1294403?v=4" width="110px;"/><br /><sub>denzfarid</sub>](https://github.com/denzfarid)<br /> | [<img src="https://avatars.githubusercontent.com/u/94018771?v=4" width="110px;"/><br /><sub>ntbutler-nbcs</sub>](https://github.com/ntbutler-nbcs)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs "Code") | [<img src="https://avatars.githubusercontent.com/u/172697?v=4" width="110px;"/><br /><sub>Naveen</sub>](https://naveensrinivasan.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=naveensrinivasan "Code") | [<img src="https://avatars.githubusercontent.com/u/55674383?v=4" width="110px;"/><br /><sub>Mike Roquemore</sub>](https://github.com/mikeroq)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikeroq "Code") | [<img src="https://avatars.githubusercontent.com/u/7991086?v=4" width="110px;"/><br /><sub>Daniel Reeder</sub>](https://github.com/reederda)<br />[🌍](#translation-reederda "Translation") [🌍](#translation-reederda "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=reederda "Code") | [<img src="https://avatars.githubusercontent.com/u/109422491?v=4" width="110px;"/><br /><sub>vickyjaura183</sub>](https://github.com/vickyjaura183)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vickyjaura183 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/32363424?v=4" width="110px;"/><br /><sub>Peace</sub>](https://github.com/julian-piehl)<br />[💻](https://github.com/snipe/snipe-it/commits?author=julian-piehl "Code") | [<img src="https://avatars.githubusercontent.com/u/231528?v=4" width="110px;"/><br /><sub>Kyle Gordon</sub>](https://github.com/kylegordon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kylegordon "Code") | [<img src="https://avatars.githubusercontent.com/u/53009155?v=4" width="110px;"/><br /><sub>Katharina Drexel</sub>](http://www.bfh.ch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sunflowerbofh "Code") | [<img src="https://avatars.githubusercontent.com/u/1931963?v=4" width="110px;"/><br /><sub>David Sferruzza</sub>](https://david.sferruzza.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dsferruzza "Code") | [<img src="https://avatars.githubusercontent.com/u/19511639?v=4" width="110px;"/><br /><sub>Rick Nelson</sub>](https://github.com/rnelsonee)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rnelsonee "Code") | [<img src="https://avatars.githubusercontent.com/u/94169344?v=4" width="110px;"/><br /><sub>BasO12</sub>](https://github.com/BasO12)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BasO12 "Code") | [<img src="https://avatars.githubusercontent.com/u/111710123?v=4" width="110px;"/><br /><sub>Vautia</sub>](https://github.com/Vautia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Vautia "Code") |
| [<img src="https://avatars.githubusercontent.com/u/28321?v=4" width="110px;"/><br /><sub>Chris Hartjes</sub>](http://www.littlehart.net/atthekeyboard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chartjes "Code") | [<img src="https://avatars.githubusercontent.com/u/2404584?v=4" width="110px;"/><br /><sub>geo-chen</sub>](https://github.com/geo-chen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=geo-chen "Code") | [<img src="https://avatars.githubusercontent.com/u/6006620?v=4" width="110px;"/><br /><sub>Phan Nguyen</sub>](https://github.com/nh314)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nh314 "Code") | [<img src="https://avatars.githubusercontent.com/u/115993812?v=4" width="110px;"/><br /><sub>Iisakki Jaakkola</sub>](https://github.com/StarlessNights)<br />[💻](https://github.com/snipe/snipe-it/commits?author=StarlessNights "Code") | [<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="110px;"/><br /><sub>Ikko Ashimine</sub>](https://bandism.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=eltociear "Code") | [<img src="https://avatars.githubusercontent.com/u/56871540?v=4" width="110px;"/><br /><sub>Lukas Fehling</sub>](https://github.com/lukasfehling)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukasfehling "Code") | [<img src="https://avatars.githubusercontent.com/u/1975990?v=4" width="110px;"/><br /><sub>Fernando Almeida</sub>](https://github.com/fernando-almeida)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fernando-almeida "Code") |
| [<img src="https://avatars.githubusercontent.com/u/116301219?v=4" width="110px;"/><br /><sub>akemidx</sub>](https://github.com/akemidx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akemidx "Code") | [<img src="https://avatars.githubusercontent.com/u/144778?v=4" width="110px;"/><br /><sub>Oguz Bilgic</sub>](http://oguz.site)<br />[💻](https://github.com/snipe/snipe-it/commits?author=oguzbilgic "Code") | [<img src="https://avatars.githubusercontent.com/u/9262438?v=4" width="110px;"/><br /><sub>Scooter Crawford</sub>](https://github.com/scoo73r)<br />[💻](https://github.com/snipe/snipe-it/commits?author=scoo73r "Code") | [<img src="https://avatars.githubusercontent.com/u/5957345?v=4" width="110px;"/><br /><sub>subdriven</sub>](https://github.com/subdriven)<br />[💻](https://github.com/snipe/snipe-it/commits?author=subdriven "Code") | [<img src="https://avatars.githubusercontent.com/u/658865?v=4" width="110px;"/><br /><sub>Andrew Savinykh</sub>](https://github.com/AndrewSav)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AndrewSav "Code") | [<img src="https://avatars.githubusercontent.com/u/1155067?v=4" width="110px;"/><br /><sub>Tadayuki Onishi</sub>](https://kenchan0130.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kenchan0130 "Code") | [<img src="https://avatars.githubusercontent.com/u/112496896?v=4" width="110px;"/><br /><sub>Florian</sub>](https://github.com/floschoepfer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=floschoepfer "Code") |
| [<img src="https://avatars.githubusercontent.com/u/7305753?v=4" width="110px;"/><br /><sub>Spencer Long</sub>](http://spencerlong.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=spencerrlongg "Code") | [<img src="https://avatars.githubusercontent.com/u/1141514?v=4" width="110px;"/><br /><sub>Marcus Moore</sub>](https://github.com/marcusmoore)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcusmoore "Code") | [<img src="https://avatars.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://github.com/Mezzle)<br /> | [<img src="https://avatars.githubusercontent.com/u/5731963?v=4" width="110px;"/><br /><sub>dboth</sub>](http://dboth.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dboth "Code") | [<img src="https://avatars.githubusercontent.com/u/87536651?v=4" width="110px;"/><br /><sub>Zachary Fleck</sub>](https://github.com/zacharyfleck)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zacharyfleck "Code") | [<img src="https://avatars.githubusercontent.com/u/74609912?v=4" width="110px;"/><br /><sub>VIKAAS-A</sub>](https://github.com/vikaas-cyper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vikaas-cyper "Code") | [<img src="https://avatars.githubusercontent.com/u/88882041?v=4" width="110px;"/><br /><sub>Abdul Kareem</sub>](https://github.com/ak-piracha)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ak-piracha "Code") |
| [<img src="https://avatars.githubusercontent.com/u/111287779?v=4" width="110px;"/><br /><sub>NojoudAlshehri</sub>](https://github.com/NojoudAlshehri)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri "Code") | [<img src="https://avatars.githubusercontent.com/u/54367449?v=4" width="110px;"/><br /><sub>Stefan Stidl</sub>](https://github.com/stefanstidlffg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=stefanstidlffg "Code") | [<img src="https://avatars.githubusercontent.com/u/87803479?v=4" width="110px;"/><br /><sub>Quentin Aymard</sub>](https://github.com/qay21)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qay21 "Code") | [<img src="https://avatars.githubusercontent.com/u/5396871?v=4" width="110px;"/><br /><sub>Grant Le Roux</sub>](https://github.com/cram42)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cram42 "Code") |
<!-- ALL-CONTRIBUTORS-LIST:END -->
------
### Announcement List
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
To be notified of important news (such as new releases, security advisories, etc), [sign up for our list](http://eepurl.com/XyZKz). We'll never sell or give away your info, and we'll only email you when it's important.
We also usually make smaller announcements on our social accounts, our Discord, and our blog, so be sure to subscribe to those if you're looking for more granular announcements.

View File

@@ -10,10 +10,13 @@ however there are times when library dependencies and/or PHP/MySQL dependencies
make it impossible to backport security fixes on older versions.
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
|---------| ------------------ |
| 8.x | :white_check_mark: |
| 7.x | :white_check_mark: |
| 6.x | :x: |
| 5.1.x | :x: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| 4.0.x | :x: |
| < 4.0 | :x: |
## Reporting a Vulnerability

View File

@@ -20,7 +20,7 @@ APP_DEBUG=true
APP_KEY=base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE=en-US
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
@@ -45,8 +45,21 @@ DB_PASSWORD={}
Now you are ready to run the entire test suite from your terminal:
`php artisan test`
```shell
php artisan test
````
To run individual test files, you can pass the path to the test that you want to run:
`php artisan test tests/Unit/AccessoryTest.php`
```shell
php artisan test tests/Unit/AccessoryTest.php
```
Some tests, like ones concerning LDAP, are marked with the `@group` annotation. Those groups can be run, or excluded, using the `--group` or `--exclude-group` flags:
```shell
php artisan test --group=ldap
php artisan test --exclude-group=ldap
```
This can be helpful if a set of tests are failing because you don't have an extension, like LDAP, installed.

2
Vagrantfile vendored
View File

@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
SNIPEIT_SH_URL= "https://raw.githubusercontent.com/snipe/snipe-it/master/snipeit.sh"
SNIPEIT_SH_URL= "https://raw.githubusercontent.com/grokability/snipe-it/master/snipeit.sh"
NETWORK_BRIDGE= "en0: Wi-Fi (AirPort)"
Vagrant.configure("2") do |config|

View File

@@ -6,7 +6,7 @@
"it asset"
],
"website": "https://snipeitapp.com/",
"repository": "https://github.com/snipe/snipe-it",
"repository": "https://github.com/grokability/snipe-it",
"logo": "https://pbs.twimg.com/profile_images/976748875733020672/K-HnZCCK_400x400.jpg",
"success_url": "/setup",
"env": {
@@ -38,7 +38,7 @@
"description": "The maximum number of search results that can be returned at one time.",
"value": "500"
},
"MAIL_DRIVER": {
"MAIL_MAILER": {
"description": "Mail driver - Generally SMTP on Heroku - https://snipe-it.readme.io/docs/configuration#required-outgoing-mail-settings",
"value": "smtp"
},
@@ -58,9 +58,9 @@
"description": "SMTP Server Password",
"value": "YOURPASSWORD"
},
"MAIL_ENCRYPTION": {
"description": "Encryption protocol for email sending.",
"value": "null"
"MAIL_TLS_VERIFY_PEER": {
"description": "Ensure validity of TLS certificate on remote mail server",
"value": true
},
"MAIL_FROM_ADDR": {
"description": "Email from address",

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Actions\CheckoutRequests;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\Company;
use App\Models\Setting;
use App\Models\User;
use App\Notifications\RequestAssetCancelation;
use Illuminate\Auth\Access\AuthorizationException;
class CancelCheckoutRequestAction
{
public static function run(Asset $asset, User $user)
{
if (!Company::isCurrentUserHasAccess($asset)) {
throw new AuthorizationException();
}
$asset->cancelRequest();
$asset->decrement('requests_counter', 1);
$data['item'] = $asset;
$data['target'] = $user;
$data['item_quantity'] = 1;
$settings = Setting::getSettings();
$logaction = new Actionlog();
$logaction->item_id = $data['asset_id'] = $asset->id;
$logaction->item_type = $data['item_type'] = Asset::class;
$logaction->created_at = $data['requested_date'] = date('Y-m-d H:i:s');
$logaction->target_id = $data['user_id'] = auth()->id();
$logaction->target_type = User::class;
$logaction->location_id = $user->location_id ?? null;
$logaction->logaction('request canceled');
try {
$settings->notify(new RequestAssetCancelation($data));
} catch (\Exception $e) {
\Log::warning($e);
}
return true;
}
}

View File

@@ -0,0 +1,54 @@
<?php
namespace App\Actions\CheckoutRequests;
use App\Exceptions\AssetNotRequestable;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\Company;
use App\Models\Setting;
use App\Models\User;
use App\Notifications\RequestAssetNotification;
use Illuminate\Auth\Access\AuthorizationException;
use Log;
class CreateCheckoutRequestAction
{
/**
* @throws AssetNotRequestable
* @throws AuthorizationException
*/
public static function run(Asset $asset, User $user): string
{
if (is_null(Asset::RequestableAssets()->find($asset->id))) {
throw new AssetNotRequestable($asset);
}
if (!Company::isCurrentUserHasAccess($asset)) {
throw new AuthorizationException();
}
$data['item'] = $asset;
$data['target'] = $user;
$data['item_quantity'] = 1;
$settings = Setting::getSettings();
$logaction = new Actionlog();
$logaction->item_id = $data['asset_id'] = $asset->id;
$logaction->item_type = $data['item_type'] = Asset::class;
$logaction->created_at = $data['requested_date'] = date('Y-m-d H:i:s');
$logaction->target_id = $data['user_id'] = auth()->id();
$logaction->target_type = User::class;
$logaction->location_id = $user->location_id ?? null;
$logaction->logaction('requested');
$asset->request();
$asset->increment('requests_counter', 1);
try {
$settings->notify(new RequestAssetNotification($data));
} catch (\Exception $e) {
Log::warning($e);
}
return true;
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Console\Commands;
use App\Models\CheckoutAcceptance;
use App\Models\LicenseSeat;
use App\Models\User;
use Illuminate\Console\Command;
class CleanIncorrectCheckoutAcceptances extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:clean-checkout-acceptances';
/**
* The console command description.
*
* @var string
*/
protected $description = "Delete checkout acceptances for checkouts to non-users";
/**
* Execute the console command.
*/
public function handle()
{
$deletions = 0;
$skips = 0;
// This walks *every* checkoutacceptance. That's gnarly. But necessary
$this->withProgressBar(CheckoutAcceptance::all(), function ($checkoutAcceptance) use (&$deletions, &$skips) {
$item = $checkoutAcceptance->checkoutable;
$checkout_to_id = $checkoutAcceptance->assigned_to_id;
if(is_null($item)) {
$this->info("'Checkoutable' Item is null, going to next record");
return; //'false' allegedly breaks execution entirely, so 'true' maybe doesn't? hrm. just straight return maybe?
}
if(get_class($item) == LicenseSeat::class) {
$item = $item->license;
}
foreach($item->assetlog()->where('action_type','checkout')->get() as $assetlog) {
if ($assetlog->target_id == $checkout_to_id && $assetlog->target_type != User::class) {
//We have a checkout-to an ID for a non-User, which matches to an ID in the checkout_acceptances table
//now, let's compare the _times_ - are they close?
//I'm picking `created_at` over `action_date` because I'm more interested in when the actionlogs
//were _created_, not when they were alleged to have happened - those created_at times need to be within 'X' seconds of
//each other (currently 5)
if ($assetlog->created_at->diffInSeconds($checkoutAcceptance->created_at, true) <= 5) { //we're allowing for five _ish_ seconds of slop
$deletions++;
$checkoutAcceptance->forceDelete(); // HARD delete this record; it should have never been
return;
} else {
//$this->info("The two records are too far apart");
}
} else {
//$this->info("No match! checkout to id: " . $checkout_to_id." target_id: ".$assetlog->target_id." target_type: ".$assetlog->target_type);
}
}
$skips++;
});
$this->error("Final deletion count: $deletions, and skip count: $skips");
}
}

View File

@@ -0,0 +1,74 @@
<?php
namespace App\Console\Commands;
use App\Models\CheckoutRequest;
use Illuminate\Console\Command;
class CleanOldCheckoutRequests extends Command
{
private int $deletions = 0;
private int $skips = 0;
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:clean-old-checkout-requests';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Removes checkout requests that reference deleted assets or users.';
/**
* Execute the console command.
*/
public function handle()
{
$requests = CheckoutRequest::with([
'user' => function ($query) {
$query->withTrashed();
},
'requestedItem' => function ($query) {
$query->withTrashed();
},
])->get();
$this->info("Processing {$requests->count()} checkout requests");
$this->withProgressBar($requests, function ($request) {
if ($this->shouldForceDelete($request)) {
$request->forceDelete();
$this->deletions++;
return;
}
if ($this->shouldSoftDelete($request)) {
$request->delete();
$this->deletions++;
return;
}
$this->skips++;
});
$this->info("Final deletion count: $this->deletions, and skip count: $this->skips");
return 0;
}
private function shouldForceDelete(CheckoutRequest $request)
{
// check if the requestable or user relationship is null
return !$request->requestable || !$request->user;
}
private function shouldSoftDelete(CheckoutRequest $request)
{
return $request->requestable->trashed() || $request->user->trashed();
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Console\Commands;
use App\Models\Setting;
use Illuminate\Console\Command;
class DisableSAML extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:saml-disable';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This is a rescue command that can be used to turn off SAML settings in the event that you managed to lock yourself out using bad SAML settings.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
if ($this->confirm("\n****************************************************\nThis will disable SAML support. You will not be able \nto login with an account that does not exist \nlocally in the Snipe-IT local database. \n****************************************************\n\nDo you wish to continue? [y|N]")) {
$setting = Setting::getSettings();
$setting->saml_enabled = 0;
if ($setting->save()) {
$this->info('SAML has been set to disabled.');
} else {
$this->info('Unable to disable SAML.');
}
} else {
$this->info('Canceled. No actions taken.');
}
}
}

View File

@@ -0,0 +1,151 @@
<?php
namespace App\Console\Commands;
use App\Models\Accessory;
use App\Models\Actionlog;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
class FixBulkAccessoryCheckinActionLogEntries extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:fix-bulk-accessory-action-log-entries {--dry-run : Run the sync process but don\'t update the database} {--skip-backup : Skip pre-execution backup}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This script attempts to fix timestamps and missing created_by values for bulk checkin entries in the log table';
private bool $dryrun = false;
private bool $skipBackup = false;
/**
* Execute the console command.
*/
public function handle()
{
$this->skipBackup = $this->option('skip-backup');
$this->dryrun = $this->option('dry-run');
if ($this->dryrun) {
$this->info('This is a DRY RUN - no changes will be saved.');
$this->newLine();
}
$logs = Actionlog::query()
// only look for accessory checkin logs
->where('item_type', Accessory::class)
// that were part of a bulk checkin
->where('note', 'Bulk checkin items')
// logs that were improperly timestamped should have created_at in the 1970s
->whereYear('created_at', '1970')
->get();
if ($logs->isEmpty()) {
$this->info('No logs found with incorrect timestamps.');
return 0;
}
$this->info('Found ' . $logs->count() . ' logs with incorrect timestamps:');
$this->table(
['ID', 'Created By', 'Created At', 'Updated At'],
$logs->map(function ($log) {
return [
$log->id,
$log->created_by,
$log->created_at,
$log->updated_at,
];
})
);
if (!$this->dryrun && !$this->confirm('Update these logs?')) {
return 0;
}
if (!$this->dryrun && !$this->skipBackup) {
$this->info('Backing up the database before making changes...');
$this->call('snipeit:backup');
}
if ($this->dryrun) {
$this->newLine();
$this->info('DRY RUN. NOT ACTUALLY UPDATING LOGS.');
}
foreach ($logs as $log) {
$this->newLine();
$this->info('Processing log id:' . $log->id);
// created_by was not being set for accessory bulk checkins
// so let's see if there was another bulk checkin log
// with the same timestamp and a created_by value we can use.
if (is_null($log->created_by)) {
$createdByFromSimilarLog = $this->getCreatedByAttributeFromSimilarLog($log);
if ($createdByFromSimilarLog) {
$this->line(vsprintf('Updating log id:%s created_by to %s', [$log->id, $createdByFromSimilarLog]));
$log->created_by = $createdByFromSimilarLog;
} else {
$this->warn(vsprintf('No created_by found for log id:%s', [$log->id]));
$this->warn('Skipping updating this log since no similar log was found to update created_by from.');
// If we can't find a similar log then let's skip updating it
continue;
}
}
$this->line(vsprintf('Updating log id:%s from %s to %s', [$log->id, $log->created_at, $log->updated_at]));
$log->created_at = $log->updated_at;
if (!$this->dryrun) {
Model::withoutTimestamps(function () use ($log) {
$log->saveQuietly();
});
}
}
$this->newLine();
if ($this->dryrun) {
$this->info('DRY RUN. NO CHANGES WERE ACTUALLY MADE.');
}
return 0;
}
/**
* Hopefully the bulk checkin included other items like assets or licenses
* so we can use one of those logs to get the correct created_by value.
*
* This method attempts to find a bulk check in log that was
* created at the same time as the log passed in.
*/
private function getCreatedByAttributeFromSimilarLog(Actionlog $log): null|int
{
$similarLog = Actionlog::query()
->whereNotNull('created_by')
->where([
'action_type' => 'checkin from',
'note' => 'Bulk checkin items',
'target_id' => $log->target_id,
'target_type' => $log->target_type,
'created_at' => $log->updated_at,
])
->first();
if ($similarLog) {
return $similarLog->created_by;
}
return null;
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class FixUpAssignedTypeWithoutAssignedTo extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:assigned-type-fixup';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fixes up assets that have an assigned_type but no assigned_to';
/**
* Execute the console command.
*/
public function handle()
{
DB::table('assets')->whereNotNull('assigned_type')->whereNull('assigned_to')->update(['assigned_type' => null]);
$this->info("Assets with an assigned_type but no assigned_to are fixed");
}
}

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Console\Commands;
use App\Models\Asset;
use Illuminate\Console\Command;
class FixupAssignedToWithoutAssignedType extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:assigned-to-fixup
{--debug : Display debugging output}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fixes up assets that have an assigned_to but no assigned_type';
/**
* Execute the console command.
*/
public function handle()
{
$assets = Asset::whereNull("assigned_type")->whereNotNull("assigned_to")->withTrashed();
$this->withProgressBar($assets->get(), function (Asset $asset) {
//now check each action log, from the most recent backwards, to find the last checkin or checkout
foreach($asset->log()->orderBy("id","desc")->get() as $action_log) {
if($this->option("debug")) {
$this->info("Asset id: " . $asset->id . " action log, action type is: " . $action_log->action_type);
}
switch($action_log->action_type) {
case 'checkin from':
if($this->option("debug")) {
$this->info("Doing a checkin for ".$asset->id);
}
$asset->assigned_to = null;
// if you have a required custom field, we still want to save, and we *don't* want an action_log
$asset->saveQuietly();
return;
case 'checkout':
if($this->option("debug")) {
$this->info("Doing a checkout for " . $asset->id . " picking target type: " . $action_log->target_type);
}
if($asset->assigned_to != $action_log->target_id) {
$this->error("Asset's assigned_to does *NOT* match Action Log's target_id. \$asset->assigned_to=".$asset->assigned_to." vs. \$action_log->target_id=".$action_log->target_id);
//FIXME - do we abort here? Do we try to keep looking? I don't know, this means your data is *really* messed up...
}
$asset->assigned_type = $action_log->target_type;
$asset->saveQuietly(); // see above
return;
}
}
$asset->assigned_to = null; //asset was never checked in or out in its lifetime - it stays 'checked in'
$asset->saveQuietly(); //see above
});
$this->newLine();
$this->info("Assets assigned_type are fixed");
}
}

View File

@@ -2,12 +2,10 @@
namespace App\Console\Commands;
use App\Helpers\Helper;
use Illuminate\Console\Command;
use App\Models\User;
use Laravel\Passport\TokenRepository;
use Illuminate\Contracts\Validation\Factory as ValidationFactory;
use DB;
use Illuminate\Support\Facades\DB;
class GeneratePersonalAccessToken extends Command
{
@@ -43,9 +41,8 @@ class GeneratePersonalAccessToken extends Command
*
* @return void
*/
public function __construct(TokenRepository $tokenRepository, ValidationFactory $validation)
public function __construct(TokenRepository $tokenRepository)
{
$this->validation = $validation;
$this->tokenRepository = $tokenRepository;
parent::__construct();
}
@@ -76,7 +73,7 @@ class GeneratePersonalAccessToken extends Command
} else {
$this->warn('Your API Token has been created. Be sure to copy this token now, as it will not be accessible again.');
$this->warn('Your API Token has been created. Be sure to copy this token now, as it WILL NOT be accessible again.');
if ($token = DB::table('oauth_access_tokens')->where('user_id', '=', $user->id)->where('name','=',$accessTokenName)->orderBy('created_at', 'desc')->first()) {
$this->info('API Token ID: '.$token->id);

389
app/Console/Commands/LdapSync.php Executable file → Normal file
View File

@@ -2,6 +2,7 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Department;
use App\Models\Group;
use Illuminate\Console\Command;
@@ -9,7 +10,7 @@ use App\Models\Setting;
use App\Models\Ldap;
use App\Models\User;
use App\Models\Location;
use Log;
use Illuminate\Support\Facades\Log;
class LdapSync extends Command
{
@@ -18,7 +19,7 @@ class LdapSync extends Command
*
* @var string
*/
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=} {--base_dn=} {--filter=} {--summary} {--json_summary}';
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=*} {--base_dn=} {--filter=} {--summary} {--json_summary}';
/**
* The console command description.
@@ -53,19 +54,32 @@ class LdapSync extends Command
ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); //600 seconds = 10 minutes
ini_set('memory_limit', env('LDAP_MEM_LIM', '500M'));
$ldap_result_username = Setting::getSettings()->ldap_username_field;
$ldap_result_last_name = Setting::getSettings()->ldap_lname_field;
$ldap_result_first_name = Setting::getSettings()->ldap_fname_field;
$ldap_result_active_flag = Setting::getSettings()->ldap_active_flag;
$ldap_result_emp_num = Setting::getSettings()->ldap_emp_num;
$ldap_result_email = Setting::getSettings()->ldap_email;
$ldap_result_phone = Setting::getSettings()->ldap_phone_field;
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
$ldap_result_country = Setting::getSettings()->ldap_country;
$ldap_result_location = Setting::getSettings()->ldap_location;
$ldap_result_dept = Setting::getSettings()->ldap_dept;
$ldap_result_manager = Setting::getSettings()->ldap_manager;
// Map the LDAP attributes to the Snipe-IT user fields.
$ldap_map = [
"username" => Setting::getSettings()->ldap_username_field,
"last_name" => Setting::getSettings()->ldap_lname_field,
"first_name" => Setting::getSettings()->ldap_fname_field,
"active_flag" => Setting::getSettings()->ldap_active_flag,
"emp_num" => Setting::getSettings()->ldap_emp_num,
"email" => Setting::getSettings()->ldap_email,
"phone" => Setting::getSettings()->ldap_phone_field,
"mobile" => Setting::getSettings()->ldap_mobile,
"jobtitle" => Setting::getSettings()->ldap_jobtitle,
"address" => Setting::getSettings()->ldap_address,
"city" => Setting::getSettings()->ldap_city,
"state" => Setting::getSettings()->ldap_state,
"zip" => Setting::getSettings()->ldap_zip,
"country" => Setting::getSettings()->ldap_country,
"location" => Setting::getSettings()->ldap_location,
"dept" => Setting::getSettings()->ldap_dept,
"manager" => Setting::getSettings()->ldap_manager,
"display_name" => Setting::getSettings()->ldap_display_name,
];
$ldap_default_group = Setting::getSettings()->ldap_default_group;
$search_base = Setting::getSettings()->ldap_base_dn;
try {
$ldapconn = Ldap::connectToLdap();
@@ -83,17 +97,48 @@ class LdapSync extends Command
$summary = [];
try {
/**
* if a location ID has been specified, use that OU
*/
if ( $this->option('location_id') ) {
foreach($this->option('location_id') as $location_id){
$location_ou = Location::where('id', '=', $location_id)->value('ldap_ou');
$search_base = $location_ou;
Log::debug('Importing users from specified location OU: \"'.$search_base.'\".');
}
}
/**
* if a manual base DN has been specified, use that. Allow the Base DN to override
* even if there's a location-based DN - if you picked it, you must have picked it for a reason.
*/
if ($this->option('base_dn') != '') {
$search_base = $this->option('base_dn');
Log::debug('Importing users from specified base DN: \"'.$search_base.'\".');
} else {
$search_base = null;
}
/**
* If a filter has been specified, use that, otherwise default to null
*/
if ($this->option('filter') != '') {
$results = Ldap::findLdapUsers($search_base, -1, $this->option('filter'));
$filter = $this->option('filter');
} else {
$results = Ldap::findLdapUsers($search_base);
$filter = null;
}
/**
* We only need to request the LDAP attributes that we process
*/
$attributes = array_values(array_filter($ldap_map));
if (Setting::getSettings()->is_ad === 1 && is_null($ldap_map['active_flag'])) {
$attributes[] = 'useraccountcontrol';
}
$results = Ldap::findLdapUsers($search_base, -1, $filter, $attributes);
} catch (\Exception $e) {
if ($this->option('json_summary')) {
$json_summary = ['error' => true, 'error_message' => $e->getMessage(), 'summary' => []];
@@ -105,19 +150,24 @@ class LdapSync extends Command
}
/* Determine which location to assign users to by default. */
$location = null; // TODO - this would be better called "$default_location", which is more explicit about its purpose
$default_location = null;
if ($this->option('location') != '') {
$location = Location::where('name', '=', $this->option('location'))->first();
Log::debug('Location name '.$this->option('location').' passed');
Log::debug('Importing to '.$location->name.' ('.$location->id.')');
} elseif ($this->option('location_id') != '') {
$location = Location::where('id', '=', $this->option('location_id'))->first();
Log::debug('Location ID '.$this->option('location_id').' passed');
Log::debug('Importing to '.$location->name.' ('.$location->id.')');
}
if ($default_location = Location::where('name', '=', $this->option('location'))->first()) {
Log::debug('Location name ' . $this->option('location') . ' passed');
Log::debug('Importing to '.$default_location->name.' ('.$default_location->id.')');
}
if (! isset($location)) {
} elseif ($this->option('location_id')) {
//TODO - figure out how or why this is an array?
foreach($this->option('location_id') as $location_id) {
if ($default_location = Location::where('id', '=', $location_id)->first()) {
Log::debug('Location ID ' . $location_id . ' passed');
Log::debug('Importing to '.$default_location->name.' ('.$default_location->id.')');
}
}
}
if (!isset($default_location)) {
Log::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
}
@@ -140,7 +190,7 @@ class LdapSync extends Command
// Inject location information fields
for ($i = 0; $i < $results['count']; $i++) {
$results[$i]['ldap_location_override'] = false;
$results[$i]['location_id'] = 0;
$results[$i]['location_id'] = null;
}
// Grab subsets based on location-specific DNs, and overwrite location for these users.
@@ -158,17 +208,17 @@ class LdapSync extends Command
}
$usernames = [];
for ($i = 0; $i < $location_users['count']; $i++) {
if (array_key_exists($ldap_result_username, $location_users[$i])) {
if (array_key_exists($ldap_map["username"], $location_users[$i])) {
$location_users[$i]['ldap_location_override'] = true;
$location_users[$i]['location_id'] = $ldap_loc['id'];
$usernames[] = $location_users[$i][$ldap_result_username][0];
$usernames[] = $location_users[$i][$ldap_map["username"]][0];
}
}
// Delete located users from the general group.
foreach ($results as $key => $generic_entry) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_result_username, $generic_entry))) {
if (in_array($generic_entry[$ldap_result_username][0], $usernames)) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_map["username"], $generic_entry))) {
if (in_array($generic_entry[$ldap_map["username"]][0], $usernames)) {
unset($results[$key]);
}
}
@@ -192,77 +242,92 @@ class LdapSync extends Command
}
// Assign the mapped LDAP attributes for each user to the Snipe-IT user fields
for ($i = 0; $i < $results['count']; $i++) {
$item = [];
$item['username'] = $results[$i][$ldap_result_username][0] ?? '';
$item['employee_number'] = $results[$i][$ldap_result_emp_num][0] ?? '';
$item['lastname'] = $results[$i][$ldap_result_last_name][0] ?? '';
$item['firstname'] = $results[$i][$ldap_result_first_name][0] ?? '';
$item['email'] = $results[$i][$ldap_result_email][0] ?? '';
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
$item['location_id'] = $results[$i]['location_id'] ?? '';
$item['telephone'] = $results[$i][$ldap_result_phone][0] ?? '';
$item['jobtitle'] = $results[$i][$ldap_result_jobtitle][0] ?? '';
$item['country'] = $results[$i][$ldap_result_country][0] ?? '';
$item['department'] = $results[$i][$ldap_result_dept][0] ?? '';
$item['manager'] = $results[$i][$ldap_result_manager][0] ?? '';
$item['location'] = $results[$i][$ldap_result_location][0] ?? '';
$item = [];
$item['username'] = $results[$i][$ldap_map["username"]][0] ?? '';
$item['display_name'] = $results[$i][$ldap_map["display_name"]][0] ?? '';
$item['employee_number'] = $results[$i][$ldap_map["emp_num"]][0] ?? '';
$item['lastname'] = $results[$i][$ldap_map["last_name"]][0] ?? '';
$item['firstname'] = $results[$i][$ldap_map["first_name"]][0] ?? '';
$item['email'] = $results[$i][$ldap_map["email"]][0] ?? '';
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
$item['location_id'] = $results[$i]['location_id'] ?? '';
$item['telephone'] = $results[$i][$ldap_map["phone"]][0] ?? '';
$item['mobile'] = $results[$i][$ldap_map["mobile"]][0] ?? '';
$item['jobtitle'] = $results[$i][$ldap_map["jobtitle"]][0] ?? '';
$item['address'] = $results[$i][$ldap_map["address"]][0] ?? '';
$item['city'] = $results[$i][$ldap_map["city"]][0] ?? '';
$item['state'] = $results[$i][$ldap_map["state"]][0] ?? '';
$item['country'] = $results[$i][$ldap_map["country"]][0] ?? '';
$item['zip'] = $results[$i][$ldap_map["zip"]][0] ?? '';
$item['department'] = $results[$i][$ldap_map["dept"]][0] ?? '';
$item['manager'] = $results[$i][$ldap_map["manager"]][0] ?? '';
$item['location'] = $results[$i][$ldap_map["location"]][0] ?? '';
$location = $default_location; //initially, set '$location' to the default_location (which may just be `null`)
// ONLY if you are using the "ldap_location" option *AND* you have an actual result
if ($ldap_result_location && $item['location']) {
$location = Location::firstOrCreate([
'name' => $item['location'],
]);
}
$department = Department::firstOrCreate([
'name' => $item['department'],
// ONLY if you are using the "ldap_location" option *AND* you have an actual result
if ($ldap_map["location"] && $item['location']) {
$location = Location::firstOrCreate([
'name' => $item['location'],
]);
}
$department = Department::firstOrCreate([
'name' => $item['department'],
]);
$user = User::where('username', $item['username'])->first();
if ($user) {
// Updating an existing user.
$item['createorupdate'] = 'updated';
} else {
// Creating a new user.
$user = new User;
$user->password = $user->noPassword();
$user->activated = 1; // newly created users can log in by default, unless AD's UAC is in use, or an active flag is set (below)
$item['createorupdate'] = 'created';
}
$user = User::where('username', $item['username'])->first();
if ($user) {
// Updating an existing user.
$item['createorupdate'] = 'updated';
} else {
// Creating a new user.
$user = new User;
$user->password = $user->noPassword();
$user->locale = app()->getLocale();
$user->activated = 1; // newly created users can log in by default, unless AD's UAC is in use, or an active flag is set (below)
$item['createorupdate'] = 'created';
}
//If a sync option is not filled in on the LDAP settings don't populate the user field
if($ldap_result_username != null){
if($ldap_map["username"] != null){
$user->username = $item['username'];
}
if($ldap_result_last_name != null){
if($ldap_map["display_name"] != null){
$user->display_name = $item['display_name'];
}
if($ldap_map["last_name"] != null){
$user->last_name = $item['lastname'];
}
if($ldap_result_first_name != null){
if($ldap_map["first_name"] != null){
$user->first_name = $item['firstname'];
}
if($ldap_result_emp_num != null){
if($ldap_map["emp_num"] != null){
$user->employee_num = e($item['employee_number']);
}
if($ldap_result_email != null){
if($ldap_map["email"] != null){
$user->email = $item['email'];
}
if($ldap_result_phone != null){
if($ldap_map["phone"] != null){
$user->phone = $item['telephone'];
}
if($ldap_result_jobtitle != null){
if($ldap_map["mobile"] != null){
$user->mobile = $item['mobile'];
}
if($ldap_map["jobtitle"] != null){
$user->jobtitle = $item['jobtitle'];
}
if($ldap_result_country != null){
if($ldap_map["country"] != null){
$user->country = $item['country'];
}
if($ldap_result_dept != null){
if($ldap_map["dept"] != null){
$user->department_id = $department->id;
}
if($ldap_result_location != null){
$user->location_id = $location ? $location->id : null;
if($ldap_map["location"] != null){
$user->location_id = $location?->id;
}
if($ldap_result_manager != null){
if($ldap_map["manager"] != null){
if($item['manager'] != null) {
// Check Cache first
if (isset($manager_cache[$item['manager']])) {
@@ -273,69 +338,82 @@ class LdapSync extends Command
try {
$ldap_manager = Ldap::findLdapUsers($item['manager'], -1, $this->option('filter'));
} catch (\Exception $e) {
\Log::warning("Manager lookup caused an exception: " . $e->getMessage() . ". Falling back to direct username lookup");
Log::warning("Manager lookup caused an exception: " . $e->getMessage() . ". Falling back to direct username lookup");
// Hail-mary for Okta manager 'shortnames' - will only work if
// Okta configuration is using full email-address-style usernames
$ldap_manager = [
"count" => 1,
0 => [
$ldap_result_username => [$item['manager']]
$ldap_map["username"] => [$item['manager']]
]
];
}
$add_manager_to_cache = true;
if ($ldap_manager["count"] > 0) {
try {
// Get the Manager's username
// PHP LDAP returns every LDAP attribute as an array, and 90% of the time it's an array of just one item. But, hey, it's an array.
$ldapManagerUsername = $ldap_manager[0][$ldap_map["username"]][0];
// Get the Manager's username
// PHP LDAP returns every LDAP attribute as an array, and 90% of the time it's an array of just one item. But, hey, it's an array.
$ldapManagerUsername = $ldap_manager[0][$ldap_result_username][0];
// Get User from Manager username.
$ldap_manager = User::where('username', $ldapManagerUsername)->first();
// Get User from Manager username.
$ldap_manager = User::where('username', $ldapManagerUsername)->first();
if ($ldap_manager && isset($ldap_manager->id)) {
// Link user to manager id.
$user->manager_id = $ldap_manager->id;
if ($ldap_manager && isset($ldap_manager->id)) {
// Link user to manager id.
$user->manager_id = $ldap_manager->id;
}
} catch (\Exception $e) {
$add_manager_to_cache = false;
\Log::warning('Handling ldap manager ' . $item['manager'] . ' caused an exception: ' . $e->getMessage() . '. Continuing synchronization.');
}
}
$manager_cache[$item['manager']] = $ldap_manager && isset($ldap_manager->id) ? $ldap_manager->id : null; // Store results in cache, even if 'failed'
if ($add_manager_to_cache) {
$manager_cache[$item['manager']] = $ldap_manager && isset($ldap_manager->id) ? $ldap_manager->id : null; // Store results in cache, even if 'failed'
}
}
}
}
// Sync activated state for Active Directory.
if ( !empty($ldap_result_active_flag)) { // IF we have an 'active' flag set....
// ....then *most* things that are truthy will activate the user. Anything falsey will deactivate them.
// (Specifically, we don't handle a value of '0.0' correctly)
$raw_value = @$results[$i][$ldap_result_active_flag][0];
$filter_var = filter_var($raw_value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
$boolean_cast = (bool)$raw_value;
// Sync activated state for Active Directory.
if (!empty($ldap_map["active_flag"])) { // IF we have an 'active' flag set....
// ....then *most* things that are truthy will activate the user. Anything falsey will deactivate them.
// (Specifically, we don't handle a value of '0.0' correctly)
$raw_value = @$results[$i][$ldap_map["active_flag"]][0];
$filter_var = filter_var($raw_value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
$boolean_cast = (bool) $raw_value;
if (Setting::getSettings()->ldap_invert_active_flag === 1) {
// Because ldap_active_flag is set, if filter_var is true or boolean_cast is true, then user is suspended
$user->activated = !($filter_var ?? $boolean_cast);
}else{
$user->activated = $filter_var ?? $boolean_cast; // if filter_var() was true or false, use that. If it's null, use the $boolean_cast
}
} elseif (array_key_exists('useraccountcontrol', $results[$i]) ) {
// ....otherwise, (ie if no 'active' LDAP flag is defined), IF the UAC setting exists,
// ....then use the UAC setting on the account to determine can-log-in vs. cannot-log-in
} elseif (array_key_exists('useraccountcontrol', $results[$i])) {
// ....otherwise, (ie if no 'active' LDAP flag is defined), IF the UAC setting exists,
// ....then use the UAC setting on the account to determine can-log-in vs. cannot-log-in
/* The following is _probably_ the correct logic, but we can't use it because
some users may have been dependent upon the previous behavior, and this
could cause additional access to be available to users they don't want
to allow to log in.
/* The following is _probably_ the correct logic, but we can't use it because
some users may have been dependent upon the previous behavior, and this
could cause additional access to be available to users they don't want
to allow to log in.
$useraccountcontrol = $results[$i]['useraccountcontrol'][0];
if(
// based on MS docs at: https://support.microsoft.com/en-us/help/305144/how-to-use-useraccountcontrol-to-manipulate-user-account-properties
($useraccountcontrol & 0x200) && // is a NORMAL_ACCOUNT
!($useraccountcontrol & 0x02) && // *and* _not_ ACCOUNTDISABLE
!($useraccountcontrol & 0x10) // *and* _not_ LOCKOUT
) {
$user->activated = 1;
} else {
$user->activated = 0;
} */
$enabled_accounts = [
$useraccountcontrol = $results[$i]['useraccountcontrol'][0];
if(
// based on MS docs at: https://support.microsoft.com/en-us/help/305144/how-to-use-useraccountcontrol-to-manipulate-user-account-properties
($useraccountcontrol & 0x200) && // is a NORMAL_ACCOUNT
!($useraccountcontrol & 0x02) && // *and* _not_ ACCOUNTDISABLE
!($useraccountcontrol & 0x10) // *and* _not_ LOCKOUT
) {
$user->activated = 1;
} else {
$user->activated = 0;
} */
$enabled_accounts = [
'512', // 0x200 NORMAL_ACCOUNT
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
@@ -348,44 +426,59 @@ class LdapSync extends Command
'4260352', // 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
'1049088', // 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
'1114624', // 0x110200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, NOT_DELEGATED,
];
$user->activated = (in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts)) ? 1 : 0;
];
$user->activated = (in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts)) ? 1 : 0;
// If we're not using AD, and there isn't an activated flag set, activate all users
} /* implied 'else' here - leave the $user->activated flag alone. Newly-created accounts will be active.
already-existing accounts will be however the administrator has set them */
} /* implied 'else' here - leave the $user->activated flag alone. Newly-created accounts will be active.
already-existing accounts will be however the administrator has set them */
if ($item['ldap_location_override'] == true) {
$user->location_id = $item['location_id'];
} elseif ((isset($location)) && (! empty($location))) {
if ((is_array($location)) && (array_key_exists('id', $location))) {
$user->location_id = $location['id'];
} elseif (is_object($location)) {
$user->location_id = $location->id;
if ($item['ldap_location_override'] == true) {
$user->location_id = $item['location_id'];
} elseif ((isset($location)) && (!empty($location))) {
if ((is_array($location)) && (array_key_exists('id', $location))) {
$user->location_id = $location['id'];
} elseif (is_object($location)) {
$user->location_id = $location->id; //THIS is the magic line, this should do it.
}
}
// TODO - should we be NULLING locations if $location is really `null`, and that's what we came up with?
// will that conflict with any overriding setting that the user set? Like, if they moved someone from
// the 'null' location to somewhere, we wouldn't want to try to override that, right?
$location = null;
$user->ldap_import = 1;
$errors = '';
if ($user->save()) {
$item['note'] = $item['createorupdate'];
$item['status'] = 'success';
if ($item['createorupdate'] === 'created' && $ldap_default_group) {
// Check if the relationship already exists
if (!$user->groups()->where('group_id', $ldap_default_group)->exists()) {
$user->groups()->attach($ldap_default_group);
}
}
//updates assets location based on user's location
if ($user->wasChanged('location_id')) {
foreach ($user->assets as $asset) {
$asset->location_id = $user->location_id;
// TODO: somehow add note? "Asset Location Changed because of thing"
$asset->save();
}
}
$user->ldap_import = 1;
$errors = '';
if ($user->save()) {
$item['note'] = $item['createorupdate'];
$item['status'] = 'success';
if ( $item['createorupdate'] === 'created' && $ldap_default_group) {
$user->groups()->attach($ldap_default_group);
}
} else {
foreach ($user->getErrors()->getMessages() as $key => $err) {
$errors .= $err[0];
}
$item['note'] = $errors;
$item['status'] = 'error';
} else {
foreach ($user->getErrors()->getMessages() as $key => $err) {
$errors .= $err[0];
}
$item['note'] = $errors;
$item['status'] = 'error';
}
array_push($summary, $item);
array_push($summary, $item);
}
if ($this->option('summary')) {

View File

@@ -5,7 +5,8 @@ namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Setting;
use Exception;
use Crypt;
use Illuminate\Support\Facades\Crypt;
use App\Models\Ldap;
/**
* Check if a given ip is in a network
@@ -160,7 +161,15 @@ class LdapTroubleshooter extends Command
$output[] = "-x";
$output[] = "-b ".escapeshellarg($settings->ldap_basedn);
$output[] = "-D ".escapeshellarg($settings->ldap_uname);
$output[] = "-w ".escapeshellarg(\Crypt::Decrypt($settings->ldap_pword));
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (\Exception $e) {
$this->warn("Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.");
exit(0);
}
$output[] = "-w ". escapeshellarg($w);
$output[] = escapeshellarg(parenthesized_filter($settings->ldap_filter));
if($settings->ldap_tls) {
$this->line("# adding STARTTLS option");
@@ -171,6 +180,23 @@ class LdapTroubleshooter extends Command
$this->line(implode(" \\\n",$output));
exit(0);
}
//PHP Version check for warning
$php_version = phpversion();
list($major, $minor, $patch) = explode('.', $php_version);
if (
$major < 8 ||
($major == 8 && $minor < 3) ||
($major == 8 && $minor == 3 && $patch < 21) ||
($major == 8 && $minor == 4 && $patch < 7)
) {
$this->warn("PHP Version: $php_version WARNING - Versions before 8.3.21 or 8.4.7 will return INCONSISTENT results!");
if (!$this->confirm("Are you sure you wish to continue?")) {
$this->warn("ABORTING");
exit(-1);
}
}
if(!$this->option('force')) {
$confirmation = $this->confirm('WARNING: This command will make several attempts to connect to your LDAP server. Are you sure this is ok?');
if(!$confirmation) {
@@ -179,7 +205,7 @@ class LdapTroubleshooter extends Command
}
}
//$this->line(print_r($settings,true));
$this->info("STAGE 1: Checking settings");
$this->line("STAGE 1: Checking settings");
if(!$settings->ldap_enabled) {
$this->error("WARNING: Snipe-IT's LDAP setting is not turned on. (That may be OK if you're still trying to figure out settings)");
}
@@ -210,32 +236,40 @@ class LdapTroubleshooter extends Command
$this->info("Determined LDAP hostname to be: ".$parsed['host']);
}
$this->info("Performing DNS lookup of: ".$parsed['host']);
$ips = dns_get_record($parsed['host']);
$raw_ips = [];
//$this->info("Host IP is: ".print_r($ips,true));
if (inet_pton($parsed['host']) !== false) {
$this->line($parsed['host'] . " already looks like an address; skipping DNS lookup");
$raw_ips[] = $parsed['host'];
} else {
$this->line("Performing DNS lookup of: " . $parsed['host']);
$ips = dns_get_record($parsed['host']);
if(!$ips || count($ips) == 0) {
$this->error("ERROR: DNS lookup of host: ".$parsed['host']." has failed. ABORTING.");
exit(-1);
}
$this->debugout("IP's? ".print_r($ips,true));
foreach($ips as $ip) {
if(!isset($ip['ip'])) {
continue;
//$this->info("Host IP is: ".print_r($ips,true));
if (!$ips || count($ips) == 0) {
$this->error("ERROR: DNS lookup of host: " . $parsed['host'] . " has failed. ABORTING.");
exit(-1);
}
$raw_ips[]=$ip['ip'];
if($ip['ip'] == "127.0.0.1") {
$this->debugout("IP's? " . print_r($ips, true));
foreach ($ips as $ip) {
if (!isset($ip['ip'])) {
continue;
}
$raw_ips[] = $ip['ip'];
}
}
foreach ($raw_ips as $ip) {
if ($ip == "127.0.0.1") {
$this->error("WARNING: Using the localhost IP as the LDAP server. This is usually wrong");
}
if(ip_in_range($ip['ip'],'10.0.0.0/8') || ip_in_range($ip['ip'],'192.168.0.0/16') || ip_in_range($ip['ip'], '172.16.0.0/12')) {
if (ip_in_range($ip, '10.0.0.0/8') || ip_in_range($ip, '192.168.0.0/16') || ip_in_range($ip, '172.16.0.0/12')) {
$this->error("WARNING: Using an RFC1918 Private address for LDAP server. This may be correct, but it can be a problem if your Snipe-IT instance is not hosted on your private network");
}
}
$this->info("STAGE 2: Checking basic network connectivity");
$ports = [389,636];
$this->line("STAGE 2: Checking basic network connectivity");
$ports = [636, 389];
if(@$parsed['port'] && !in_array($parsed['port'],$ports)) {
$ports[] = $parsed['port'];
}
@@ -246,7 +280,7 @@ class LdapTroubleshooter extends Command
$errstr = '';
$timeout = 30.0;
$result = '';
$this->info("Attempting to connect to port: ".$port." - may take up to $timeout seconds");
$this->line("Attempting to connect to port: " . $port . " - may take up to $timeout seconds");
try {
$result = fsockopen($parsed['host'], $port, $errno, $errstr, 30.0);
} catch(Exception $e) {
@@ -265,9 +299,9 @@ class LdapTroubleshooter extends Command
exit(-1);
}
$this->info("STAGE 3: Determine encryption algorithm, if any");
$this->line("STAGE 3: Determine encryption algorithm, if any");
$ldap_urls = [];
$ldap_urls = []; // [url, cert-check?, start_tls?]
$pretty_ldap_urls = [];
foreach($open_ports as $port) {
$this->line("Trying TLS first for port $port");
@@ -275,35 +309,46 @@ class LdapTroubleshooter extends Command
if($this->test_anonymous_bind($ldap_url)) {
$this->info("Anonymous bind succesful to $ldap_url!");
$ldap_urls[] = [ $ldap_url, true, false ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "no" ];
$pretty_ldap_urls[] = [$ldap_url, "enabled", "n/a (no)"];
continue; // TODO - lots of copypasta in these if(test_anonymous_bind()) routines...
} else {
$this->error("WARNING: Failed to bind to $ldap_url - trying without certificate checks.");
}
if($this->test_anonymous_bind($ldap_url, false)) {
$this->info("Anonymous bind succesful to $ldap_url with certifcate-checks disabled");
$ldap_urls[] = [ $ldap_url, false, false ];
$pretty_ldap_urls[] = [ $ldap_url, "no", "no" ];
$this->info("Anonymous bind successful to $ldap_url with certificate-checks disabled");
$ldap_urls[] = [$ldap_url, false, false];
$pretty_ldap_urls[] = [$ldap_url, "DISABLED", "n/a (no)"];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with certificate checks disabled. Trying unencrypted with STARTTLS");
}
// now switching to ldap:// URL's from ldaps://
$ldap_url = "ldap://".$parsed['host'].":$port";
if($this->test_anonymous_bind($ldap_url, true, true)) {
$this->info("Plain connection to $ldap_url with STARTTLS succesful!");
$ldap_urls[] = [ $ldap_url, true, true ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "YES" ];
$pretty_ldap_urls[] = [$ldap_url, "enabled", "STARTTLS ENABLED"];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled. Trying without STARTTLS");
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled. Trying without certificate checks.");
}
if ($this->test_anonymous_bind($ldap_url, false, true)) {
$this->info("Plain connection to $ldap_url with STARTTLS and cert checks *disabled* successful!");
$ldap_urls[] = [$ldap_url, false, true];
$pretty_ldap_urls[] = [$ldap_url, "DISABLED", "STARTTLS ENABLED"];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled, and cert checks disabled. Trying without STARTTLS");
}
if($this->test_anonymous_bind($ldap_url)) {
$this->info("Plain connection to $ldap_url succesful!");
$ldap_urls[] = [ $ldap_url, true, false ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "no" ];
$pretty_ldap_urls[] = [$ldap_url, "n/a", "starttls disabled"];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url. Giving up on port $port");
@@ -313,23 +358,29 @@ class LdapTroubleshooter extends Command
$this->debugout(print_r($ldap_urls,true));
if(count($ldap_urls) > 0 ) {
$this->info("Found working LDAP URL's: ");
$this->debugout("Found working LDAP URL's: ");
foreach($ldap_urls as $ldap_url) { // TODO maybe do this as a $this->table() instead?
$this->info("LDAP URL: ".$ldap_url[0]);
$this->info($ldap_url[0]. ($ldap_url[1] ? " certificate checks enabled" : " certificate checks disabled"). ($ldap_url[2] ? " STARTTLS Enabled ": " STARTTLS Disabled"));
$this->debugout("LDAP URL: " . $ldap_url[0]);
$this->debugout($ldap_url[0] . ($ldap_url[1] ? " certificate checks enabled" : " certificate checks disabled") . ($ldap_url[2] ? " STARTTLS Enabled " : " STARTTLS Disabled"));
}
$this->table(["URL", "Cert Checks Enabled?", "STARTTLS Enabled?"],$pretty_ldap_urls);
$this->table(["URL", "Cert Checks?", "STARTTLS?"], $pretty_ldap_urls);
} else {
$this->error("ERROR - no valid LDAP URL's available - ABORTING");
exit(1);
}
$this->info("STAGE 4: Test Administrative Bind for LDAP Sync");
$this->line("STAGE 4: Test Administrative Bind for LDAP Sync");
foreach($ldap_urls AS $ldap_url) {
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $settings->ldap_uname, Crypt::decrypt($settings->ldap_pword));
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (\Exception $e) {
$this->warn("Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.");
exit(0);
}
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $settings->ldap_uname, $w);
}
$this->info("STAGE 5: Test BaseDN");
$this->line("STAGE 5: Test BaseDN");
//grab all LDAP_ constants and fill up a reversed array mapping from weird LDAP dotted-strings to (Constant Name)
$all_defined_constants = get_defined_constants();
$ldap_constants = [];
@@ -341,16 +392,23 @@ class LdapTroubleshooter extends Command
$this->debugout("LDAP constants are: ".print_r($ldap_constants,true));
foreach($ldap_urls AS $ldap_url) {
if($this->test_informational_bind($ldap_url[0],$ldap_url[1],$ldap_url[2],$settings->ldap_uname,Crypt::decrypt($settings->ldap_pword),$settings)) {
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (\Exception $e) {
$this->warn("Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.");
exit(0);
}
if($this->test_informational_bind($ldap_url[0],$ldap_url[1],$ldap_url[2],$settings->ldap_uname,$w,$settings)) {
$this->info("Success getting informational bind!");
} else {
$this->error("Unable to get information from bind.");
}
}
$this->info("STAGE 6: Test LDAP Login to Snipe-IT");
$this->line("STAGE 6: Test LDAP Login to Snipe-IT");
foreach($ldap_urls AS $ldap_url) {
$this->info("Starting auth to ".$ldap_url[0]);
$this->line("Starting auth to " . $ldap_url[0]);
while(true) {
$with_tls = $ldap_url[1] ? "with": "without";
$with_startssl = $ldap_url[2] ? "using": "not using";
@@ -359,7 +417,12 @@ class LdapTroubleshooter extends Command
}
$username = $this->ask("Username");
$password = $this->secret("Password");
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $username, $password); // FIXME - should do some other stuff here, maybe with the concatenating or something? maybe? and/or should put up some results?
$results = $this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $username, $password); // FIXME - should do some other stuff here, maybe with the concatenating or something? maybe? and/or should put up some results?
if ($results) {
$this->info("Success authenticating with " . $username);
} else {
$this->error("Unable to authenticate with " . $username);
}
}
}
@@ -368,14 +431,17 @@ class LdapTroubleshooter extends Command
public function connect_to_ldap($ldap_url, $check_cert, $start_tls)
{
if ($check_cert) {
$this->line("we *ARE* checking certs");
Ldap::ignoreCertificates(false);
} else {
$this->line("we are IGNORING certs");
Ldap::ignoreCertificates(true);
}
$lconn = ldap_connect($ldap_url);
ldap_set_option($lconn, LDAP_OPT_PROTOCOL_VERSION, 3); // should we 'test' different protocol versions here? Does anyone even use anything other than LDAPv3?
// no - it's formally deprecated: https://tools.ietf.org/html/rfc3494
if(!$check_cert) {
putenv('LDAPTLS_REQCERT=never'); // This is horrible; is this *really* the only way to do it?
} else {
putenv('LDAPTLS_REQCERT'); // have to very explicitly and manually *UN* set the env var here to ensure it works
}
if($this->settings->ldap_client_tls_cert && $this->settings->ldap_client_tls_key) {
// client-side TLS certificate support for LDAP (Google Secure LDAP)
putenv('LDAPTLS_CERT=storage/ldap_client_tls.cert');
@@ -404,9 +470,10 @@ class LdapTroubleshooter extends Command
return $this->timed_boolean_execute(function () use ($ldap_url, $check_cert , $start_tls) {
try {
$lconn = $this->connect_to_ldap($ldap_url, $check_cert, $start_tls);
$this->info("gonna try to bind now, this can take a while if we mess it up");
$this->line("Attempting to bind now, this can take a while if we mess it up");
$bind_results = ldap_bind($lconn);
$this->info("Bind results are: ".$bind_results." which translate into boolean: ".(bool)$bind_results);
$this->line("Bind results are: " . $bind_results . " which translate into boolean: " . (bool)$bind_results);
ldap_close($lconn);
return (bool)$bind_results;
} catch (Exception $e) {
$this->error("WARNING: Exception caught during bind - ".$e->getMessage());
@@ -421,6 +488,7 @@ class LdapTroubleshooter extends Command
try {
$lconn = $this->connect_to_ldap($ldap_url, $check_cert, $start_tls);
$bind_results = ldap_bind($lconn, $username, $password);
ldap_close($lconn);
if(!$bind_results) {
$this->error("WARNING: Failed to bind to $ldap_url as $username");
return false;
@@ -446,22 +514,62 @@ class LdapTroubleshooter extends Command
return false;
}
$this->info("SUCCESS - Able to bind to $ldap_url as $username");
$result = ldap_read($conn, '', '(objectClass=*)'/* , ['supportedControl']*/);
$results = ldap_get_entries($conn, $result);
$cleaned_results = $this->ldap_results_cleaner($results);
$this->line(print_r($cleaned_results,true));
//okay, great - now how do we display those results? I have no idea.
$cleaned_results = [];
try {
// This _may_ only work for Active Directory?
$result = ldap_read($conn, '', '(objectClass=*)'/* , ['supportedControl']*/);
$results = ldap_get_entries($conn, $result);
$cleaned_results = $this->ldap_results_cleaner($results);
//$this->line(print_r($cleaned_results,true));
$default_naming_contexts = $cleaned_results[0]['namingcontexts'];
$this->info("Default Naming Contexts:");
$this->info(implode(", ", $default_naming_contexts));
//okay, great - now how do we display those results? I have no idea.
} catch (\Exception $e) {
$this->error("Unable to get base naming contexts - here's what we *did* get:");
$this->line(print_r($cleaned_results, true));
}
// I don't see why this throws an Exception for Google LDAP, but I guess we ought to try and catch it?
$this->comment("I guess we're trying to do the ldap search here, but sometimes it takes too long?");
$this->debugout("I guess we're trying to do the ldap search here, but sometimes it takes too long?");
$this->debugout("Base DN is: ".$settings->ldap_basedn." and filter is: ".parenthesized_filter($settings->ldap_filter));
$search_results = ldap_search($conn, $settings->ldap_basedn, parenthesized_filter($settings->ldap_filter));
$entries = ldap_get_entries($conn, $search_results);
$this->info("Printing first 10 results: ");
for($i=0;$i<10;$i++) {
$this->info($search_results[$i]);
$pretty_data = array_slice($this->ldap_results_cleaner($entries), 0, 10);
//print_r($data);
$headers = [];
foreach ($pretty_data as $row) {
//populate headers
foreach ($row as $key => $value) {
//skip objectsid and objectguid because it junks up output
if ($key == "objectsid" || $key == "objectguid") {
continue;
}
if (!in_array($key, $headers)) {
$headers[] = $key;
}
}
}
$table = [];
//repeat again to populate table
foreach ($pretty_data as $row) {
$newrow = [];
foreach ($headers as $header) {
if (is_array(@$row[$header])) {
$newrow[] = "[" . implode(", ", $row[$header]) . "]";
} else {
$newrow[] = @$row[$header];
}
}
$table[] = $newrow;
}
$this->table($headers, $table);
} catch (\Exception $e) {
$this->error("WARNING: Exception caught during Authed bind to $username - ".$e->getMessage());
return false;
} finally {
ldap_close($conn);
}
});
}
@@ -477,7 +585,7 @@ class LdapTroubleshooter extends Command
{
if(!(function_exists('pcntl_sigtimedwait') && function_exists('posix_getpid') && function_exists('pcntl_fork') && function_exists('posix_kill') && function_exists('pcntl_wifsignaled'))) {
// POSIX functions needed for forking aren't present, just run the function inline (ignoring timeout)
$this->info('WARNING: Unable to execute POSIX fork() commands, timeout may not be respected');
$this->line('WARNING: Unable to execute POSIX fork() commands, timeout may not be respected');
return $function();
} else {
$parent_pid = posix_getpid();
@@ -514,4 +622,6 @@ class LdapTroubleshooter extends Command
}
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Console\Commands;
use App\Events\UserMerged;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Console\Command;
@@ -51,7 +52,7 @@ class MergeUsersByUsername extends Command
$bad_users = User::where('username', '=', trim($parts[0]))
->whereNull('deleted_at')
->with('assets', 'manager', 'userlog', 'licenses', 'consumables', 'accessories', 'managedLocations')
->with('assets', 'manager', 'userlog', 'licenses', 'consumables', 'accessories', 'managedLocations','uploads', 'acceptances')
->get();
@@ -105,10 +106,26 @@ class MergeUsersByUsername extends Command
$managedLocation->save();
}
foreach ($bad_user->uploads as $upload) {
$this->info('Updating upload log record '.$upload->id.' to user '.$user->id);
$upload->item_id = $user->id;
$upload->save();
}
foreach ($bad_user->acceptances as $acceptance) {
$this->info('Updating acceptance log record '.$acceptance->id.' to user '.$user->id);
$acceptance->item_id = $user->id;
$acceptance->save();
}
// Mark the user as deleted
$this->info('Marking the user as deleted');
$bad_user->deleted_at = Carbon::now()->timestamp;
$bad_user->save();
event(new UserMerged($bad_user, $user, null));
}
}
}

View File

@@ -4,6 +4,7 @@ namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;
class MoveUploadsToNewDisk extends Command
{
@@ -74,7 +75,7 @@ class MoveUploadsToNewDisk extends Command
$new_url = Storage::disk('public')->url('uploads/'.$public_type.'/'.$filename, $filename);
$this->info($type_count.'. PUBLIC: '.$filename.' was copied to '.$new_url);
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
$this->error($e);
}
}
@@ -95,7 +96,7 @@ class MoveUploadsToNewDisk extends Command
$private_uploads['assets'] = glob('storage/private_uploads/assets'."/*.*");
$private_uploads['signatures'] = glob('storage/private_uploads/signatures'."/*.*");
$private_uploads['audits'] = glob('storage/private_uploads/audits'."/*.*");
$private_uploads['assetmodels'] = glob('storage/private_uploads/assetmodels'."/*.*");
$private_uploads['assetmodels'] = glob('storage/private_uploads/models'."/*.*");
$private_uploads['imports'] = glob('storage/private_uploads/imports'."/*.*");
$private_uploads['licenses'] = glob('storage/private_uploads/licenses'."/*.*");
$private_uploads['users'] = glob('storage/private_uploads/users'."/*.*");
@@ -116,7 +117,7 @@ class MoveUploadsToNewDisk extends Command
$new_url = Storage::url($private_type . '/' . $filename, $filename);
$this->info($type_count . '. PRIVATE: ' . $filename . ' was copied to ' . $new_url);
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
$this->error($e);
}
}
@@ -140,7 +141,7 @@ class MoveUploadsToNewDisk extends Command
unlink($filename);
$public_delete_count++;
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
$this->error($e);
}
}
@@ -153,7 +154,7 @@ class MoveUploadsToNewDisk extends Command
unlink($filename);
$private_delete_count++;
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
$this->error($e);
}
}

View File

@@ -5,6 +5,8 @@ namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Illuminate\Support\Facades\Log;
use Symfony\Component\Console\Helper\ProgressIndicator;
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); //600 seconds = 10 minutes
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
@@ -28,6 +30,11 @@ class ObjectImportCommand extends Command
*/
protected $description = 'Import Items from CSV';
/**
* The progress indicator instance.
*/
protected ProgressIndicator $progressIndicator;
/**
* Create a new command instance.
*
@@ -38,8 +45,6 @@ class ObjectImportCommand extends Command
parent::__construct();
}
private $bar;
/**
* Execute the console command.
*
@@ -47,59 +52,40 @@ class ObjectImportCommand extends Command
*/
public function handle()
{
$this->progressIndicator = new ProgressIndicator($this->output);
$filename = $this->argument('filename');
$class = title_case($this->option('item-type'));
$classString = "App\\Importer\\{$class}Importer";
$importer = new $classString($filename);
$importer->setCallbacks([$this, 'log'], [$this, 'progress'], [$this, 'errorCallback'])
->setUserId($this->option('user_id'))
->setCreatedBy($this->option('user_id'))
->setUpdating($this->option('update'))
->setShouldNotify($this->option('send-welcome'))
->setUsernameFormat($this->option('username_format'));
// This $logFile/useFiles() bit is currently broken, so commenting it out for now
// $logFile = $this->option('logfile');
// \Log::useFiles($logFile);
$this->comment('======= Importing Items from '.$filename.' =========');
// Log::useFiles($logFile);
$this->progressIndicator->start('======= Importing Items from '.$filename.' =========');
$importer->import();
$this->bar = null;
if (! empty($this->errors)) {
$this->comment('The following Errors were encountered.');
foreach ($this->errors as $asset => $error) {
$this->comment('Error: Item: '.$asset.' failed validation: '.json_encode($error));
}
} else {
$this->comment('All Items imported successfully!');
}
$this->comment('');
$this->progressIndicator->finish('Import finished.');
}
public function errorCallback($item, $field, $errorString)
public function errorCallback($item, $field, $error)
{
$this->errors[$item->name][$field] = $errorString;
$this->output->write("\x0D\x1B[2K");
$this->warn('Error: Item: '.$item->name.' failed validation: '.json_encode($error));
}
public function progress($count)
public function progress($importedItemsCount)
{
if (! $this->bar) {
$this->bar = $this->output->createProgressBar($count);
}
static $index = 0;
$index++;
if ($index < $count) {
$this->bar->advance();
} else {
$this->bar->finish();
}
$this->progressIndicator->advance();
}
// Tracks the current item for error messages
private $updating;
// An array of errors encountered while parsing
private $errors;
/**
* Log a message to file, configurable by the --log-file parameter.
* If a warning message is passed, we'll spit it to the console as well.
@@ -112,10 +98,10 @@ class ObjectImportCommand extends Command
public function log($string, $level = 'info')
{
if ($level === 'warning') {
\Log::warning($string);
Log::warning($string);
$this->comment($string);
} else {
\Log::Info($string);
Log::Info($string);
if ($this->option('verbose')) {
$this->comment($string);
}

View File

@@ -4,8 +4,8 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use Schema;
use DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class PaveIt extends Command
@@ -51,8 +51,7 @@ class PaveIt extends Command
}
// List all the tables in the database so we don't have to worry about missing some as the app grows
$tables = DB::connection()->getDoctrineSchemaManager()->listTableNames();
$tables = Schema::getTables();
$except_tables = [
'oauth_access_tokens',
'oauth_clients',
@@ -60,6 +59,9 @@ class PaveIt extends Command
'migrations',
'settings',
'users',
'telescope_entries',
'telescope_entries_tags',
'telescope_monitoring',
];
// We only need to find out what these are so we can nuke these columns on the assets table.
@@ -67,14 +69,15 @@ class PaveIt extends Command
foreach ($custom_fields as $custom_field) {
$this->info('DROP the '.$custom_field->db_column.' column from assets as well.');
if (\Schema::hasColumn('assets', $custom_field->db_column)) {
\Schema::table('assets', function ($table) use ($custom_field) {
if (Schema::hasColumn('assets', $custom_field->db_column)) {
Schema::table('assets', function ($table) use ($custom_field) {
$table->dropColumn($custom_field->db_column);
});
}
}
foreach ($tables as $table) {
foreach ($tables as $table_obj) {
$table = $table_obj['name'];
if (in_array($table, $except_tables)) {
$this->info($table. ' is SKIPPED.');
} else {
@@ -84,8 +87,8 @@ class PaveIt extends Command
}
// Leave in the demo oauth keys so we don't have to reset them every day in the demos
\DB::statement('delete from oauth_clients WHERE id > 2');
\DB::statement('delete from oauth_access_tokens WHERE id > 2');
DB::statement('delete from oauth_clients WHERE id > 2');
DB::statement('delete from oauth_access_tokens WHERE user_id > 2');
}
}

View File

@@ -3,6 +3,7 @@
namespace App\Console\Commands;
use App\Models\Accessory;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\AssetModel;
use App\Models\Category;
@@ -15,6 +16,8 @@ use App\Models\Statuslabel;
use App\Models\Supplier;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class Purge extends Command
{
@@ -59,19 +62,19 @@ class Purge extends Command
$assetcount = $assets->count();
$this->info($assets->count().' assets purged.');
$asset_assoc = 0;
$asset_maintenances = 0;
$maintenances = 0;
foreach ($assets as $asset) {
$this->info('- Asset "'.$asset->present()->name().'" deleted.');
$this->info('- Asset "'.$asset->display_name.'" deleted.');
$asset_assoc += $asset->assetlog()->count();
$asset->assetlog()->forceDelete();
$asset_maintenances += $asset->assetmaintenances()->count();
$asset->assetmaintenances()->forceDelete();
$maintenances += $asset->maintenances()->count();
$asset->maintenances()->forceDelete();
$asset->forceDelete();
}
$this->info($asset_assoc.' corresponding log records purged.');
$this->info($asset_maintenances.' corresponding maintenance records purged.');
$this->info($maintenances.' corresponding maintenance records purged.');
$locations = Location::whereNotNull('deleted_at')->withTrashed()->get();
$this->info($locations->count().' locations purged.');
@@ -141,6 +144,20 @@ class Purge extends Command
$this->info($users->count().' users purged.');
$user_assoc = 0;
foreach ($users as $user) {
$rel_path = 'private_uploads/users';
$filenames = Actionlog::where('action_type', 'uploaded')
->where('item_id', $user->id)
->pluck('filename');
foreach($filenames as $filename) {
try {
if (Storage::exists($rel_path . '/' . $filename)) {
Storage::delete($rel_path . '/' . $filename);
}
} catch (\Exception $e) {
Log::info('An error occurred while deleting files: ' . $e->getMessage());
}
}
$this->info('- User "'.$user->username.'" deleted.');
$user_assoc += $user->userlog()->count();
$user->userlog()->forceDelete();

View File

@@ -1,157 +0,0 @@
<?php
namespace App\Console\Commands;
use App\LegacyEncrypter\McryptEncrypter;
use App\Models\Asset;
use App\Models\CustomField;
use App\Models\Setting;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
class RecryptFromMcrypt extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:legacy-recrypt
{--force : Force a re-crypt of encrypted data from MCRYPT.}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command allows upgrading users to de-encrypt their deprecated mcrypt encrypted fields and re-encrypt them using the current OpenSSL encryption.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// Check and see if they have a legacy app key listed in their .env
// If not, we can try to use the current APP_KEY if looks like it's old
$legacy_key = env('LEGACY_APP_KEY');
$key_parts = explode(':', $legacy_key);
$legacy_cipher = env('LEGACY_CIPHER', 'rijndael-256');
$errors = [];
if (! $legacy_key) {
$this->error('ERROR: You do not have a LEGACY_APP_KEY set in your .env file. Please locate your old APP_KEY and ADD a line to your .env file like: LEGACY_APP_KEY=YOUR_OLD_APP_KEY');
return false;
}
// Do some basic legacy app key length checks
if (strlen($legacy_key) == 32) {
$legacy_length_check = true;
} elseif (array_key_exists('1', $key_parts) && (strlen($key_parts[1]) == 44)) {
$legacy_key = base64_decode($key_parts[1], true);
$legacy_length_check = true;
} else {
$legacy_length_check = false;
}
// Check that the app key is 32 characters
if ($legacy_length_check === true) {
$this->comment('INFO: Your LEGACY_APP_KEY looks correct. Okay to continue.');
} else {
$this->error('ERROR: Your LEGACY_APP_KEY is not the correct length (32 characters or base64 followed by 44 characters for later versions). Please locate your old APP_KEY and use that as your LEGACY_APP_KEY in your .env file to continue.');
return false;
}
$this->error('================================!!!! WARNING !!!!================================');
$this->error('================================!!!! WARNING !!!!================================');
$this->comment("This tool will attempt to decrypt your old Snipe-IT (mcrypt, now deprecated) encrypted data and re-encrypt it using OpenSSL. \n\nYou should only continue if you have backed up any and all old APP_KEYs and have backed up your data.");
$force = ($this->option('force')) ? true : false;
if ($force || ($this->confirm('Are you SURE you wish to continue?'))) {
$backup_file = 'backups/env-backups/'.'app_key-'.date('Y-m-d-gis');
try {
Storage::disk('local')->put($backup_file, 'APP_KEY: '.config('app.key'));
Storage::disk('local')->append($backup_file, 'LEGACY_APP_KEY: '.$legacy_key);
} catch (\Exception $e) {
$this->info('WARNING: Could not backup app keys');
}
if ($legacy_cipher) {
$mcrypter = new McryptEncrypter($legacy_key, $legacy_cipher);
} else {
$mcrypter = new McryptEncrypter($legacy_key);
}
$settings = Setting::getSettings();
if ($settings->ldap_pword == '') {
$this->comment('INFO: No LDAP password found. Skipping... ');
} else {
$decrypted_ldap_pword = $mcrypter->decrypt($settings->ldap_pword);
$settings->ldap_pword = \Crypt::encrypt($decrypted_ldap_pword);
$settings->save();
}
/** @var CustomField[] $custom_fields */
$custom_fields = CustomField::where('field_encrypted', '=', 1)->get();
$this->comment('INFO: Retrieving encrypted custom fields...');
$query = Asset::withTrashed();
foreach ($custom_fields as $custom_field) {
$this->comment('FIELD TO RECRYPT: '.$custom_field->name.' ('.$custom_field->db_column.')');
$query->orWhereNotNull($custom_field->db_column);
}
// Get all assets with a value in any of the fields that were encrypted
/** @var Asset[] $assets */
$assets = $query->get();
$bar = $this->output->createProgressBar(count($assets));
foreach ($assets as $asset) {
foreach ($custom_fields as $encrypted_field) {
$columnName = $encrypted_field->db_column;
// Make sure the value isn't null
if ($asset->{$columnName} != '') {
// Try to decrypt the payload using the legacy app key
try {
$decrypted_field = $mcrypter->decrypt($asset->{$columnName});
$asset->{$columnName} = \Crypt::encrypt($decrypted_field);
$this->comment($decrypted_field);
} catch (\Exception $e) {
$errors[] = ' - ERROR: Could not decrypt field ['.$encrypted_field->name.']: '.$e->getMessage();
}
}
}
$asset->save();
$bar->advance();
}
$bar->finish();
if (count($errors) > 0) {
$this->comment("\n\n");
$this->error("The decrypter encountered some errors: \n");
foreach ($errors as $error) {
$this->error($error);
}
}
}
}
}

View File

@@ -4,7 +4,7 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Setting;
use Artisan;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
class RegenerateAssetTags extends Command

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\AssetModel;
use Illuminate\Console\Command;
class RemoveExplicitEols extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:remove-explicit-eols {--model_name= : The name of the asset model to update (use "all" to update all models)}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Removes explicit EOLs on assets with selected model so they may inherit the asset model EOL';
/**
* Execute the console command.
*/
public function handle()
{
$startTime = microtime(true);
if ($this->option('model_name') == 'all') {
$assets = Asset::all();
$this->updateAssets($assets);
} else {
$assetModel = AssetModel::where('name', '=', $this->option('model_name'))->first();
if ($assetModel) {
$assets = Asset::where('model_id', '=', $assetModel->id)->get();
$this->updateAssets($assets);
} else {
$this->error('Asset model not found');
}
}
$endTime = microtime(true);
$executionTime = ($endTime - $startTime);
$this->info('Command executed in ' . round($executionTime, 2) . ' seconds.');
}
private function updateAssets($assets)
{
foreach ($assets as $asset) {
$asset->eol_explicit = 0;
$asset->asset_eol_date = null;
$asset->save();
}
$this->info($assets->count() . ' Assets updated successfully');
}
}

View File

@@ -50,12 +50,12 @@ class ResetDemoSettings extends Command
$settings->alert_email = 'service@snipe-it.io';
$settings->login_note = 'Use `admin` / `password` to login to the demo.';
$settings->header_color = null;
$settings->barcode_type = 'QRCODE';
$settings->label2_2d_type = 'QRCODE';
$settings->default_currency = 'USD';
$settings->brand = 2;
$settings->ldap_enabled = 0;
$settings->full_multiple_companies_support = 0;
$settings->alt_barcode = 'C128';
$settings->label2_1d_type = 'C128';
$settings->skin = '';
$settings->email_domain = 'snipeitapp.com';
$settings->email_format = 'filastname';
@@ -63,9 +63,9 @@ class ResetDemoSettings extends Command
$settings->date_display_format = 'D M d, Y';
$settings->time_display_format = 'g:iA';
$settings->thumbnail_max_h = '30';
$settings->locale = 'en';
$settings->locale = 'en-US';
$settings->version_footer = 'on';
$settings->support_footer = null;
$settings->support_footer = 'on';
$settings->saml_enabled = '0';
$settings->saml_sp_x509cert = null;
$settings->saml_idp_metadata = null;
@@ -73,12 +73,13 @@ class ResetDemoSettings extends Command
$settings->saml_forcelogin = '0';
$settings->saml_slo = null;
$settings->saml_custom_settings = null;
$settings->default_avatar = 'default.png';
$settings->save();
if ($user = User::where('username', '=', 'admin')->first()) {
$user->locale = 'en';
$user->locale = 'en-US';
$user->save();
}

View File

@@ -6,8 +6,8 @@ use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\License;
use App\Models\User;
use Artisan;
use DB;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class RestoreDeletedUsers extends Command

View File

@@ -4,6 +4,161 @@ namespace App\Console\Commands;
use Illuminate\Console\Command;
use ZipArchive;
use Illuminate\Support\Facades\Log;
class SQLStreamer {
private $input;
private $output;
// embed the prefix here?
public ?string $prefix;
private bool $reading_beginning_of_line = true;
public static $buffer_size = 1024 * 1024; // use a 1MB buffer, ought to work fine for most cases?
public array $tablenames = [];
private bool $should_guess = false;
private bool $statement_is_permitted = false;
public function __construct($input, $output, string $prefix = null)
{
$this->input = $input;
$this->output = $output;
$this->prefix = $prefix;
}
public function parse_sql(string $line): string {
// take into account the 'start of line or not' setting as an instance variable?
// 'continuation' lines for a permitted statement are PERMITTED.
// remove *only* line-feeds & carriage-returns; helpful for regexes against lines from
// Windows dumps
$line = trim($line, "\r\n");
if($this->statement_is_permitted && $line[0] === ' ') {
return $line . "\n"; //re-add the newline
}
$table_regex = '`?([a-zA-Z0-9_]+)`?';
$allowed_statements = [
"/^(DROP TABLE (?:IF EXISTS )?)`$table_regex(.*)$/" => false,
"/^(CREATE TABLE )$table_regex(.*)$/" => true, //sets up 'continuation'
"/^(LOCK TABLES )$table_regex(.*)$/" => false,
"/^(INSERT INTO )$table_regex(.*)$/" => false,
"/^UNLOCK TABLES/" => false,
// "/^\\) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;/" => false, // FIXME not sure what to do here?
"/^\\)[a-zA-Z0-9_= ]*;$/" => false,
// ^^^^^^ that bit should *exit* the 'permitted' block
"/^\\(.*\\)[,;]$/" => false, //older MySQL dump style with one set of values per line
/* we *could* have made the ^INSERT INTO blah VALUES$ turn on the capturing state, and closed it with
a ^(blahblah);$ but it's cleaner to not have to manage the state machine. We're just going to
assume that (blahblah), or (blahblah); are values for INSERT and are always acceptable. */
"<^/\*!40101 SET NAMES '?[a-zA-Z0-9_-]+'? \*/;$>" => false, //using weird delimiters (<,>) for readability. allow quoted or unquoted charsets
"<^/\*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' \*/;$>" => false, //same, now handle zero-values
];
foreach($allowed_statements as $statement => $statechange) {
// $this->info("Checking regex: $statement...\n");
$matches = [];
if (preg_match($statement,$line,$matches)) {
$this->statement_is_permitted = $statechange;
// matches are: 1 => first part of the statement, 2 => tablename, 3 => rest of statement
// (with of course 0 being "the whole match")
if (@$matches[2]) {
// print "Found a tablename! It's: ".$matches[2]."\n";
if ($this->should_guess) {
@$this->tablenames[$matches[2]] += 1;
continue; //oh? FIXME
} else {
$cleaned_tablename = \DB::getTablePrefix().preg_replace('/^'.$this->prefix.'/','',$matches[2]);
$line = preg_replace($statement,'$1`'.$cleaned_tablename.'`$3' , $line);
}
} else {
// no explicit tablename in this one, leave the line alone
}
//how do we *replace* the tablename?
// print "RETURNING LINE: $line";
return $line . "\n"; //re-add newline
}
}
// all that is not allowed is denied.
return "";
}
//this is used in exactly *TWO* places, and in both cases should return a prefix I think?
// first - if you do the --sanitize-only one (which is mostly for testing/development)
// next - when you run *without* a guessed prefix, this is run first to figure out the prefix
// I think we have to *duplicate* the call to be able to run it again?
public static function guess_prefix($input):string
{
$parser = new self($input, null);
$parser->should_guess = true;
$parser->line_aware_piping(); // <----- THIS is doing the heavy lifting!
$check_tables = ['settings' => null, 'migrations' => null /* 'assets' => null */]; //TODO - move to statics?
//can't use 'users' because the 'accessories_checkout' table?
// can't use 'assets' because 'ver1_components_assets'
foreach($check_tables as $check_table => $_ignore) {
foreach ($parser->tablenames as $tablename => $_count) {
// print "Comparing $tablename to $check_table\n";
if (str_ends_with($tablename,$check_table)) {
// print "Found one!\n";
$check_tables[$check_table] = substr($tablename,0,-strlen($check_table));
}
}
}
$guessed_prefix = null;
foreach ($check_tables as $clean_table => $prefix_guess) {
if(is_null($prefix_guess)) {
print("Couldn't find table $clean_table\n");
die();
}
if(is_null($guessed_prefix)) {
$guessed_prefix = $prefix_guess;
} else {
if ($guessed_prefix != $prefix_guess) {
print("Prefix mismatch! Had guessed $guessed_prefix but got $prefix_guess\n");
die();
}
}
}
return $guessed_prefix;
}
public function line_aware_piping(): int
{
$bytes_read = 0;
if (! $this->input) {
throw new \Exception("No Input available for line_aware_piping");
}
while (($buffer = fgets($this->input, SQLStreamer::$buffer_size)) !== false) {
$bytes_read += strlen($buffer);
if ($this->reading_beginning_of_line) {
// Log::debug("Buffer is: '$buffer'");
$cleaned_buffer = $this->parse_sql($buffer);
if ($this->output) {
$bytes_written = fwrite($this->output, $cleaned_buffer);
if ($bytes_written === false) {
throw new \Exception("Unable to write to pipe");
}
}
}
// if we got a newline at the end of this, then the _next_ read is the beginning of a line
if($buffer[strlen($buffer)-1] === "\n") {
$this->reading_beginning_of_line = true;
} else {
$this->reading_beginning_of_line = false;
}
}
return $bytes_read;
}
}
class RestoreFromBackup extends Command
{
@@ -12,10 +167,14 @@ class RestoreFromBackup extends Command
*
* @var string
*/
// FIXME - , stripping prefixes and nonstandard SQL statements. Without --prefix, guess and return the correct prefix to strip
protected $signature = 'snipeit:restore
{--force : Skip the danger prompt; assuming you enter "y"}
{filename : The zip file to be migrated}
{--no-progress : Don\'t show a progress bar}';
{--no-progress : Don\'t show a progress bar}
{--sanitize-guess-prefix : Guess and output the table-prefix needed to "sanitize" the SQL}
{--sanitize-with-prefix= : "Sanitize" the SQL, using the passed-in table prefix (can be learned from --sanitize-guess-prefix). Pass as just \'--sanitize-with-prefix=\' to use no prefix}
{--sql-stdout-only : ONLY "Sanitize" the SQL and print it to stdout - useful for debugging - probably requires --sanitize-with-prefix= }';
/**
* The console command description.
@@ -34,8 +193,6 @@ class RestoreFromBackup extends Command
parent::__construct();
}
public static $buffer_size = 1024 * 1024; // use a 1MB buffer, ought to work fine for most cases?
/**
* Execute the console command.
*
@@ -45,7 +202,7 @@ class RestoreFromBackup extends Command
{
$dir = getcwd();
if( $dir != base_path() ) { // usually only the case when running via webserver, not via command-line
\Log::debug("Current working directory is: $dir, changing directory to: ".base_path());
Log::debug("Current working directory is: $dir, changing directory to: ".base_path());
chdir(base_path()); // TODO - is this *safe* to change on a running script?!
}
//
@@ -55,7 +212,7 @@ class RestoreFromBackup extends Command
return $this->error('Missing required filename');
}
if (! $this->option('force') && ! $this->confirm('Are you sure you wish to restore from the given backup file? This can lead to MASSIVE DATA LOSS!')) {
if (! $this->option('force') && ! $this->option('sanitize-guess-prefix') && ! $this->confirm('Are you sure you wish to restore from the given backup file? This can lead to MASSIVE DATA LOSS!')) {
return $this->error('Data loss not confirmed');
}
@@ -84,35 +241,40 @@ class RestoreFromBackup extends Command
$private_dirs = [
'storage/private_uploads/accessories',
'storage/private_uploads/assetmodels',
'storage/private_uploads/maintenances',
'storage/private_uploads/models',
'storage/private_uploads/assets', // these are asset _files_, not the pictures.
'storage/private_uploads/audits',
'storage/private_uploads/components',
'storage/private_uploads/consumables',
'storage/private_uploads/eula-pdfs',
'storage/private_uploads/imports',
'storage/private_uploads/assetmodels',
'storage/private_uploads/users',
'storage/private_uploads/locations',
'storage/private_uploads/licenses',
'storage/private_uploads/signatures',
'storage/private_uploads/users',
];
$private_files = [
'storage/oauth-private.key',
'storage/oauth-public.key',
];
$public_dirs = [
'public/uploads/accessories',
'public/uploads/assetmodels',
'public/uploads/maintenances',
'public/uploads/assets', // these are asset _pictures_, not asset files
'public/uploads/avatars',
'public/uploads/categories',
'public/uploads/companies',
'public/uploads/components',
'public/uploads/categories',
'public/uploads/manufacturers',
//'public/uploads/barcodes', // we don't want this, let the barcodes be regenerated
'public/uploads/consumables',
'public/uploads/departments',
'public/uploads/avatars',
'public/uploads/suppliers',
'public/uploads/assets', // these are asset _pictures_, not asset files
'public/uploads/locations',
'public/uploads/accessories',
'public/uploads/models',
'public/uploads/categories',
'public/uploads/avatars',
'public/uploads/manufacturers',
'public/uploads/models',
'public/uploads/suppliers',
];
$public_files = [
@@ -131,6 +293,7 @@ class RestoreFromBackup extends Command
$interesting_files = [];
$boring_files = [];
$unsafe_files = [];
for ($i = 0; $i < $za->numFiles; $i++) {
$stat_results = $za->statIndex($i);
@@ -150,18 +313,18 @@ class RestoreFromBackup extends Command
continue;
}
if (@pathinfo($raw_path, PATHINFO_EXTENSION) == 'sql') {
\Log::debug("Found a sql file!");
Log::debug("Found a sql file!");
$sqlfiles[] = $raw_path;
$sqlfile_indices[] = $i;
continue;
}
foreach (array_merge($private_dirs, $public_dirs) as $dir) {
$last_pos = strrpos($raw_path, $dir.'/');
$last_pos = strrpos($raw_path, $dir . '/');
if ($last_pos !== false) {
//print("INTERESTING - last_pos is $last_pos when searching $raw_path for $dir - last_pos+strlen(\$dir) is: ".($last_pos+strlen($dir))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
//print("We would copy $raw_path to $dir.\n"); //FIXME append to a path?
$interesting_files[$raw_path] = ['dest' =>$dir, 'index' => $i];
$interesting_files[$raw_path] = ['dest' => $dir, 'index' => $i];
continue 2;
if ($last_pos + strlen($dir) + 1 == strlen($raw_path)) {
// we don't care about that; we just want files with the appropriate prefix
@@ -169,8 +332,9 @@ class RestoreFromBackup extends Command
}
}
}
$good_extensions = ['png', 'gif', 'jpg', 'svg', 'jpeg', 'doc', 'docx', 'pdf', 'txt',
'zip', 'rar', 'xls', 'xlsx', 'lic', 'xml', 'rtf', 'webp', 'key', 'ico', ];
$good_extensions = config('filesystems.allowed_upload_extensions_array');
foreach (array_merge($private_files, $public_files) as $file) {
$has_wildcard = (strpos($file, '*') !== false);
if ($has_wildcard) {
@@ -179,8 +343,10 @@ class RestoreFromBackup extends Command
$last_pos = strrpos($raw_path, $file); // no trailing slash!
if ($last_pos !== false) {
$extension = strtolower(pathinfo($raw_path, PATHINFO_EXTENSION));
if (! in_array($extension, $good_extensions)) {
$this->warn('Potentially unsafe file '.$raw_path.' is being skipped');
if (!in_array($extension, $good_extensions)) {
// gathering potentially unsafe files here to return at exit
$unsafe_files[] = $raw_path;
Log::debug('Potentially unsafe file '.$raw_path.' is being skipped');
$boring_files[] = $raw_path;
continue 2;
}
@@ -195,7 +361,6 @@ class RestoreFromBackup extends Command
}
$boring_files[] = $raw_path; //if we've gotten to here and haven't continue'ed our way into the next iteration, we don't want this file
} // end of pre-processing the ZIP file for-loop
// print_r($interesting_files);exit(-1);
if (count($sqlfiles) != 1) {
@@ -207,6 +372,27 @@ class RestoreFromBackup extends Command
//older Snipe-IT installs don't have the db-dumps subdirectory component
}
$sql_stat = $za->statIndex($sqlfile_indices[0]);
//$this->info("SQL Stat is: ".print_r($sql_stat,true));
$sql_contents = $za->getStream($sql_stat['name']); // maybe copy *THIS* thing?
// OKAY, now that we *found* the sql file if we're doing just the guess-prefix thing, we can do that *HERE* I think?
if ($this->option('sanitize-guess-prefix')) {
$prefix = SQLStreamer::guess_prefix($sql_contents);
$this->line($prefix);
return $this->info("Re-run this command with '--sanitize-with-prefix=".$prefix."' to see an attempt to sanitize your SQL.");
}
// If we're doing --sql-stdout-only, handle that now so we don't have to open pipes to mysql and all of that silliness
if ($this->option('sql-stdout-only')) {
$sql_importer = new SQLStreamer($sql_contents, STDOUT, $this->option('sanitize-with-prefix'));
$bytes_read = $sql_importer->line_aware_piping();
return $this->warn("$bytes_read total bytes read");
//TODO - it'd be nice to dump this message to STDERR so that STDOUT is just pure SQL,
// which would be good for redirecting to a file, and not having to trim the last line off of it
}
//how to invoke the restore?
$pipes = [];
@@ -227,6 +413,7 @@ class RestoreFromBackup extends Command
return $this->error('Unable to invoke mysql via CLI');
}
// I'm not sure about these?
stream_set_blocking($pipes[1], false); // use non-blocking reads for stdout
stream_set_blocking($pipes[2], false); // use non-blocking reads for stderr
@@ -237,9 +424,9 @@ class RestoreFromBackup extends Command
//$sql_contents = fopen($sqlfiles[0], "r"); //NOPE! This isn't a real file yet, silly-billy!
$sql_stat = $za->statIndex($sqlfile_indices[0]);
//$this->info("SQL Stat is: ".print_r($sql_stat,true));
$sql_contents = $za->getStream($sql_stat['name']);
// FIXME - this feels like it wants to go somewhere else?
// and it doesn't seem 'right' - if you can't get a stream to the .sql file,
// why do we care what's happening with pipes and stdout and stderr?!
if ($sql_contents === false) {
$stdout = fgets($pipes[1]);
$this->info($stdout);
@@ -248,29 +435,35 @@ class RestoreFromBackup extends Command
return false;
}
$bytes_read = 0;
try {
while (($buffer = fgets($sql_contents, self::$buffer_size)) !== false) {
$bytes_read += strlen($buffer);
// \Log::debug("Buffer is: '$buffer'");
if ( $this->option('sanitize-with-prefix') === null) {
// "Legacy" direct-piping
$bytes_read = 0;
while (($buffer = fgets($sql_contents, SQLStreamer::$buffer_size)) !== false) {
$bytes_read += strlen($buffer);
// Log::debug("Buffer is: '$buffer'");
$bytes_written = fwrite($pipes[0], $buffer);
if ($bytes_written === false) {
throw new Exception("Unable to write to pipe");
if ($bytes_written === false) {
throw new Exception("Unable to write to pipe");
}
}
} else {
$sql_importer = new SQLStreamer($sql_contents, $pipes[0], $this->option('sanitize-with-prefix'));
$bytes_read = $sql_importer->line_aware_piping();
}
} catch (\Exception $e) {
\Log::error("Error during restore!!!! ".$e->getMessage());
Log::error("Error during restore!!!! ".$e->getMessage());
// FIXME - put these back and/or put them in the right places?!
$err_out = fgets($pipes[1]);
$err_err = fgets($pipes[2]);
\Log::error("Error OUTPUT: ".$err_out);
Log::error("Error OUTPUT: ".$err_out);
$this->info($err_out);
\Log::error("Error ERROR : ".$err_err);
Log::error("Error ERROR : ".$err_err);
$this->error($err_err);
throw $e;
}
if (!feof($sql_contents) || $bytes_read == 0) {
return $this->error("Not at end of file for sql file, or zero bytes read. aborting!");
}
@@ -301,8 +494,11 @@ class RestoreFromBackup extends Command
$ugly_file_name = $za->statIndex($file_details['index'])['name'];
$fp = $za->getStream($ugly_file_name);
//$this->info("Weird problem, here are file details? ".print_r($file_details,true));
if (!is_dir($file_details['dest'])) {
mkdir($file_details['dest'], 0755, true); //0755 is what Laravel uses, so we do that
}
$migrated_file = fopen($file_details['dest'].'/'.basename($pretty_file_name), 'w');
while (($buffer = fgets($fp, self::$buffer_size)) !== false) {
while (($buffer = fgets($fp, SQLStreamer::$buffer_size)) !== false) {
fwrite($migrated_file, $buffer);
}
fclose($migrated_file);
@@ -318,6 +514,11 @@ class RestoreFromBackup extends Command
} else {
$this->info(count($interesting_files).' files were succesfully transferred');
}
if (count($unsafe_files) > 0) {
foreach ($unsafe_files as $unsafe_file) {
$this->warn('Potentially unsafe file '.$unsafe_file.' was skipped');
}
}
foreach ($boring_files as $boring_file) {
$this->warn($boring_file.' was skipped.');
}

View File

@@ -5,8 +5,9 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use App\Models\Setting;
use Artisan;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Encryption\Encrypter;
class RotateAppKey extends Command
@@ -16,14 +17,17 @@ class RotateAppKey extends Command
*
* @var string
*/
protected $signature = 'snipeit:rotate-key';
protected $signature = 'snipeit:rotate-key
{previous_key? : The previous key to rotate from}
{--emergency : Emergency mode - rotate from .env APP_KEY to newly-generated one, modifying .env}
{--force : Skip interactive confirmation}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
protected $description = 'Rotates APP_KEY to a new value, optionally taking the previous key as an argument';
/**
* Create a new command instance.
@@ -42,26 +46,42 @@ class RotateAppKey extends Command
*/
public function handle()
{
if ($this->confirm("\n****************************************************\nTHIS WILL MODIFY YOUR APP_KEY AND DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND \nRE-ENCRYPT THEM WITH A NEWLY GENERATED KEY. \n\nThere is NO undo. \n\nMake SURE you have a database backup and a backup of your .env generated BEFORE running this command. \n\nIf you do not save the newly generated APP_KEY to your .env in this process, \nyour encrypted data will no longer be decryptable. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup and an .env backup? ")) {
//make sure they specify only exactly one of --emergency, or a filename. Not neither, and not both.
if ( (!$this->option('emergency') && !$this->argument('previous_key')) || ( $this->option('emergency') && $this->argument('previous_key'))) {
$this->error("Specify only one of --emergency, or an app key value, in order to rotate keys");
return 1;
}
if ( $this->option('emergency') ) {
$msg = "\n****************************************************\nTHIS WILL MODIFY YOUR APP_KEY AND DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND \nRE-ENCRYPT THEM WITH A NEWLY GENERATED KEY. \n\nThere is NO undo. \n\nMake SURE you have a database backup and a backup of your .env generated BEFORE running this command. \n\nIf you do not save the newly generated APP_KEY to your .env in this process, \nyour encrypted data will no longer be decryptable. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup and an .env backup? ";
} else {
$msg = "\n****************************************************\nTHIS WILL DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND RE-ENCRYPT THEM WITH YOUR\nAPP_KEY.\n\nThere is NO undo. \n\nMake SURE you have a database backup BEFORE running this command. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup? ";
}
if ($this->option('force') || $this->confirm($msg)) {
// Get the existing app_key and ciphers
// We put them in a variable since we clear the cache partway through here.
$old_app_key = config('app.key');
$cipher = config('app.cipher');
if ($this->option('emergency')) {
$old_app_key = config('app.key');
$cipher = config('app.cipher');
// Generate a new one
Artisan::call('key:generate', ['--show' => true]);
$new_app_key = Artisan::output();
// Generate a new one
Artisan::call('key:generate', ['--show' => true]);
$new_app_key = trim(Artisan::output());
// Clear the config cache
Artisan::call('config:clear');
// Clear the config cache
Artisan::call('config:clear');
$this->warn('Your app cipher is: '.$cipher);
$this->warn('Your old APP_KEY is: '.$old_app_key);
$this->warn('Your new APP_KEY is: '.$new_app_key);
// Write the new app key to the .env file
$this->writeNewEnvironmentFileWith($new_app_key);
} elseif ($this->argument('previous_key')) {
$old_app_key = $this->argument('previous_key');
$cipher = config('app.cipher'); // just a guess?
$new_app_key = config('app.key');
}
// Write the new app key to the .env file
$this->writeNewEnvironmentFileWith($new_app_key);
$this->warn('Your app cipher is: ' . $cipher);
$this->warn('Your old APP_KEY is: ' . $old_app_key);
$this->warn('Your new APP_KEY is: ' . $new_app_key);
// Manually create an old encrypter instance using the old app key
// and also create a new encrypter instance so we can re-crypt the field
@@ -75,8 +95,16 @@ class RotateAppKey extends Command
$assets = Asset::whereNotNull($field->db_column)->get();
foreach ($assets as $asset) {
$asset->{$field->db_column} = $oldEncrypter->decrypt($asset->{$field->db_column});
$this->line('DECRYPTED: '.$field->db_column);
try {
$asset->{$field->db_column} = $oldEncrypter->decrypt($asset->{$field->db_column});
$this->line('DECRYPTED: ' . $field->db_column);
} catch (DecryptException $e) {
$this->line('Could not decrypt '. $field->db_column.' using "old key" - skipping...');
continue;
} catch (\Exception $e) {
$this->error("Error decrypting ".$field->db_column.", reason: ".$e->getMessage().". Aborting key rotation");
throw $e;
}
$asset->{$field->db_column} = $newEncrypter->encrypt($asset->{$field->db_column});
$this->line('ENCRYPTED: '.$field->db_column);
$asset->save();
@@ -86,10 +114,14 @@ class RotateAppKey extends Command
// Handle the LDAP password if one is provided
$setting = Setting::first();
if ($setting->ldap_pword != '') {
$setting->ldap_pword = $oldEncrypter->decrypt($setting->ldap_pword);
$setting->ldap_pword = $newEncrypter->encrypt($setting->ldap_pword);
$setting->save();
$this->warn('LDAP password has been re-encrypted.');
try {
$setting->ldap_pword = $oldEncrypter->decrypt($setting->ldap_pword);
$setting->ldap_pword = $newEncrypter->encrypt($setting->ldap_pword);
$setting->save();
$this->warn('LDAP password has been re-encrypted.');
} catch(DecryptException $e) {
$this->warn("Unable to decrypt old LDAP password; skipping");
}
}
} else {
$this->info('This operation has been canceled. No changes have been made.');
@@ -106,7 +138,7 @@ class RotateAppKey extends Command
{
file_put_contents($this->laravel->environmentFilePath(), preg_replace(
$this->keyReplacementPattern(),
'APP_KEY='.$key,
'APP_KEY="'.$key.'"',
file_get_contents($this->laravel->environmentFilePath())
));
}
@@ -118,7 +150,7 @@ class RotateAppKey extends Command
*/
protected function keyReplacementPattern()
{
$escaped = preg_quote('='.$this->laravel['config']['app.key'], '/');
$escaped = '="?'.preg_quote($this->laravel['config']['app.key'], '/').'"?';
return "/^APP_KEY{$escaped}/m";
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\SamlNonce;
class SamlClearExpiredNonces extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'saml:clear_expired_nonces';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Clears out expired SAML assertions from the saml_nonces table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
SamlNonce::where('not_valid_after','<=',now())->delete();
return 0;
}
}

View File

@@ -0,0 +1,111 @@
<?php
namespace App\Console\Commands;
use App\Mail\UnacceptedAssetReminderMail;
use App\Models\Asset;
use App\Models\CheckoutAcceptance;
use App\Models\Setting;
use App\Models\User;
use App\Notifications\CheckoutAssetNotification;
use App\Notifications\CurrentInventory;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class SendAcceptanceReminder extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:acceptance-reminder';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This will resend users with unaccepted assets a reminder to accept or decline them.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset')
->whereHas('checkoutable', function($query) {
$query->where('accepted_at', null)
->where('declined_at', null);
})
->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser'])
->get();
$count = 0;
$unacceptedAssetGroups = $pending
->filter(function($acceptance) {
return $acceptance->checkoutable_type == 'App\Models\Asset';
})
->map(function($acceptance) {
return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance];
})
->groupBy(function($item) {
return $item['acceptance']->assignedTo ? $item['acceptance']->assignedTo->id : '';
});
$no_email_list= [];
foreach($unacceptedAssetGroups as $unacceptedAssetGroup) {
// The [0] is weird, but it allows for the item_count to work and grabs the appropriate info for each user.
// Collapsing and flattening the collection doesn't work above.
$acceptance = $unacceptedAssetGroup[0]['acceptance'];
$locale = $acceptance->assignedTo?->locale;
$email = $acceptance->assignedTo?->email;
if(!$email){
$no_email_list[] = [
'id' => $acceptance->assignedTo?->id,
'name' => $acceptance->assignedTo?->display_name,
];
} else {
$count++;
}
$item_count = $unacceptedAssetGroup->count();
if ($locale && $email) {
Mail::to($email)->send((new UnacceptedAssetReminderMail($acceptance, $item_count))->locale($locale));
} elseif ($email) {
Mail::to($email)->send((new UnacceptedAssetReminderMail($acceptance, $item_count)));
}
}
$this->info($count.' users notified.');
$headers = ['ID', 'Name'];
$rows = [];
foreach ($no_email_list as $user) {
$rows[] = [$user['id'], $user['name']];
}
if (!empty($rows)) {
$this->info("The following users do not have an email address:");
$this->table($headers, $rows);
}
return 0;
}
}

View File

@@ -43,7 +43,7 @@ class SendCurrentInventoryToUsers extends Command
$count = 0;
foreach ($users as $user) {
if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0)) {
if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0) || ($user->consumables->count() > 0)) {
$count++;
$user->notify((new CurrentInventory($user)));
}

View File

@@ -42,24 +42,31 @@ class SendExpectedCheckinAlerts extends Command
public function handle()
{
$settings = Setting::getSettings();
$whenNotify = Carbon::now()->addDays(7);
$assets = Asset::with('assignedTo')->whereNotNull('assigned_to')->whereNotNull('expected_checkin')->where('expected_checkin', '<=', $whenNotify)->get();
$interval = $settings->audit_warning_days ?? 0;
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
$assets = Asset::whereNull('deleted_at')->DueOrOverdueForCheckin($settings)->orderBy('assets.expected_checkin', 'desc')->get();
$this->info($assets->count().' assets must be checked in on or before '.$interval_date.' is deadline');
$this->info($whenNotify.' is deadline');
$this->info($assets->count().' assets');
foreach ($assets as $asset) {
if ($asset->assigned && $asset->checkedOutToUser()) {
$asset->assigned->notify((new ExpectedCheckinNotification($asset)));
if ($asset->assignedTo && (isset($asset->assignedTo->email)) && ($asset->assignedTo->email!='') && $asset->checkedOutToUser()) {
$this->info('Sending User ExpectedCheckinNotification to: '.$asset->assignedTo->email);
$asset->assignedTo->notify((new ExpectedCheckinNotification($asset)));
}
}
if (($assets) && ($assets->count() > 0) && ($settings->alert_email != '')) {
// Send a rollup to the admin, if settings dictate
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item, $key) {
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item) {
return new AlertRecipient($item);
});
$this->info('Sending Admin ExpectedCheckinNotification to: '.$settings->alert_email);
\Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
}
}
}

View File

@@ -2,13 +2,14 @@
namespace App\Console\Commands;
use App\Helpers\Helper;
use App\Mail\ExpiringAssetsMail;
use App\Mail\ExpiringLicenseMail;
use App\Models\Asset;
use App\Models\License;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
use App\Notifications\ExpiringAssetsNotification;
use App\Notifications\ExpiringLicenseNotification;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class SendExpirationAlerts extends Command
{
@@ -42,28 +43,45 @@ class SendExpirationAlerts extends Command
public function handle()
{
$settings = Setting::getSettings();
$threshold = $settings->alert_interval;
$alert_interval = $settings->alert_interval;
if (($settings->alert_email != '') && ($settings->alerts_enabled == 1)) {
// Send a rollup to the admin, if settings dictate
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item, $key) {
return new AlertRecipient($item);
});
$recipients = collect(explode(',', $settings->alert_email))
->map(fn($item) => trim($item)) // Trim each email
->filter(fn($item) => !empty($item))
->all();
// Expiring Assets
$assets = Asset::getExpiringWarrantee($threshold);
$assets = Asset::getExpiringWarrantyOrEol($alert_interval);
if ($assets->count() > 0) {
$this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $threshold]));
\Notification::send($recipients, new ExpiringAssetsNotification($assets, $threshold));
Mail::to($recipients)->send(new ExpiringAssetsMail($assets, $alert_interval));
$this->table(
['ID', 'Tag', 'Model', 'Model Number', 'EOL', 'EOL Months', 'Warranty Expires', 'Warranty Months'],
$assets->map(fn($item) => ['ID' => $item->id, 'Tag' => $item->asset_tag, 'Model' => $item->model->name, 'Model Number' => $item->model->model_number, 'EOL' => $item->asset_eol_date, 'EOL Months' => $item->model->eol, 'Warranty Expires' => $item->warranty_expires, 'Warranty Months' => $item->warranty_months])
);
}
// Expiring licenses
$licenses = License::getExpiringLicenses($threshold);
$licenses = License::getExpiringLicenses($alert_interval);
if ($licenses->count() > 0) {
$this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $threshold]));
\Notification::send($recipients, new ExpiringLicenseNotification($licenses, $threshold));
Mail::to($recipients)->send(new ExpiringLicenseMail($licenses, $alert_interval));
$this->table(
['ID', 'Name', 'Expires', 'Termination Date'],
$licenses->map(fn($item) => ['ID' => $item->id, 'Name' => $item->name, 'Expires' => $item->expiration_date, 'Termination Date' => $item->termination_date])
);
}
// Send a message even if the count is 0
$this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $alert_interval]));
$this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $alert_interval]));
} else {
if ($settings->alert_email == '') {
$this->error('Could not send email. No alert email configured in settings');

View File

@@ -2,15 +2,12 @@
namespace App\Console\Commands;
use App\Mail\SendUpcomingAuditMail;
use App\Models\Asset;
use App\Models\License;
use App\Models\Recipients;
use App\Models\Setting;
use App\Notifications\ExpiringAssetsNotification;
use App\Notifications\SendUpcomingAuditNotification;
use Carbon\Carbon;
use DB;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class SendUpcomingAuditReport extends Command
{
@@ -46,39 +43,25 @@ class SendUpcomingAuditReport extends Command
public function handle()
{
$settings = Setting::getSettings();
$interval = $settings->audit_warning_days ?? 0;
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
if (($settings->alert_email != '') && ($settings->audit_warning_days) && ($settings->alerts_enabled == 1)) {
$assets = Asset::whereNull('deleted_at')->dueOrOverdueForAudit($settings)->orderBy('assets.next_audit_date', 'desc')->get();
$this->info($assets->count() . ' assets must be audited in on or before ' . $interval_date . ' is deadline');
if ((count($assets) !== 0) && ($assets->count() > 0) && ($settings->alert_email != '')) {
// Send a rollup to the admin, if settings dictate
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item, $key) {
return new \App\Models\Recipients\AlertRecipient($item);
});
$recipients = collect(explode(',', $settings->alert_email))
->map(fn($item) => trim($item))
->filter(fn($item) => !empty($item))
->all();
// Assets due for auditing
$assets = Asset::whereNotNull('next_audit_date')
->DueOrOverdueForAudit($settings)
->orderBy('last_audit_date', 'asc')->get();
if ($assets->count() > 0) {
$this->info(trans_choice('mail.upcoming-audits', $assets->count(),
['count' => $assets->count(), 'threshold' => $settings->audit_warning_days]));
\Notification::send($recipients, new SendUpcomingAuditNotification($assets, $settings->audit_warning_days));
$this->info('Audit report sent to '.$settings->alert_email);
} else {
$this->info('No assets to be audited. No report sent.');
}
} elseif ($settings->alert_email == '') {
$this->error('Could not send email. No alert email configured in settings');
} elseif (! $settings->audit_warning_days) {
$this->error('No audit warning days set in Admin Notifications. No mail will be sent.');
} elseif ($settings->alerts_enabled != 1) {
$this->info('Alerts are disabled in the settings. No mail will be sent');
} else {
$this->error('Something went wrong. :( ');
$this->error('Admin Notifications Email Setting: '.$settings->alert_email);
$this->error('Admin Audit Warning Setting: '.$settings->audit_warning_days);
$this->error('Admin Alerts Emnabled: '.$settings->alerts_enabled);
$this->info('Sending Admin SendUpcomingAuditNotification to: ' . $settings->alert_email);
Mail::to($recipients)->send(new SendUpcomingAuditMail($assets, $settings->audit_warning_days));
}
}
}

View File

@@ -4,6 +4,7 @@ namespace App\Console\Commands;
use App\Models\Asset;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class SyncAssetCounters extends Command
{
@@ -58,7 +59,7 @@ class SyncAssetCounters extends Command
$asset->save();
$bar->advance();
\Log::debug('Asset: '.$asset->id.' has '.$asset->checkin_counter.' checkins, '.$asset->checkout_counter.' checkouts, and '.$asset->requests_counter.' requests');
Log::debug('Asset: '.$asset->id.' has '.$asset->checkin_counter.' checkins, '.$asset->checkout_counter.' checkouts, and '.$asset->requests_counter.' requests');
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Console\Commands;
use App\Helpers\Helper;
use Illuminate\Console\Command;
class TestLocationsFMCS extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:test-locations-fmcs {--location_id=}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Test for company ID inconsistencies if FullMultipleCompanySupport with scoped locations will be used.';
/**
* Execute the console command.
*/
public function handle()
{
$this->info('This script checks for company ID inconsistencies if Full Multiple Company Support with scoped locations will be used.');
$this->info('This could take a few moments if have a very large dataset.');
$this->newLine();
// if parameter location_id is set, only test this location
$location_id = null;
if ($this->option('location_id')) {
$location_id = $this->option('location_id');
}
$mismatched = Helper::test_locations_fmcs(true, $location_id);
$this->warn(trans_choice('admin/settings/message.location_scoping.mismatch', count($mismatched)));
$this->newLine();
$this->info('Edit your locations to associate them with the correct company.');
$header = ['Type', 'ID', 'Name', 'Checkout Type', 'Company ID', 'Item Company', 'Item Location', 'Location Company', 'Location Company ID'];
sort($mismatched);
$this->table($header, $mismatched);
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class ToggleCustomfieldEncryption extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:customfield-encryption
{fieldname : the db_column_name of the field}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command should be used to convert an unencrypted custom field into a custom field and encrypt the associated data in the assets table for that column.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$fieldname = $this->argument('fieldname');
if ($field = CustomField::where('db_column', $fieldname)->first()) {
// If the field is not encrypted, make it encrypted and encrypt the data in the assets table for the
// corresponding field.
DB::transaction(function () use ($field) {
if ($field->field_encrypted == 0) {
$assets = Asset::whereNotNull($field->db_column)->get();
foreach ($assets as $asset) {
$asset->{$field->db_column} = encrypt($asset->{$field->db_column});
$asset->save();
}
$field->field_encrypted = 1;
$field->save();
// This field is already encrypted. Do nothing.
} else {
$this->error('The custom field ' . $field->db_column.' is already encrypted. No action was taken.');
}
});
// No matching column name found
} else {
$this->error('No matching results for unencrypted custom fields with db_column name: ' . $fieldname.'. Please check the fieldname.');
}
}
}

View File

@@ -5,6 +5,7 @@ namespace App\Console;
use App\Console\Commands\ImportLocations;
use App\Console\Commands\ReEncodeCustomFieldNames;
use App\Console\Commands\RestoreDeletedUsers;
use App\Models\Setting;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
@@ -18,13 +19,16 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('snipeit:inventory-alerts')->daily();
$schedule->command('snipeit:expiring-alerts')->daily();
$schedule->command('snipeit:expected-checkin')->daily();
if(Setting::getSettings()?->alerts_enabled === 1) {
$schedule->command('snipeit:inventory-alerts')->daily();
$schedule->command('snipeit:expiring-alerts')->daily();
$schedule->command('snipeit:expected-checkin')->daily();
$schedule->command('snipeit:upcoming-audits')->daily();
}
$schedule->command('snipeit:backup')->weekly();
$schedule->command('backup:clean')->daily();
$schedule->command('snipeit:upcoming-audits')->daily();
$schedule->command('auth:clear-resets')->everyFifteenMinutes();
$schedule->command('saml:clear_expired_nonces')->weekly();
}
/**

View File

@@ -28,7 +28,7 @@ class CheckoutableCheckedIn
$this->checkedOutTo = $checkedOutTo;
$this->checkedInBy = $checkedInBy;
$this->note = $note;
$this->action_date = $action_date ?? date('Y-m-d');
$this->action_date = $action_date ?? date('Y-m-d H:i:s');
$this->originalValues = $originalValues;
}
}

View File

@@ -15,7 +15,7 @@ class UserMerged
*
* @return void
*/
public function __construct(User $from_user, User $to_user, User $admin)
public function __construct(User $from_user, User $to_user, ?User $admin)
{
$this->merged_from = $from_user;
$this->merged_to = $to_user;

View File

@@ -0,0 +1,9 @@
<?php
namespace App\Exceptions;
use Exception;
class AssetNotRequestable extends Exception
{
}

View File

@@ -7,10 +7,11 @@ use App\Helpers\Helper;
use Illuminate\Validation\ValidationException;
use Illuminate\Auth\AuthenticationException;
use ArieTimmerman\Laravel\SCIMServer\Exceptions\SCIMException;
use Log;
use Illuminate\Support\Facades\Log;
use Throwable;
use JsonException;
use Carbon\Exceptions\InvalidFormatException;
use Illuminate\Http\Exceptions\ThrottleRequestsException;
class Handler extends ExceptionHandler
{
@@ -44,8 +45,8 @@ class Handler extends ExceptionHandler
public function report(Throwable $exception)
{
if ($this->shouldReport($exception)) {
if (class_exists(\Log::class)) {
\Log::error($exception);
if (class_exists(Log::class)) {
Log::error($exception);
}
return parent::report($exception);
}
@@ -107,21 +108,66 @@ class Handler extends ExceptionHandler
$statusCode = $e->getStatusCode();
// API throttle requests are handled in the RouteServiceProvider configureRateLimiting() method, so we don't need to handle them here
switch ($e->getStatusCode()) {
case '404':
return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode . ' endpoint not found'), 404);
case '429':
return response()->json(Helper::formatStandardApiResponse('error', null, 'Too many requests'), 429);
case '405':
return response()->json(Helper::formatStandardApiResponse('error', null, 'Method not allowed'), 405);
default:
return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode), $statusCode);
}
}
// This handles API validation exceptions that happen at the Form Request level, so they
// never even get to the controller where we normally nicely format JSON responses
if ($e instanceof ValidationException) {
$response = $this->invalidJson($request, $e);
return response()->json(Helper::formatStandardApiResponse('error', null, $e->errors()), 200);
}
}
// This is traaaaash but it handles models that are not found while using route model binding :(
// The only alternative is to set that at *each* route, which is crazypants
if ($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) {
$ids = method_exists($e, 'getIds') ? $e->getIds() : [];
if (in_array('bulkedit', $ids, true)) {
$error_array = session()->get('bulk_asset_errors');
return redirect()
->route('hardware.index')
->withErrors($error_array, 'bulk_asset_errors')
->withInput();
}
// This gets the MVC model name from the exception and formats in a way that's less fugly
$model_name = trim(strtolower(implode(" ", preg_split('/(?=[A-Z])/', last(explode('\\', $e->getModel()))))));
$route = str_plural(strtolower(last(explode('\\', $e->getModel())))).'.index';
// Sigh.
if ($route == 'assets.index') {
$route = 'hardware.index';
} elseif ($route == 'reporttemplates.index') {
$route = 'reports/custom';
} elseif ($route == 'assetmodels.index') {
$route = 'models.index';
} elseif ($route == 'predefinedkits.index') {
$route = 'kits.index';
} elseif ($route == 'assetmaintenances.index') {
$route = 'maintenances.index';
} elseif ($route === 'licenseseats.index') {
$route = 'licenses.index';
} elseif (($route === 'customfieldsets.index') || ($route === 'customfields.index')) {
$route = 'fields.index';
}
return redirect()
->route($route)
->withError(trans('general.generic_model_not_found', ['model' => $model_name]));
}
if ($this->isHttpException($e) && (isset($statusCode)) && ($statusCode == '404' )) {
@@ -150,6 +196,11 @@ class Handler extends ExceptionHandler
return redirect()->guest('login');
}
protected function invalidJson($request, ValidationException $exception)
{
return response()->json(Helper::formatStandardApiResponse('error', null, $exception->errors()), 200);
}
/**
* A list of the inputs that are never flashed for validation exceptions.
@@ -169,8 +220,9 @@ class Handler extends ExceptionHandler
*/
public function register()
{
$this->reportable(function (Throwable $e) {
//
});
}
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Exceptions;
use Exception;
class UserDoestExistException extends Exception
{
}

View File

@@ -11,13 +11,77 @@ use App\Models\CustomFieldset;
use App\Models\Depreciation;
use App\Models\Setting;
use App\Models\Statuslabel;
use Crypt;
use App\Models\License;
use App\Models\Location;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Contracts\Encryption\DecryptException;
use Image;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image;
use Illuminate\Support\Facades\Session;
class Helper
{
/**
* This is only used for reversing the migration that updates the locale to the 5-6 letter codes from two
* letter codes. The normal dropdowns use the autoglossonyms in the language files located
* in resources/en-US/localizations.php.
*/
public static $language_map = [
'af' => 'af-ZA', // Afrikaans
'am' => 'am-ET', // Amharic
'ar' => 'ar-SA', // Arabic
'bg' => 'bg-BG', // Bulgarian
'ca' => 'ca-ES', // Catalan
'cs' => 'cs-CZ', // Czech
'cy' => 'cy-GB', // Welsh
'da' => 'da-DK', // Danish
'de-i' => 'de-if', // German informal
'de' => 'de-DE', // German
'el' => 'el-GR', // Greek
'en' => 'en-US', // English
'et' => 'et-EE', // Estonian
'fa' => 'fa-IR', // Persian
'fi' => 'fi-FI', // Finnish
'fil' => 'fil-PH', // Filipino
'fr' => 'fr-FR', // French
'he' => 'he-IL', // Hebrew
'hr' => 'hr-HR', // Croatian
'hu' => 'hu-HU', // Hungarian
'id' => 'id-ID', // Indonesian
'is' => 'is-IS', // Icelandic
'it' => 'it-IT', // Italian
'iu' => 'iu-NU', // Inuktitut
'ja' => 'ja-JP', // Japanese
'ko' => 'ko-KR', // Korean
'lt' => 'lt-LT', // Lithuanian
'lv' => 'lv-LV', // Latvian
'mi' => 'mi-NZ', // Maori
'mk' => 'mk-MK', // Macedonian
'mn' => 'mn-MN', // Mongolian
'ms' => 'ms-MY', // Malay
'nl' => 'nl-NL', // Dutch
'no' => 'nb-NO', // Norwegian Bokmål
'pl' => 'pl-PL', // Polish
'pt' => 'pt-PT', // Portuguese
'ro' => 'ro-RO', // Romanian
'ru' => 'ru-RU', // Russian
'sk' => 'sk-SK', // Slovak
'sl' => 'sl-SI', // Slovenian
'so' => 'so-SO', // Somali
'ta' => 'ta-IN', // Tamil
'th' => 'th-TH', // Thai
'tl' => 'tl-PH', // Tagalog
'tr' => 'tr-TR', // Turkish
'uk' => 'uk-UA', // Ukrainian
'vi' => 'vi-VN', // Vietnamese
'zu' => 'zu-ZA', // Zulu
];
/**
* Simple helper to invoke the markdown parser
*
@@ -31,7 +95,7 @@ class Helper
$Parsedown->setSafeMode(true);
if ($str) {
return $Parsedown->text($str);
return $Parsedown->text(strip_tags($str));
}
}
@@ -41,7 +105,7 @@ class Helper
$Parsedown->setSafeMode(true);
if ($str) {
return $Parsedown->line($str);
return $Parsedown->line(strip_tags($str));
}
}
@@ -73,10 +137,14 @@ class Helper
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.3]
* @return array
* @return string
*/
public static function defaultChartColors($index = 0)
public static function defaultChartColors(int $index = 0)
{
if ($index < 0) {
$index = 0;
}
$colors = [
'#008941',
'#FF4A46',
@@ -349,12 +417,52 @@ class Helper
$total_colors = count($colors);
if ($index >= $total_colors) {
$index = $index - $total_colors;
Log::info('Status label count is '.$index.' and exceeds the allowed count of 266.');
//patch fix for array key overflow (color count starts at 1, array starts at 0)
$index = $index - $total_colors - 1;
//constraints to keep result in 0-265 range. This should never be needed, but if something happens
//to create this many status labels and it DOES happen, this will keep it from failing at least.
if($index < 0) {
$index = 0;
}
elseif($index >($total_colors - 1)) {
$index = $total_colors - 1;
}
}
return $colors[$index];
}
/**
* Check if a string has any RTL characters
* @param $value
* @return bool
*/
public static function hasRtl($string) {
$rtlChar = '/[\x{0590}-\x{083F}]|[\x{08A0}-\x{08FF}]|[\x{FB1D}-\x{FDFF}]|[\x{FE70}-\x{FEFF}]/u';
return preg_match($rtlChar, $string) != 0;
}
// is chinese, japanese or korean language
public static function isCjk($string) {
return Helper::isChinese($string) || Helper::isJapanese($string) || Helper::isKorean($string);
}
public static function isChinese($string) {
return preg_match("/\p{Han}+/u", $string);
}
public static function isJapanese($string) {
return preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $string);
}
public static function isKorean($string) {
return preg_match('/[\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]/u', $string);
}
/**
* Increases or decreases the brightness of a color by a percentage of the current brightness.
*
@@ -631,6 +739,28 @@ class Helper
return $randomString;
}
/**
* A method to be used to handle deprecations notifications, currently handling MS Teams. more can be added when needed.
*
*
* @author [Godfrey Martinez]
* @since [v7.0.14]
* @return array
*/
public static function deprecationCheck() : array {
// The check and message that the user is still using the deprecated version
$deprecations = [
'ms_teams_deprecated' => array(
'check' => !Str::contains(Setting::getSettings()->webhook_endpoint, 'workflows') && (Setting::getSettings()->webhook_selected === 'microsoft'),
'message' => 'The Microsoft Teams webhook URL being used will be deprecated Dec 31st, 2025. <a class="btn btn-primary" href="' . route('settings.slack.index') . '">Change webhook endpoint</a>'),
];
// if item of concern is being used and its being used with the deprecated values return the notification array.
if(Setting::getSettings()->webhook_selected === 'microsoft' && $deprecations['ms_teams_deprecated']['check']) {
return $deprecations;
}
return [];
}
/**
* This nasty little method gets the low inventory info for the
@@ -642,18 +772,19 @@ class Helper
*/
public static function checkLowInventory()
{
$alert_threshold = \App\Models\Setting::getSettings()->alert_threshold;
$consumables = Consumable::withCount('consumableAssignments as consumable_assignments_count')->whereNotNull('min_amt')->get();
$accessories = Accessory::withCount('users as users_count')->whereNotNull('min_amt')->get();
$accessories = Accessory::withCount('checkouts as checkouts_count')->whereNotNull('min_amt')->get();
$components = Component::whereNotNull('min_amt')->get();
$asset_models = AssetModel::where('min_amt', '>', 0)->get();
$licenses = License::where('min_amt', '>', 0)->get();
$avail_consumables = 0;
$items_array = [];
$all_count = 0;
foreach ($consumables as $consumable) {
$avail = $consumable->numRemaining();
if ($avail < ($consumable->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) {
if ($avail < ($consumable->min_amt) + $alert_threshold) {
if ($consumable->qty > 0) {
$percent = number_format((($avail / $consumable->qty) * 100), 0);
} else {
@@ -671,8 +802,8 @@ class Helper
}
foreach ($accessories as $accessory) {
$avail = $accessory->qty - $accessory->users_count;
if ($avail < ($accessory->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) {
$avail = $accessory->qty - $accessory->checkouts_count;
if ($avail < ($accessory->min_amt) + $alert_threshold) {
if ($accessory->qty > 0) {
$percent = number_format((($avail / $accessory->qty) * 100), 0);
} else {
@@ -691,7 +822,7 @@ class Helper
foreach ($components as $component) {
$avail = $component->numRemaining();
if ($avail < ($component->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) {
if ($avail < ($component->min_amt) + $alert_threshold) {
if ($component->qty > 0) {
$percent = number_format((($avail / $component->qty) * 100), 0);
} else {
@@ -714,7 +845,7 @@ class Helper
$total_owned = $asset->where('model_id', '=', $asset_model->id)->count();
$avail = $asset->where('model_id', '=', $asset_model->id)->whereNull('assigned_to')->count();
if ($avail < ($asset_model->min_amt)+ \App\Models\Setting::getSettings()->alert_threshold) {
if ($avail < ($asset_model->min_amt) + $alert_threshold) {
if ($avail > 0) {
$percent = number_format((($avail / $total_owned) * 100), 0);
} else {
@@ -730,6 +861,26 @@ class Helper
}
}
foreach ($licenses as $license){
$avail = $license->remaincount();
if ($avail < ($license->min_amt) + $alert_threshold) {
if ($avail > 0) {
$percent = number_format((($avail / $license->min_amt) * 100), 0);
} else {
$percent = 100;
}
$items_array[$all_count]['id'] = $license->id;
$items_array[$all_count]['name'] = $license->name;
$items_array[$all_count]['type'] = 'licenses';
$items_array[$all_count]['percent'] = $percent;
$items_array[$all_count]['remaining'] = $avail;
$items_array[$all_count]['min_amt'] = $license->min_amt;
$all_count++;
}
}
return $items_array;
}
@@ -747,7 +898,49 @@ class Helper
$filetype = @finfo_file($finfo, $file);
finfo_close($finfo);
if (($filetype == 'image/jpeg') || ($filetype == 'image/jpg') || ($filetype == 'image/png') || ($filetype == 'image/bmp') || ($filetype == 'image/gif')) {
if (($filetype == 'image/jpeg') || ($filetype == 'image/jpg') || ($filetype == 'image/png') || ($filetype == 'image/bmp') || ($filetype == 'image/gif') || ($filetype == 'image/avif') || ($filetype == 'image/webp')) {
return $filetype;
}
return false;
}
/**
* Check if the file is a video, so we can show a preview
*
* @param File $file
* @return string | Boolean
* @author [B. Wetherington] [<bwetherington@grokability.com>]
* @since [v8.1.18]
*/
public static function checkUploadIsVideo($file)
{
$finfo = @finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$filetype = @finfo_file($finfo, $file);
finfo_close($finfo);
if (($filetype == 'video/mp4') || ($filetype == 'video/quicktime') || ($filetype == 'video/mpeg') || ($filetype == 'video/ogg') || ($filetype == 'video/webm') || ($filetype == 'video/x-msvide')) {
return $filetype;
}
return false;
}
/**
* Check if the file is audio, so we can show a preview
*
* @param File $file
* @return string | Boolean
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
*/
public static function checkUploadIsAudio($file)
{
$finfo = @finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$filetype = @finfo_file($finfo, $file);
finfo_close($finfo);
if (($filetype == 'audio/mpeg') || ($filetype == 'audio/ogg')) {
return $filetype;
}
@@ -774,20 +967,29 @@ class Helper
public static function selectedPermissionsArray($permissions, $selected_arr = [])
{
$permissions_arr = [];
if (is_array($permissions)) {
$permissions = json_encode($permissions);
}
// Set default to empty JSON if the value is null
$permissions = json_decode($permissions ?? '{}', JSON_OBJECT_AS_ARRAY);
foreach ($permissions as $permission) {
for ($x = 0; $x < count($permission); $x++) {
$permission_name = $permission[$x]['permission'];
if ($permission[$x]['display'] === true) {
if ($selected_arr) {
if (is_array($selected_arr)) {
if (array_key_exists($permission_name, $selected_arr)) {
$permissions_arr[$permission_name] = $selected_arr[$permission_name];
$permissions_arr[$permission_name] = (int) $selected_arr[$permission_name];
} else {
$permissions_arr[$permission_name] = '0';
$permissions_arr[$permission_name] = 0;
}
} else {
$permissions_arr[$permission_name] = '0';
$permissions_arr[$permission_name] = 0;
}
}
}
@@ -813,13 +1015,22 @@ class Helper
$rules = $class::rules();
foreach ($rules as $rule_name => $rule) {
if ($rule_name == $field) {
if (strpos($rule, 'required') === false) {
return false;
if (is_array($rule)) {
if (in_array('required', $rule)) {
return true;
} else {
return false;
}
} else {
return true;
}
if (strpos($rule, 'required') === false) {
return false;
} else {
return true;
}
}
}
}
return false;
}
/**
@@ -917,7 +1128,7 @@ class Helper
try {
$tmp_date = new \Carbon($date);
$tmp_date = new Carbon($date);
if ($type == 'datetime') {
$dt['datetime'] = $tmp_date->format('Y-m-d H:i:s');
@@ -934,7 +1145,7 @@ class Helper
return $dt['formatted'];
} catch (\Exception $e) {
\Log::warning($e);
Log::warning($e);
return $date.' (Invalid '.$type.' value.)';
}
@@ -1011,22 +1222,45 @@ class Helper
'jpeg' => 'far fa-image',
'gif' => 'far fa-image',
'png' => 'far fa-image',
'webp' => 'far fa-image',
'avif' => 'far fa-image',
'svg' => 'fas fa-vector-square',
// word
'doc' => 'far fa-file-word',
'docx' => 'far fa-file-word',
// Excel
'xls' => 'far fa-file-excel',
'xlsx' => 'far fa-file-excel',
'ods' => 'far fa-file-excel',
// Presentation
'ppt' => 'far fa-file-powerpoint',
'odp' => 'far fa-file-powerpoint',
// archive
'zip' => 'fas fa-file-archive',
'rar' => 'fas fa-file-archive',
//Text
'odt' => 'far fa-file-alt',
'txt' => 'far fa-file-alt',
'rtf' => 'far fa-file-alt',
'xml' => 'far fa-file-alt',
'xml' => 'fas fa-code',
// Misc
'pdf' => 'far fa-file-pdf',
'lic' => 'far fa-save',
// video
'mov' => 'fa-solid fa-video',
'mp4' => 'fa-solid fa-video',
// audio
'ogg' => 'fa-solid fa-file-audio',
'mp3' => 'fa-solid fa-file-audio',
'wav' => 'fa-solid fa-file-audio',
];
if ($extension && array_key_exists($extension, $allowedExtensionMap)) {
@@ -1036,39 +1270,7 @@ class Helper
return 'far fa-file';
}
public static function show_file_inline($filename)
{
$extension = substr(strrchr($filename, '.'), 1);
if ($extension) {
switch ($extension) {
case 'jpg':
case 'jpeg':
case 'gif':
case 'png':
return true;
break;
default:
return false;
}
}
return false;
}
/**
* Generate a random encrypted password.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*
* @return string
*/
public static function generateEncyrptedPassword(): string
{
return bcrypt(self::generateUnencryptedPassword());
}
/**
* Get a random unencrypted password.
@@ -1202,25 +1404,24 @@ class Helper
switch ($item) {
case 'asset':
return 'fas fa-barcode';
break;
case 'accessory':
return 'fas fa-keyboard';
break;
case 'component':
return 'fas fa-hdd';
break;
case 'consumable':
return 'fas fa-tint';
break;
case 'license':
return 'far fa-save';
break;
case 'location':
return 'fas fa-map-marker-alt';
break;
case 'user':
return 'fas fa-user';
break;
case 'supplier':
return 'fa-solid fa-store';
case 'manufacturer':
return 'fa-solid fa-building';
case 'category':
return 'fa-solid fa-table-columns';
}
}
@@ -1243,7 +1444,7 @@ class Helper
public static function isDemoMode() {
if (config('app.lock_passwords') === true) {
return true;
\Log::debug('app locked!');
Log::debug('app locked!');
}
return false;
@@ -1301,7 +1502,7 @@ class Helper
/*
* I know it's gauche to return a shitty HTML string, but this is just a helper and since it will be the same every single time,
* I know it's gauche to return a shitty HTML string, but this is just a helper and since it will be the same every single time,
* it seemed pretty safe to do here. Don't you judge me.
*/
public static function showDemoModeFieldWarning() {
@@ -1309,4 +1510,229 @@ class Helper
return "<p class=\"text-warning\"><i class=\"fas fa-lock\"></i>" . trans('general.feature_disabled') . "</p>";
}
}
/**
* Ah, legacy code.
*
* This corrects the original mistakes from 2013 where we used the wrong locale codes. Hopefully we
* can get rid of this in a future version, but this should at least give us the belt and suspenders we need
* to be sure this change is not too disruptive.
*
* In this array, we ONLY include the older languages where we weren't using the correct locale codes.
*
* @see public static $language_map in this file
* @author A. Gianotto <snipe@snipe.net>
* @since 6.3.0
*
* @param $language_code
* @return string []
*/
public static function mapLegacyLocale($language_code = null)
{
if (strlen($language_code) > 4) {
return $language_code;
}
foreach (self::$language_map as $legacy => $new) {
if ($language_code == $legacy) {
return $new;
}
}
// Return US english if we don't have a match
return 'en-US';
}
public static function mapBackToLegacyLocale($new_locale = null)
{
if (strlen($new_locale) <= 4) {
return $new_locale; //"new locale" apparently wasn't quite so new
}
// This does a *reverse* search against our new language map array - given the value, find the *key* for it
$legacy_locale = array_search($new_locale, self::$language_map);
if ($legacy_locale !== false) {
return $legacy_locale;
}
return $new_locale; // better that you have some weird locale that doesn't fit into our mappings anywhere than 'void'
}
public static function determineLanguageDirection() {
return in_array(app()->getLocale(),
[
'ar-SA',
'fa-IR',
'he-IL'
]) ? 'rtl' : 'ltr';
}
static public function getRedirectOption($request, $id, $table, $item_id = null) : RedirectResponse
{
$redirect_option = Session::get('redirect_option') ?? $request->redirect_option;
$checkout_to_type = Session::get('checkout_to_type') ?? null;
$checkedInFrom = Session::get('checkedInFrom');
$other_redirect = Session::get('other_redirect');
$backUrl = Session::pull('back_url', route('home'));
// return to previous page
if ($redirect_option === 'back') {
return redirect()->to($backUrl);
}
// return to index
if ($redirect_option == 'index') {
return match ($table) {
'Assets' => redirect()->route('hardware.index'),
'Users' => redirect()->route('users.index'),
'Licenses' => redirect()->route('licenses.index'),
'Accessories' => redirect()->route('accessories.index'),
'Components' => redirect()->route('components.index'),
'Consumables' => redirect()->route('consumables.index'),
};
}
// return to thing being assigned
if ($redirect_option == 'item') {
return match ($table) {
'Assets' => redirect()->route('hardware.show', $id ?? $item_id),
'Users' => redirect()->route('users.show', $id ?? $item_id),
'Licenses' => redirect()->route('licenses.show', $id ?? $item_id),
'Accessories' => redirect()->route('accessories.show', $id ?? $item_id),
'Components' => redirect()->route('components.show', $id ?? $item_id),
'Consumables' => redirect()->route('consumables.show', $id ?? $item_id),
};
}
// return to assignment target
if ($redirect_option == 'target') {
return match ($checkout_to_type) {
'user' => redirect()->route('users.show', $request->assigned_user ?? $checkedInFrom),
'location' => redirect()->route('locations.show', $request->assigned_location ?? $checkedInFrom),
'asset' => redirect()->route('hardware.show', $request->assigned_asset ?? $checkedInFrom),
};
}
// return to somewhere else
if ($redirect_option == 'other_redirect') {
return match ($other_redirect) {
'audit' => redirect()->route('assets.audit.due'),
'model' => redirect()->route('models.show', $request->model_id),
};
}
return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error'));
}
/**
* Check for inconsistencies before activating scoped locations with FullMultipleCompanySupport
* If there are locations with different companies than related objects unforseen problems could arise
*
* @author T. Regnery <tobias.regnery@gmail.com>
* @since 7.0
*
* @param $artisan when false, bail out on first inconsistent entry
* @param $location_id when set, only test this specific location
* @param $new_company_id in case of updating a location, this is the newly requested company_id
* @return string []
*/
static public function test_locations_fmcs($artisan, $location_id = null, $new_company_id = null) {
$mismatched = [];
if ($location_id) {
$location = Location::find($location_id);
if ($location) {
$locations = collect([])->push(Location::find($location_id));
}
} else {
$locations = Location::all();
}
// Bail out early if there are no locations
if ($locations->count() == 0) {
return [];
}
foreach($locations as $location) {
// in case of an update of a single location, use the newly requested company_id
if ($new_company_id) {
$location_company = $new_company_id;
} else {
$location_company = $location->company_id;
}
// Depending on the relationship, we must use different operations to retrieve the objects
$keywords_relation = [
'many' => [
'accessories',
'assets',
'assignedAccessories',
'assignedAssets',
'components',
'consumables',
'rtd_assets',
'users',
],
'one' => [
'manager',
'parent',
]];
// In case of a single location, the children must be checked as well, because we don't walk every location
if ($location_id) {
$keywords_relation['many'][] = 'children';
}
foreach ($keywords_relation as $relation => $keywords) {
foreach($keywords as $keyword) {
if ($relation == 'many') {
$items = $location->{$keyword}->all();
} else {
$items = collect([])->push($location->$keyword);
}
$count = 0;
foreach ($items as $item) {
if ($item && $item->company_id != $location_company) {
$mismatched[] = [
class_basename(get_class($item)),
$item->id,
$item->name ?? $item->asset_tag ?? $item->serial ?? $item->username,
$item->assigned_type ? str_replace('App\\Models\\', '', $item->assigned_type) : null,
$item->company_id ?? null,
$item->company->name ?? null,
// $item->defaultLoc->id ?? null,
// $item->defaultLoc->name ?? null,
// $item->defaultLoc->company->id ?? null,
// $item->defaultLoc->company->name ?? null,
$item->location->name ?? null,
$item->location->company->name ?? null,
$location_company ?? null,
];
$count++;
// Bail early if this is not being run via artisan
if ((!$artisan) && ($count > 0)) {
return $mismatched;
}
}
}
}
}
}
return $mismatched;
}
}

200
app/Helpers/IconHelper.php Normal file
View File

@@ -0,0 +1,200 @@
<?php
namespace App\Helpers;
class IconHelper
{
public static function icon($type) {
switch ($type) {
case 'checkout':
return 'fa-solid fa-rotate-left';
case 'checkin':
return 'fa-solid fa-rotate-right';
case 'edit':
return 'fas fa-pencil-alt';
case 'clone':
return 'far fa-clone';
case 'delete':
case 'upload deleted':
return 'fas fa-trash';
case 'create':
return 'fa-solid fa-plus';
case 'audit':
return 'fa-solid fa-clipboard-check';
case '2fa reset':
return 'fa-solid fa-mobile-screen';
case 'new-user':
return 'fa-solid fa-user-plus';
case 'merged-user':
return 'fa-solid fa-people-arrows';
case 'delete-user':
return 'fa-solid fa-user-minus';
case 'update-user':
return 'fa-solid fa-user-pen';
case 'user':
return 'fa-solid fa-user';
case 'users':
return 'fas fa-users';
case 'restore':
return 'fa-solid fa-trash-arrow-up';
case 'external-link':
return 'fa fa-external-link';
case 'email':
return 'fa-regular fa-envelope';
case 'phone':
return 'fa-solid fa-phone';
case 'mobile':
return 'fas fa-mobile-screen-button';
case 'long-arrow-right':
return 'fas fa-long-arrow-alt-right';
case 'download':
return 'fas fa-download';
case 'checkmark':
return 'fas fa-check icon-white';
case 'x':
return 'fas fa-times';
case 'logout':
return 'fa fa-sign-out';
case 'admin-settings':
return 'fas fa-cogs';
case 'settings':
return 'fas fa-cog';
case 'angle-left':
return 'fas fa-angle-left';
case 'angle-right':
return 'fas fa-angle-right';
case 'warning':
return 'fas fa-exclamation-triangle';
case 'kits':
return 'fas fa-object-group';
case 'assets':
case 'asset':
return 'fas fa-barcode';
case 'accessories':
case 'accessory':
return 'far fa-keyboard';
case 'components':
case 'component':
return 'far fa-hdd';
case 'consumables':
case 'consumable':
return 'fas fa-tint';
case 'licenses':
case 'license':
return 'far fa-save';
case 'requestable':
return 'fas fa-laptop';
case 'reports':
return 'fas fa-chart-bar';
case 'heart':
return 'fas fa-heart';
case 'circle':
return 'fa-regular fa-circle';
case 'circle-solid':
return 'fa-solid fa-circle';
case 'due':
return 'fas fa-history';
case 'import':
return 'fas fa-cloud-upload-alt';
case 'search':
return 'fas fa-search';
case 'alerts':
return 'far fa-flag';
case 'password':
return 'fa-solid fa-key';
case 'api-key':
return 'fa-solid fa-user-secret';
case 'nav-toggle':
return 'fas fa-bars';
case 'dashboard':
return 'fas fa-tachometer-alt';
case 'info-circle':
return 'fas fa-info-circle';
case 'caret-right':
return 'fa fa-caret-right';
case 'caret-up':
return 'fa fa-caret-up';
case 'caret-down':
return 'fa fa-caret-down';
case 'arrow-circle-right':
return 'fa fa-arrow-circle-right';
case 'minus':
return 'fas fa-minus';
case 'spinner':
return 'fas fa-spinner fa-spin';
case 'copy-clipboard':
return 'fa-regular fa-clipboard';
case 'paperclip':
return 'fas fa-paperclip';
case 'files':
return 'fa-regular fa-file';
case 'more-info':
return 'far fa-life-ring';
case 'calendar':
return 'fas fa-calendar';
case 'plus':
return 'fas fa-plus';
case 'history':
return 'fas fa-history';
case 'more-files':
return 'fa-solid fa-laptop-file';
case 'maintenances':
return 'fas fa-wrench';
case 'seats':
return 'far fa-list-alt';
case 'globe-us':
return 'fas fa-globe-americas';
case 'locked':
return 'fas fa-lock';
case 'unlocked':
return 'fas fa-lock';
case 'locations':
return 'fas fa-map-marker-alt';
case 'location':
return 'fas fa-map-marker-alt';
case 'superadmin':
case 'admin':
return 'fas fa-crown';
case 'print':
return 'fa-solid fa-print';
case 'checkin-and-delete':
return 'fa-solid fa-user-xmark';
case 'branding':
return 'fas fa-copyright';
case 'general-settings':
return 'fa-solid fa-list-check';
case 'groups':
return 'fa-solid fa-user-group';
case 'bell':
return 'fa-solid fa-bell';
case 'hashtag':
return 'fa-solid fa-hashtag';
case 'asset-tags':
return 'fas fa-list-ol';
case 'labels':
return 'fas fa-tags';
case 'ldap':
return 'fas fa-sitemap';
case 'google':
return 'fa-brands fa-google';
case 'saml':
return 'fas fa-sign-in-alt';
case 'backups':
return 'fas fa-file-archive';
case 'logins':
return 'fas fa-crosshairs';
case 'oauth':
return 'fas fa-user-secret';
case 'employee_num' :
return 'fa-regular fa-id-card';
case 'department' :
return 'fa-solid fa-building-user';
case 'home' :
return 'fa-solid fa-house';
case 'note':
case 'notes':
return 'fas fa-sticky-note';
}
}
}

View File

@@ -3,23 +3,147 @@
namespace App\Helpers;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response;
use Illuminate\Http\RedirectResponse;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\StreamedResponse;
use Illuminate\Contracts\Filesystem\FileNotFoundException;
class StorageHelper
{
public static function downloader($filename, $disk = 'default')
public static function downloader($filename, $disk = 'default') : BinaryFileResponse | RedirectResponse | StreamedResponse
{
if ($disk == 'default') {
$disk = config('filesystems.default');
}
switch (config("filesystems.disks.$disk.driver")) {
case 'local':
return response()->download(Storage::disk($disk)->path($filename)); //works for PRIVATE or public?!
case 'local':
return response()->download(Storage::disk($disk)->path($filename)); //works for PRIVATE or public?!
case 's3':
return redirect()->away(Storage::disk($disk)->temporaryUrl($filename, now()->addMinutes(5))); //works for private or public, I guess?
case 's3':
return redirect()->away(Storage::disk($disk)->temporaryUrl($filename, now()->addMinutes(5))); //works for private or public, I guess?
default:
return Storage::disk($disk)->download($filename);
default:
return Storage::disk($disk)->download($filename);
}
}
public static function getMediaType($file_with_path) {
// Get the file extension and determine the media type
if (Storage::exists($file_with_path)) {
$fileinfo = pathinfo($file_with_path);
$extension = strtolower($fileinfo['extension']);
switch ($extension) {
case 'avif':
case 'jpg':
case 'png':
case 'gif':
case 'svg':
case 'webp':
return 'image';
case 'pdf':
return 'pdf';
case 'mp3':
case 'wav':
case 'ogg':
return 'audio';
case 'mp4':
case 'webm':
case 'mov':
return 'video';
case 'doc':
case 'docx':
return 'document';
case 'txt':
return 'text';
case 'xls':
case 'xlsx':
case 'ods':
return 'spreadsheet';
default:
return $extension; // Default for unknown types
}
}
return null;
}
/**
* This determines the file types that should be allowed inline and checks their fileinfo extension
* to determine that they are safe to display inline.
*
* @author <A. Gianotto> [<snipe@snipe.net]>
* @since v7.0.14
* @param $file_with_path
* @return bool
*/
public static function allowSafeInline($file_with_path)
{
$allowed_inline = [
'avif',
'gif',
'gif',
'jpg',
'mov',
'mp3',
'mp4',
'ogg',
'pdf',
'png',
'svg',
'wav',
'webm',
'webp',
];
// The file exists and is allowed to be displayed inline
if (Storage::exists($file_with_path) && (in_array(pathinfo($file_with_path, PATHINFO_EXTENSION), $allowed_inline))) {
return true;
}
return false;
}
public static function getFiletype($file_with_path)
{
// The file exists and is allowed to be displayed inline
if (Storage::exists($file_with_path)) {
return pathinfo($file_with_path, PATHINFO_EXTENSION);
}
return null;
}
/**
* Decide whether to show the file inline or download it.
*/
public static function showOrDownloadFile($file, $filename)
{
$headers = [];
if (request('inline') == 'true') {
$headers = [
'Content-Disposition' => 'inline',
];
// This is NOT allowed as inline - force it to be displayed as text in the browser
if (self::allowSafeInline($file) != true) {
$headers = array_merge($headers, ['Content-Type' => 'text/plain']);
}
}
// Everything else seems okay, but the file doesn't exist on the server.
if (Storage::missing($file)) {
throw new FileNotFoundException();
}
return Storage::download($file, $filename, $headers);
}
}

View File

@@ -7,10 +7,11 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\ImageUploadRequest;
use App\Models\Accessory;
use App\Models\Company;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Redirect;
use \Illuminate\Contracts\View\View;
use \Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Log;
/** This controller handles all actions related to Accessories for
* the Snipe-IT Asset Management application.
@@ -26,24 +27,19 @@ class AccessoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @see AccessoriesController::getDatatable() method that generates the JSON response
* @since [v1.0]
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function index()
public function index() : View
{
$this->authorize('index', Accessory::class);
return view('accessories/index');
return view('accessories.index');
}
/**
* Returns a view with a form to create a new Accessory.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function create()
public function create() : View
{
$this->authorize('create', Accessory::class);
$category_type = 'accessory';
@@ -57,10 +53,8 @@ class AccessoriesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param ImageUploadRequest $request
* @return Redirect
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function store(ImageUploadRequest $request)
public function store(ImageUploadRequest $request) : RedirectResponse
{
$this->authorize(Accessory::class);
@@ -79,16 +73,34 @@ class AccessoriesController extends Controller
$accessory->purchase_date = request('purchase_date');
$accessory->purchase_cost = request('purchase_cost');
$accessory->qty = request('qty');
$accessory->user_id = Auth::user()->id;
$accessory->created_by = auth()->id();
$accessory->supplier_id = request('supplier_id');
$accessory->notes = request('notes');
$accessory = $request->handleImages($accessory);
if ($request->has('use_cloned_image')) {
$cloned_model_img = Accessory::select('image')->find($request->input('clone_image_from_id'));
if ($cloned_model_img) {
$new_image_name = 'clone-'.date('U').'-'.$cloned_model_img->image;
$new_image = 'accessories/'.$new_image_name;
Storage::disk('public')->copy('accessories/'.$cloned_model_img->image, $new_image);
$accessory->image = $new_image_name;
}
} else {
$accessory = $request->handleImages($accessory);
}
if($request->get('redirect_option') === 'back'){
session()->put(['redirect_option' => 'index']);
} else {
session()->put(['redirect_option' => $request->get('redirect_option')]);
}
// Was the accessory created?
if ($accessory->save()) {
// Redirect to the new accessory page
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.create.success'));
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
->with('success', trans('admin/accessories/message.create.success'));
}
return redirect()->back()->withInput()->withErrors($accessory->getErrors());
@@ -99,20 +111,11 @@ class AccessoriesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function edit($accessoryId = null)
public function edit(Accessory $accessory) : View | RedirectResponse
{
if ($item = Accessory::find($accessoryId)) {
$this->authorize($item);
return view('accessories/edit', compact('item'))->with('category_type', 'accessory');
}
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
$this->authorize('update', Accessory::class);
return view('accessories.edit')->with('item', $accessory)->with('category_type', 'accessory');
}
/**
@@ -121,26 +124,19 @@ class AccessoriesController extends Controller
* @author [J. Vinsmoke]
* @param int $accessoryId
* @since [v6.0]
* @return View
*/
public function getClone($accessoryId = null)
public function getClone(Accessory $accessory) : View | RedirectResponse
{
$this->authorize('create', Accessory::class);
// Check if the asset exists
if (is_null($accessory_to_clone = Accessory::find($accessoryId))) {
// Redirect to the asset management page
return redirect()->route('accessories.index')
->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryId]));
}
$accessory = clone $accessory_to_clone;
$accessory->id = null;
$accessory->location_id = null;
$cloned = clone $accessory;
$accessory_to_clone = $accessory;
$cloned->id = null;
$cloned->deleted_at = '';
return view('accessories/edit')
->with('item', $accessory);
->with('cloned_model', $accessory_to_clone)
->with('item', $cloned);
}
@@ -150,17 +146,15 @@ class AccessoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param ImageUploadRequest $request
* @param int $accessoryId
* @return Redirect
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function update(ImageUploadRequest $request, $accessoryId = null)
public function update(ImageUploadRequest $request, Accessory $accessory) : RedirectResponse
{
if ($accessory = Accessory::withCount('users as users_count')->find($accessoryId)) {
if ($accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessory->id)) {
$this->authorize($accessory);
$validator = Validator::make($request->all(), [
"qty" => "required|numeric|min:$accessory->users_count"
"qty" => "required|numeric|min:$accessory->checkouts_count"
]);
if ($validator->fails()) {
@@ -188,9 +182,11 @@ class AccessoriesController extends Controller
$accessory = $request->handleImages($accessory);
// Was the accessory updated?
session()->put(['redirect_option' => $request->get('redirect_option')]);
if ($accessory->save()) {
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success'));
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
->with('success', trans('admin/accessories/message.update.success'));
}
} else {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
@@ -204,27 +200,25 @@ class AccessoriesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return Redirect
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy($accessoryId)
public function destroy($accessoryId) : RedirectResponse
{
if (is_null($accessory = Accessory::find($accessoryId))) {
if (is_null($accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessoryId))) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
$this->authorize($accessory);
if ($accessory->hasUsers() > 0) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.assoc_users', ['count'=> $accessory->hasUsers()]));
if ($accessory->checkouts_count > 0) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/general.delete_disabled'));
}
if ($accessory->image) {
try {
Storage::disk('public')->delete('accessories'.'/'.$accessory->image);
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
}
}
@@ -242,17 +236,14 @@ class AccessoriesController extends Controller
* @param int $accessoryID
* @see AccessoriesController::getDataView() method that generates the JSON response
* @since [v1.0]
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($accessoryID = null)
public function show(Accessory $accessory) : View | RedirectResponse
{
$accessory = Accessory::withCount('users as users_count')->find($accessoryID);
$this->authorize('view', $accessory);
if (isset($accessory->id)) {
return view('accessories/view', compact('accessory'));
}
$accessory->loadCount('checkouts as checkouts_count');
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryID]));
$accessory->load(['adminuser' => fn($query) => $query->withTrashed()]);
$this->authorize('view', $accessory);
return view('accessories.view', compact('accessory'));
}
}

View File

@@ -1,183 +0,0 @@
<?php
namespace App\Http\Controllers\Accessories;
use App\Helpers\StorageHelper;
use App\Http\Controllers\Controller;
use App\Http\Requests\AssetFileRequest;
use App\Models\Actionlog;
use App\Models\Accessory;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage;
use Symfony\Accessory\HttpFoundation\JsonResponse;
use enshrined\svgSanitize\Sanitizer;
class AccessoriesFilesController extends Controller
{
/**
* Validates and stores files associated with a accessory.
*
* @todo Switch to using the AssetFileRequest form request validator.
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.0]
* @param AssetFileRequest $request
* @param int $accessoryId
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function store(AssetFileRequest $request, $accessoryId = null)
{
if (config('app.lock_passwords')) {
return redirect()->route('accessories.show', ['accessory'=>$accessoryId])->with('error', trans('general.feature_disabled'));
}
$accessory = Accessory::find($accessoryId);
if (isset($accessory->id)) {
$this->authorize('accessories.files', $accessory);
if ($request->hasFile('file')) {
if (! Storage::exists('private_uploads/accessories')) {
Storage::makeDirectory('private_uploads/accessories', 775);
}
foreach ($request->file('file') as $file) {
$extension = $file->getClientOriginalExtension();
$file_name = 'accessory-'.$accessory->id.'-'.str_random(8).'-'.str_slug(basename($file->getClientOriginalName(), '.'.$extension)).'.'.$extension;
// Check for SVG and sanitize it
if ($extension == 'svg') {
\Log::debug('This is an SVG');
\Log::debug($file_name);
$sanitizer = new Sanitizer();
$dirtySVG = file_get_contents($file->getRealPath());
$cleanSVG = $sanitizer->sanitize($dirtySVG);
try {
Storage::put('private_uploads/accessories/'.$file_name, $cleanSVG);
} catch (\Exception $e) {
\Log::debug('Upload no workie :( ');
\Log::debug($e);
}
} else {
Storage::put('private_uploads/accessories/'.$file_name, file_get_contents($file));
}
//Log the upload to the log
$accessory->logUpload($file_name, e($request->input('notes')));
}
return redirect()->route('accessories.show', $accessory->id)->with('success', trans('general.file_upload_success'));
}
return redirect()->route('accessories.show', $accessory->id)->with('error', trans('general.no_files_uploaded'));
}
// Prepare the error message
return redirect()->route('accessories.index')
->with('error', trans('general.file_does_not_exist'));
}
/**
* Deletes the selected accessory file.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.0]
* @param int $accessoryId
* @param int $fileId
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy($accessoryId = null, $fileId = null)
{
$accessory = Accessory::find($accessoryId);
// the asset is valid
if (isset($accessory->id)) {
$this->authorize('update', $accessory);
$log = Actionlog::find($fileId);
// Remove the file if one exists
if (Storage::exists('accessories/'.$log->filename)) {
try {
Storage::delete('accessories/'.$log->filename);
} catch (\Exception $e) {
\Log::debug($e);
}
}
$log->delete();
return redirect()->back()
->with('success', trans('admin/hardware/message.deletefile.success'));
}
// Redirect to the licence management page
return redirect()->route('accessories.index')->with('error', trans('general.file_does_not_exist'));
}
/**
* Allows the selected file to be viewed.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.4]
* @param int $accessoryId
* @param int $fileId
* @return \Symfony\Accessory\HttpFoundation\Response
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($accessoryId = null, $fileId = null, $download = true)
{
\Log::debug('Private filesystem is: '.config('filesystems.default'));
$accessory = Accessory::find($accessoryId);
// the accessory is valid
if (isset($accessory->id)) {
$this->authorize('view', $accessory);
$this->authorize('accessories.files', $accessory);
if (! $log = Actionlog::find($fileId)) {
return response('No matching record for that asset/file', 500)
->header('Content-Type', 'text/plain');
}
$file = 'private_uploads/accessories/'.$log->filename;
if (Storage::missing($file)) {
\Log::debug('FILE DOES NOT EXISTS for '.$file);
\Log::debug('URL should be '.Storage::url($file));
return response('File '.$file.' ('.Storage::url($file).') not found on server', 404)
->header('Content-Type', 'text/plain');
} else {
// Display the file inline
if (request('inline') == 'true') {
$headers = [
'Content-Disposition' => 'inline',
];
return Storage::download($file, $log->filename, $headers);
}
// We have to override the URL stuff here, since local defaults in Laravel's Flysystem
// won't work, as they're not accessible via the web
if (config('filesystems.default') == 'local') { // TODO - is there any way to fix this at the StorageHelper layer?
return StorageHelper::downloader($file);
}
}
}
return redirect()->route('accessories.index')->with('error', trans('general.file_does_not_exist', ['id' => $fileId]));
}
}

View File

@@ -3,12 +3,14 @@
namespace App\Http\Controllers\Accessories;
use App\Events\CheckoutableCheckedIn;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Accessory;
use App\Models\User;
use App\Models\AccessoryCheckout;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use \Illuminate\Contracts\View\View;
use \Illuminate\Http\RedirectResponse;
class AccessoryCheckinController extends Controller
{
@@ -19,22 +21,25 @@ class AccessoryCheckinController extends Controller
* @param Request $request
* @param int $accessoryUserId
* @param string $backto
* @return View
* @internal param int $accessoryId
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function create($accessoryUserId = null, $backto = null)
public function create($accessoryUserId = null, $backto = null) : View | RedirectResponse
{
// Check if the accessory exists
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
// Redirect to the accessory management page with error
if (is_null($accessory_user = DB::table('accessories_checkout')->find($accessoryUserId))) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
$accessory = Accessory::find($accessory_user->accessory_id);
//based on what the accessory is checked out to the target redirect option will be displayed accordingly.
$target_option = match ($accessory_user->assigned_type) {
'App\Models\Asset' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]),
'App\Models\Location' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.location')]),
default => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]),
};
$this->authorize('checkin', $accessory);
return view('accessories/checkin', compact('accessory'))->with('backto', $backto);
return view('accessories/checkin', compact('accessory', 'target_option'))->with('backto', $backto);
}
/**
@@ -42,36 +47,39 @@ class AccessoryCheckinController extends Controller
*
* @uses Accessory::checkin_email() to determine if an email can and should be sent
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param null $accessoryUserId
* @param null $accessoryCheckoutId
* @param string $backto
* @return Redirect
* @throws \Illuminate\Auth\Access\AuthorizationException
* @internal param int $accessoryId
*/
public function store(Request $request, $accessoryUserId = null, $backto = null)
public function store(Request $request, $accessoryCheckoutId = null, $backto = null) : RedirectResponse
{
// Check if the accessory exists
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
// Redirect to the accessory management page with error
if (is_null($accessory_checkout = AccessoryCheckout::find($accessoryCheckoutId))) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
}
$accessory = Accessory::find($accessory_user->accessory_id);
$accessory = Accessory::find($accessory_checkout->accessory_id);
session()->put('checkedInFrom', $accessory_checkout->assigned_to);
session()->put('checkout_to_type', match ($accessory_checkout->assigned_type) {
'App\Models\User' => 'user',
'App\Models\Location' => 'location',
'App\Models\Asset' => 'asset',
});
$this->authorize('checkin', $accessory);
$checkin_at = date('Y-m-d');
$checkin_hours = date('H:i:s');
$checkin_at = date('Y-m-d H:i:s');
if ($request->filled('checkin_at')) {
$checkin_at = $request->input('checkin_at');
$checkin_at = $request->input('checkin_at').' '.$checkin_hours;
}
// Was the accessory updated?
if (DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) {
$return_to = e($accessory_user->assigned_to);
if ($accessory_checkout->delete()) {
event(new CheckoutableCheckedIn($accessory, $accessory_checkout->assignedTo, auth()->user(), $request->input('note'), $checkin_at));
event(new CheckoutableCheckedIn($accessory, User::find($return_to), Auth::user(), $request->input('note'), $checkin_at));
session()->put(['redirect_option' => $request->get('redirect_option')]);
return redirect()->route('accessories.show', $accessory->id)->with('success', trans('admin/accessories/message.checkin.success'));
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
->with('success', trans('admin/accessories/message.checkin.success'));
}
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error'));

View File

@@ -3,46 +3,56 @@
namespace App\Http\Controllers\Accessories;
use App\Events\CheckoutableCheckedOut;
use App\Helpers\Helper;
use App\Http\Controllers\CheckInOutRequest;
use App\Http\Controllers\Controller;
use App\Http\Requests\AccessoryCheckoutRequest;
use App\Models\Accessory;
use App\Models\AccessoryCheckout;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use \Illuminate\Contracts\View\View;
use \Illuminate\Http\RedirectResponse;
class AccessoryCheckoutController extends Controller
{
use CheckInOutRequest;
/**
* Return the form to checkout an Accessory to a user.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
* @param int $id
*/
public function create($accessoryId)
public function create($id) : View | RedirectResponse
{
// Check if the accessory exists
if (is_null($accessory = Accessory::withCount('users as users_count')->find($accessoryId))) {
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
// Make sure there is at least one available to checkout
if ($accessory->numRemaining() <= 0){
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkout.unavailable'));
}
if ($accessory->category) {
if ($accessory = Accessory::withCount('checkouts as checkouts_count')->find($id)) {
$this->authorize('checkout', $accessory);
// Get the dropdown of users and then pass it to the checkout view
return view('accessories/checkout', compact('accessory'));
if ($accessory->category) {
// Make sure there is at least one available to checkout
if ($accessory->numRemaining() <= 0){
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkout.unavailable'));
}
// Return the checkout view
return view('accessories/checkout', compact('accessory'));
}
// Invalid category
return redirect()->route('accessories.edit', ['accessory' => $accessory->id])
->with('error', trans('general.invalid_item_category_single', ['type' => trans('general.accessory')]));
}
return redirect()->back()->with('error', 'The category type for this accessory is not valid. Edit the accessory and select a valid accessory category.');
// Not found
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
/**
@@ -53,46 +63,42 @@ class AccessoryCheckoutController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param Request $request
* @param int $accessoryId
* @return Redirect
* @throws \Illuminate\Auth\Access\AuthorizationException
* @param Accessory $accessory
*/
public function store(Request $request, $accessoryId)
public function store(AccessoryCheckoutRequest $request, Accessory $accessory) : RedirectResponse
{
// Check if the accessory exists
if (is_null($accessory = Accessory::withCount('users as users_count')->find($accessoryId))) {
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.user_not_found'));
}
$this->authorize('checkout', $accessory);
if (!$user = User::find($request->input('assigned_to'))) {
return redirect()->route('accessories.checkout.show', $accessory->id)->with('error', trans('admin/accessories/message.checkout.user_does_not_exist'));
$target = $this->determineCheckoutTarget();
session()->put(['checkout_to_type' => $target]);
$accessory->checkout_qty = $request->input('checkout_qty', 1);
for ($i = 0; $i < $accessory->checkout_qty; $i++) {
$accessory_checkout = new AccessoryCheckout([
'accessory_id' => $accessory->id,
'created_at' => Carbon::now(),
'assigned_to' => $target->id,
'assigned_type' => $target::class,
'note' => $request->input('note'),
]);
$accessory_checkout->created_by = auth()->id();
$accessory_checkout->save();
}
// Make sure there is at least one available to checkout
if ($accessory->numRemaining() <= 0){
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkout.unavailable'));
}
event(new CheckoutableCheckedOut($accessory, $target, auth()->user(), $request->input('note')));
$request->request->add(['checkout_to_type' => request('checkout_to_type')]);
$request->request->add(['assigned_to' => $target->id]);
// Update the accessory data
$accessory->assigned_to = e($request->input('assigned_to'));
session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]);
$accessory->users()->attach($accessory->id, [
'accessory_id' => $accessory->id,
'created_at' => Carbon::now(),
'user_id' => Auth::id(),
'assigned_to' => $request->get('assigned_to'),
'note' => $request->input('note'),
]);
DB::table('accessories_users')->where('assigned_to', '=', $accessory->assigned_to)->where('accessory_id', '=', $accessory->id)->first();
event(new CheckoutableCheckedOut($accessory, $user, Auth::user(), $request->input('note')));
// Redirect to the new accessory page
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.checkout.success'));
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
->with('success', trans('admin/accessories/message.checkout.success'));
}
}

View File

@@ -7,41 +7,33 @@ use App\Events\CheckoutDeclined;
use App\Events\ItemAccepted;
use App\Events\ItemDeclined;
use App\Http\Controllers\Controller;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Mail\CheckoutAcceptanceResponseMail;
use App\Models\CheckoutAcceptance;
use App\Models\Company;
use App\Models\Contracts\Acceptable;
use App\Models\Setting;
use App\Models\User;
use App\Models\AssetModel;
use App\Models\Accessory;
use App\Models\License;
use App\Models\Component;
use App\Models\Consumable;
use App\Notifications\AcceptanceAssetAcceptedNotification;
use App\Notifications\AcceptanceAssetAcceptedToUserNotification;
use App\Notifications\AcceptanceAssetDeclinedNotification;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use App\Http\Controllers\SettingsController;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
use phpDocumentor\Reflection\Types\Compound;
use \Illuminate\Contracts\View\View;
use \Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Log;
use App\Helpers\Helper;
class AcceptanceController extends Controller
{
/**
* Show a listing of pending checkout acceptances for the current user
*
* @return View
*/
public function index()
public function index() : View
{
$acceptances = CheckoutAcceptance::forUser(Auth::user())->pending()->get();
$acceptances = CheckoutAcceptance::forUser(auth()->user())->pending()->get();
return view('account/accept.index', compact('acceptances'));
}
@@ -49,9 +41,8 @@ class AcceptanceController extends Controller
* Shows a form to either accept or decline the checkout acceptance
*
* @param int $id
* @return mixed
*/
public function create($id)
public function create($id) : View | RedirectResponse
{
$acceptance = CheckoutAcceptance::find($id);
@@ -64,7 +55,7 @@ class AcceptanceController extends Controller
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.asset_already_accepted'));
}
if (! $acceptance->isCheckedOutTo(Auth::user())) {
if (! $acceptance->isCheckedOutTo(auth()->user())) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.incorrect_user_accepted'));
}
@@ -80,11 +71,15 @@ class AcceptanceController extends Controller
*
* @param Request $request
* @param int $id
* @return Redirect
*/
public function store(Request $request, $id)
public function store(Request $request, $id) : RedirectResponse
{
$acceptance = CheckoutAcceptance::find($id);
$assigned_user = User::find($acceptance->assigned_to_id);
$settings = Setting::getSettings();
$path_logo = '';
$sig_filename='';
if (is_null($acceptance)) {
return redirect()->route('account.accept')->with('error', trans('admin/hardware/message.does_not_exist'));
@@ -94,7 +89,7 @@ class AcceptanceController extends Controller
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.asset_already_accepted'));
}
if (! $acceptance->isCheckedOutTo(Auth::user())) {
if (! $acceptance->isCheckedOutTo(auth()->user())) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.incorrect_user_accepted'));
}
@@ -107,230 +102,134 @@ class AcceptanceController extends Controller
}
/**
* Get the signature and save it
* Check for the signature directory
*/
if (! Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
/**
* Check for the eula-pdfs directory
*/
if (! Storage::exists('private_uploads/eula-pdfs')) {
Storage::makeDirectory('private_uploads/eula-pdfs', 775);
}
$item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id);
$display_model = '';
$pdf_view_route = '';
$pdf_filename = 'accepted-eula-'.date('Y-m-d-h-i-s').'.pdf';
$sig_filename='';
// If signatures are required, make sure we have one
if (Setting::getSettings()->require_accept_signature == '1') {
// The item was accepted, check for a signature
if ($request->filled('signature_output')) {
$sig_filename = 'siglog-' . Str::uuid() . '-' . date('Y-m-d-his') . '.png';
$data_uri = $request->input('signature_output');
$encoded_image = explode(',', $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/' . $sig_filename, (string)$decoded_image);
// No image data is present, kick them back.
// This mostly only applies to users on super-duper crapola browsers *cough* IE *cough*
} else {
return redirect()->back()->with('error', trans('general.shitty_browser'));
}
}
// Get the data array ready for the notifications and PDF generation
$data = [
'item_tag' => $item->asset_tag,
'item_name' => $item->name, // this handles licenses seats, which don't have a 'name' field
'item_model' => $item->model?->name,
'item_serial' => $item->serial,
'item_status' => $item->assetstatus?->name,
'eula' => $item->getEula(),
'note' => $request->input('note'),
'check_out_date' => Helper::getFormattedDateObject($acceptance->created_at, 'datetime', false),
'accepted_date' => Helper::getFormattedDateObject(now()->format('Y-m-d H:i:s'), 'datetime', false),
'declined_date' => Helper::getFormattedDateObject(now()->format('Y-m-d H:i:s'), 'datetime', false),
'assigned_to' => $assigned_user->display_name,
'site_name' => $settings->site_name,
'company_name' => $item->company?->name?? $settings->site_name,
'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null,
'logo' => ($settings->acceptance_pdf_logo) ? public_path() . '/uploads/' . $settings->acceptance_pdf_logo : null,
'date_settings' => $settings->date_display_format,
'admin' => auth()->user()->present()?->fullName,
'qty' => $acceptance->qty ?? 1,
];
if ($request->input('asset_acceptance') == 'accepted') {
/**
* Check for the eula-pdfs directory
*/
if (! Storage::exists('private_uploads/eula-pdfs')) {
Storage::makeDirectory('private_uploads/eula-pdfs', 775);
}
if (Setting::getSettings()->require_accept_signature == '1') {
// Check if the signature directory exists, if not create it
if (!Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
$pdf_filename = 'accepted-'.$acceptance->checkoutable_id.'-'.$acceptance->display_checkoutable_type.'-eula-'.date('Y-m-d-h-i-s').'.pdf';
// The item was accepted, check for a signature
if ($request->filled('signature_output')) {
$sig_filename = 'siglog-' . Str::uuid() . '-' . date('Y-m-d-his') . '.png';
$data_uri = $request->input('signature_output');
$encoded_image = explode(',', $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/' . $sig_filename, (string)$decoded_image);
// Generate the PDF content
$pdf_content = $acceptance->generateAcceptancePdf($data, $acceptance);
Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf_content);
// No image data is present, kick them back.
// This mostly only applies to users on super-duper crapola browsers *cough* IE *cough*
} else {
return redirect()->back()->with('error', trans('general.shitty_browser'));
// Log the acceptance
$acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note'));
// Send the PDF to the signing user
if (($request->input('send_copy') == '1') && ($assigned_user->email !='')) {
// Add the attachment for the signing user into the $data array
$data['file'] = $pdf_filename;
try {
$assigned_user->notify((new AcceptanceAssetAcceptedToUserNotification($data))->locale($assigned_user->locale));
} catch (\Exception $e) {
Log::warning($e);
}
}
// this is horrible
switch($acceptance->checkoutable_type){
case 'App\Models\Asset':
$pdf_view_route ='account.accept.accept-asset-eula';
$asset_model = AssetModel::find($item->model_id);
if (!$asset_model) {
return redirect()->back()->with('error', trans('admin/models/message.does_not_exist'));
}
$display_model = $asset_model->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Accessory':
$pdf_view_route ='account.accept.accept-accessory-eula';
$accessory = Accessory::find($item->id);
$display_model = $accessory->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\LicenseSeat':
$pdf_view_route ='account.accept.accept-license-eula';
$license = License::find($item->license_id);
$display_model = $license->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Component':
$pdf_view_route ='account.accept.accept-component-eula';
$component = Component::find($item->id);
$display_model = $component->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Consumable':
$pdf_view_route ='account.accept.accept-consumable-eula';
$consumable = Consumable::find($item->id);
$display_model = $consumable->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
try {
$acceptance->notify((new AcceptanceAssetAcceptedNotification($data))->locale(Setting::getSettings()->locale));
} catch (\Exception $e) {
Log::warning($e);
}
// if ($acceptance->checkoutable_type == 'App\Models\Asset') {
// $pdf_view_route ='account.accept.accept-asset-eula';
// $asset_model = AssetModel::find($item->model_id);
// $display_model = $asset_model->name;
// $assigned_to = User::find($item->assigned_to)->present()->fullName;
//
// } elseif ($acceptance->checkoutable_type== 'App\Models\Accessory') {
// $pdf_view_route ='account.accept.accept-accessory-eula';
// $accessory = Accessory::find($item->id);
// $display_model = $accessory->name;
// $assigned_to = User::find($item->assignedTo);
//
// }
/**
* Gather the data for the PDF. We fire this whether there is a signature required or not,
* since we want the moment-in-time proof of what the EULA was when they accepted it.
*/
$branding_settings = SettingsController::getPDFBranding();
if (is_null($branding_settings->logo)){
$path_logo = "";
} else {
$path_logo = public_path() . '/uploads/' . $branding_settings->logo;
}
$data = [
'item_tag' => $item->asset_tag,
'item_model' => $display_model,
'item_serial' => $item->serial,
'eula' => $item->getEula(),
'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d'),
'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d'),
'assigned_to' => $assigned_to,
'company_name' => $branding_settings->site_name,
'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null,
'logo' => $path_logo,
'date_settings' => $branding_settings->date_display_format,
];
if ($pdf_view_route!='') {
\Log::debug($pdf_filename.' is the filename, and the route was specified.');
$pdf = Pdf::loadView($pdf_view_route, $data);
Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output());
}
$acceptance->accept($sig_filename, $item->getEula(), $pdf_filename);
$acceptance->notify(new AcceptanceAssetAcceptedNotification($data));
event(new CheckoutAccepted($acceptance));
$return_msg = trans('admin/users/message.accepted');
// Item was declined
} else {
/**
* Check for the eula-pdfs directory
*/
if (! Storage::exists('private_uploads/eula-pdfs')) {
Storage::makeDirectory('private_uploads/eula-pdfs', 775);
for ($i = 0; $i < ($acceptance->qty ?? 1); $i++) {
$acceptance->decline($sig_filename, $request->input('note'));
}
if (Setting::getSettings()->require_accept_signature == '1') {
// Check if the signature directory exists, if not create it
if (!Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
// The item was accepted, check for a signature
if ($request->filled('signature_output')) {
$sig_filename = 'siglog-' . Str::uuid() . '-' . date('Y-m-d-his') . '.png';
$data_uri = $request->input('signature_output');
$encoded_image = explode(',', $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/' . $sig_filename, (string)$decoded_image);
// No image data is present, kick them back.
// This mostly only applies to users on super-duper crapola browsers *cough* IE *cough*
} else {
return redirect()->back()->with('error', trans('general.shitty_browser'));
}
}
// Format the data to send the declined notification
$branding_settings = SettingsController::getPDFBranding();
// This is the most horriblest
switch($acceptance->checkoutable_type){
case 'App\Models\Asset':
$asset_model = AssetModel::find($item->model_id);
$display_model = $asset_model->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Accessory':
$accessory = Accessory::find($item->id);
$display_model = $accessory->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\LicenseSeat':
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Component':
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Consumable':
$consumable = Consumable::find($item->id);
$display_model = $consumable->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
}
$data = [
'item_tag' => $item->asset_tag,
'item_model' => $display_model,
'item_serial' => $item->serial,
'declined_date' => Carbon::parse($acceptance->declined_at)->format('Y-m-d'),
'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null,
'assigned_to' => $assigned_to,
'company_name' => $branding_settings->site_name,
'date_settings' => $branding_settings->date_display_format,
];
if ($pdf_view_route!='') {
\Log::debug($pdf_filename.' is the filename, and the route was specified.');
$pdf = Pdf::loadView($pdf_view_route, $data);
Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output());
}
$acceptance->decline($sig_filename);
$acceptance->notify(new AcceptanceAssetDeclinedNotification($data));
Log::debug('New event acceptance.');
event(new CheckoutDeclined($acceptance));
$return_msg = trans('admin/users/message.declined');
}
// Send an email notification if one is requested
if ($acceptance->alert_on_response_id) {
try {
$recipient = User::find($acceptance->alert_on_response_id);
if ($recipient) {
Log::debug('Attempting to send email acceptance.');
Mail::to($recipient)->send(new CheckoutAcceptanceResponseMail(
$acceptance,
$recipient,
$request->input('asset_acceptance') === 'accepted',
));
Log::debug('Send email notification sucess on checkout acceptance response.');
}
} catch (Exception $e) {
Log::error($e->getMessage());
Log::warning($e);
}
}
return redirect()->to('account/accept')->with('success', $return_msg);
}
}

View File

@@ -4,33 +4,66 @@ namespace App\Http\Controllers;
use App\Helpers\Helper;
use App\Models\Actionlog;
use Response;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use \Illuminate\Http\Response;
class ActionlogController extends Controller
{
public function displaySig($filename)
public function displaySig($filename) : RedirectResponse | Response | bool
{
// PHP doesn't let you handle file not found errors well with
// file_get_contents, so we set the error reporting for just this class
error_reporting(0);
$this->authorize('view', \App\Models\Asset::class);
$file = config('app.private_uploads').'/signatures/'.$filename;
$filetype = Helper::checkUploadIsImage($file);
$disk = config('filesystems.default');
switch (config("filesystems.disks.$disk.driver")) {
$contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]]));
if ($contents === false) {
\Log::warn('File '.$file.' not found');
return false;
} else {
return Response::make($contents)->header('Content-Type', $filetype);
case 's3':
$file = 'private_uploads/signatures/'.$filename;
return redirect()->away(Storage::disk($disk)->temporaryUrl($file, now()->addMinutes(5)));
default:
$this->authorize('view', \App\Models\Asset::class);
$file = config('app.private_uploads').'/signatures/'.$filename;
$filetype = Helper::checkUploadIsImage($file);
$contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]]));
if ($contents === false) {
Log::warning('File '.$file.' not found');
return false;
} else {
return response()->make($contents)->header('Content-Type', $filetype);
}
}
}
public function getStoredEula($filename){
$this->authorize('view', \App\Models\Asset::class);
$file = config('app.private_uploads').'/eula-pdfs/'.$filename;
return Response::download($file);
public function getStoredEula($filename) : Response | BinaryFileResponse | RedirectResponse
{
if ($actionlog = Actionlog::where('filename', $filename)->with('user')->with('target')->firstOrFail()) {
$this->authorize('view', $actionlog->target);
$this->authorize('view', $actionlog->user);
if (config('filesystems.default') == 's3_private') {
return redirect()->away(Storage::disk('s3_private')->temporaryUrl('private_uploads/eula-pdfs/' . $filename, now()->addMinutes(5)));
}
if (Storage::exists('private_uploads/eula-pdfs/' . $filename)) {
if (request()->input('inline') == 'true') {
return response()->file(config('app.private_uploads') . '/eula-pdfs/' . $filename);
}
return response()->download(config('app.private_uploads') . '/eula-pdfs/' . $filename);
}
return redirect()->back()->with('error', trans('general.file_does_not_exist'));
}
return redirect()->back()->with('error', trans('general.record_not_found'));
}
}

View File

@@ -2,21 +2,29 @@
namespace App\Http\Controllers\Api;
use App\Events\CheckoutableCheckedOut;
use App\Helpers\Helper;
use App\Http\Controllers\CheckInOutRequest;
use App\Http\Controllers\Controller;
use App\Http\Requests\AccessoryCheckoutRequest;
use App\Http\Requests\StoreAccessoryRequest;
use App\Http\Transformers\AccessoriesTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Accessory;
use App\Models\Company;
use App\Models\User;
use Auth;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use DB;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use App\Models\AccessoryCheckout;
class AccessoriesController extends Controller
{
use CheckInOutRequest;
/**
* Display a listing of the resource.
*
@@ -44,20 +52,21 @@ class AccessoriesController extends Controller
'min_amt',
'company_id',
'notes',
'users_count',
'checkouts_count',
'qty',
];
$accessories = Accessory::select('accessories.*')->with('category', 'company', 'manufacturer', 'users', 'location', 'supplier')
->withCount('users as users_count');
$accessories = Accessory::select('accessories.*')
->with('category', 'company', 'manufacturer', 'checkouts', 'location', 'supplier', 'adminuser')
->withCount('checkouts as checkouts_count');
if ($request->filled('search')) {
$accessories = $accessories->TextSearch($request->input('search'));
}
if ($request->filled('company_id')) {
$accessories->where('company_id', '=', $request->input('company_id'));
$accessories->where('accessories.company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
@@ -103,7 +112,10 @@ class AccessoriesController extends Controller
break;
case 'supplier':
$accessories = $accessories->OrderSupplier($order);
break;
break;
case 'created_by':
$accessories = $accessories->OrderByCreatedByName($order);
break;
default:
$accessories = $accessories->orderBy($column_sort, $order);
break;
@@ -119,14 +131,13 @@ class AccessoriesController extends Controller
/**
* Store a newly created resource in storage.
*
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\JsonResponse
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ImageUploadRequest $request)
public function store(StoreAccessoryRequest $request)
{
$this->authorize('create', Accessory::class);
$accessory = new Accessory;
$accessory->fill($request->all());
$accessory = $request->handleImages($accessory);
@@ -142,15 +153,15 @@ class AccessoriesController extends Controller
/**
* Display the specified resource.
*
* @param int $id
* @return array
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$this->authorize('view', Accessory::class);
$accessory = Accessory::withCount('users as users_count')->findOrFail($id);
$accessory = Accessory::withCount('checkouts as checkouts_count')->findOrFail($id);
return (new AccessoriesTransformer)->transformAccessory($accessory);
}
@@ -159,10 +170,10 @@ class AccessoriesController extends Controller
/**
* Display the specified resource.
*
* @param int $id
* @return array
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function accessory_detail($id)
{
@@ -174,47 +185,33 @@ class AccessoriesController extends Controller
/**
* Display the specified resource.
* Get the list of checkouts for a specific accessory
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
* @return | array
*/
public function checkedout($id, Request $request)
public function checkedout(Request $request, $id)
{
$this->authorize('view', Accessory::class);
$accessory = Accessory::with('lastCheckout')->findOrFail($id);
if (! Company::isCurrentUserHasAccess($accessory)) {
return ['total' => 0, 'rows' => []];
}
$offset = request('offset', 0);
$limit = request('limit', 50);
$accessory_users = $accessory->users;
$total = $accessory_users->count();
if ($total < $offset) {
$offset = 0;
}
$accessory_users = $accessory->users()->skip($offset)->take($limit)->get();
// Total count of all checkouts for this asset
$accessory_checkouts = $accessory->checkouts();
// Check for search text in the request
if ($request->filled('search')) {
$accessory_users = $accessory->users()
->where(function ($query) use ($request) {
$search_str = '%' . $request->input('search') . '%';
$query->where('first_name', 'like', $search_str)
->orWhere('last_name', 'like', $search_str)
->orWhere('note', 'like', $search_str);
})
->get();
$total = $accessory_users->count();
$accessory_checkouts = $accessory_checkouts->TextSearch($request->input('search'));
}
return (new AccessoriesTransformer)->transformCheckedoutAccessory($accessory, $accessory_users, $total);
$total = $accessory_checkouts->count();
$accessory_checkouts = $accessory_checkouts->skip($offset)->take($limit)->get();
return (new AccessoriesTransformer)->transformCheckedoutAccessory($accessory_checkouts, $total);
}
@@ -225,7 +222,7 @@ class AccessoriesController extends Controller
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @param int $id
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse
*/
public function update(ImageUploadRequest $request, $id)
{
@@ -247,16 +244,16 @@ class AccessoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse
*/
public function destroy($id)
{
$this->authorize('delete', Accessory::class);
$accessory = Accessory::findOrFail($id);
$accessory = Accessory::withCount('checkouts as checkouts_count')->findOrFail($id);
$this->authorize($accessory);
if ($accessory->hasUsers() > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.assoc_users', ['count'=> $accessory->hasUsers()])));
if ($accessory->checkouts_count > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/general.delete_disabled')));
}
$accessory->delete();
@@ -271,83 +268,83 @@ class AccessoriesController extends Controller
* If Slack is enabled and/or asset acceptance is enabled, it will also
* trigger a Slack message and send an email.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return Redirect
* @return \Illuminate\Http\JsonResponse
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function checkout(Request $request, $accessoryId)
public function checkout(AccessoryCheckoutRequest $request, Accessory $accessory)
{
// Check if the accessory exists
if (is_null($accessory = Accessory::find($accessoryId))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.does_not_exist')));
}
$this->authorize('checkout', $accessory);
$target = $this->determineCheckoutTarget();
$accessory->checkout_qty = $request->input('checkout_qty', 1);
for ($i = 0; $i < $accessory->checkout_qty; $i++) {
if ($accessory->numRemaining() > 0) {
if (! $user = User::find($request->input('assigned_to'))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.checkout.user_does_not_exist')));
}
// Update the accessory data
$accessory->assigned_to = $request->input('assigned_to');
$accessory->users()->attach($accessory->id, [
$accessory_checkout = new AccessoryCheckout([
'accessory_id' => $accessory->id,
'created_at' => Carbon::now(),
'user_id' => Auth::id(),
'assigned_to' => $request->get('assigned_to'),
'note' => $request->get('note'),
'assigned_to' => $target->id,
'assigned_type' => $target::class,
'note' => $request->input('note'),
]);
$accessory->logCheckout($request->input('note'), $user);
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.checkout.success')));
$accessory_checkout->created_by = auth()->id();
$accessory_checkout->save();
$payload = [
'accessory_id' => $accessory->id,
'assigned_to' => $target->id,
'assigned_type' => $target::class,
'note' => $request->input('note'),
'created_by' => auth()->id(),
'pivot' => $accessory_checkout->id,
];
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'No accessories remaining'));
// Set this value to be able to pass the qty through to the event
event(new CheckoutableCheckedOut($accessory, $target, auth()->user(), $request->input('note')));
return response()->json(Helper::formatStandardApiResponse('success', $payload, trans('admin/accessories/message.checkout.success')));
}
/**
* Check in the item so that it can be checked out again to someone else
*
* @uses Accessory::checkin_email() to determine if an email can and should be sent
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param Request $request
* @param int $accessoryUserId
* @param string $backto
* @return Redirect
* @return JsonResponse
* @uses Accessory::checkin_email() to determine if an email can and should be sent
* @author [A. Gianotto] [<snipe@snipe.net>]
* @internal param int $accessoryId
*/
public function checkin(Request $request, $accessoryUserId = null)
{
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.does_not_exist')));
if (is_null($accessory_checkout = AccessoryCheckout::find($accessoryUserId))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.does_not_exist', ['id' => $accessoryUserId])));
}
$accessory = Accessory::find($accessory_user->accessory_id);
$accessory = Accessory::find($accessory_checkout->accessory_id);
$this->authorize('checkin', $accessory);
$logaction = $accessory->logCheckin(User::find($accessory_user->assigned_to), $request->input('note'));
$accessory->logCheckin(User::find($accessory_checkout->assigned_to), $request->input('note'));
// Was the accessory updated?
if (DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) {
if (! is_null($accessory_user->assigned_to)) {
$user = User::find($accessory_user->assigned_to);
if ($accessory_checkout->delete()) {
if (! is_null($accessory_checkout->assigned_to)) {
$user = User::find($accessory_checkout->assigned_to);
}
$data['log_id'] = $logaction->id;
$data['first_name'] = $user->first_name;
$data['last_name'] = $user->last_name;
$data['item_name'] = $accessory->name;
$data['checkin_date'] = $logaction->created_at;
$data['item_tag'] = '';
$data['note'] = $logaction->note;
$payload = [
'accessory_id' => $accessory->id,
'note' => $request->input('note'),
'created_by' => auth()->id(),
'pivot' => $accessory_checkout->id,
];
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.checkin.success')));
return response()->json(Helper::formatStandardApiResponse('success', $payload, trans('admin/accessories/message.checkin.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.checkin.error')));

View File

@@ -1,268 +0,0 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Transformers\AssetMaintenancesTransformer;
use App\Models\Asset;
use App\Models\AssetMaintenance;
use App\Models\Company;
use Auth;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
/**
* This controller handles all actions related to Asset Maintenance for
* the Snipe-IT Asset Management application.
*
* @version v2.0
*/
class AssetMaintenancesController extends Controller
{
/**
* Generates the JSON response for asset maintenances listing view.
*
* @see AssetMaintenancesController::getIndex() method that generates view
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
* @since [v1.8]
* @return string JSON
*/
public function index(Request $request)
{
$this->authorize('view', Asset::class);
$maintenances = AssetMaintenance::select('asset_maintenances.*')->with('asset', 'asset.model', 'asset.location', 'asset.defaultLoc', 'supplier', 'asset.company', 'admin');
if ($request->filled('search')) {
$maintenances = $maintenances->TextSearch($request->input('search'));
}
if ($request->filled('asset_id')) {
$maintenances->where('asset_id', '=', $request->input('asset_id'));
}
if ($request->filled('supplier_id')) {
$maintenances->where('supplier_id', '=', $request->input('supplier_id'));
}
if ($request->filled('asset_maintenance_type')) {
$maintenances->where('asset_maintenance_type', '=', $request->input('asset_maintenance_type'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $maintenances->count()) ? $maintenances->count() : abs($request->input('offset'));
$limit = app('api_limit_value');
$allowed_columns = [
'id',
'title',
'asset_maintenance_time',
'asset_maintenance_type',
'cost',
'start_date',
'completion_date',
'notes',
'asset_tag',
'asset_name',
'user_id',
'supplier',
'is_warranty',
];
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at';
switch ($sort) {
case 'user_id':
$maintenances = $maintenances->OrderAdmin($order);
break;
case 'supplier':
$maintenances = $maintenances->OrderBySupplier($order);
break;
case 'asset_tag':
$maintenances = $maintenances->OrderByTag($order);
break;
case 'asset_name':
$maintenances = $maintenances->OrderByAssetName($order);
break;
default:
$maintenances = $maintenances->orderBy($sort, $order);
break;
}
$total = $maintenances->count();
$maintenances = $maintenances->skip($offset)->take($limit)->get();
return (new AssetMaintenancesTransformer())->transformAssetMaintenances($maintenances, $total);
}
/**
* Validates and stores the new asset maintenance
*
* @see AssetMaintenancesController::getCreate() method for the form
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
* @since [v1.8]
* @return string JSON
*/
public function store(Request $request)
{
$this->authorize('update', Asset::class);
// create a new model instance
$assetMaintenance = new AssetMaintenance();
$assetMaintenance->supplier_id = $request->input('supplier_id');
$assetMaintenance->is_warranty = $request->input('is_warranty');
$assetMaintenance->cost = $request->input('cost');
$assetMaintenance->notes = e($request->input('notes'));
$asset = Asset::find(e($request->input('asset_id')));
if (! Company::isCurrentUserHasAccess($asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot add a maintenance for that asset'));
}
// Save the asset maintenance data
$assetMaintenance->asset_id = $request->input('asset_id');
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$assetMaintenance->title = $request->input('title');
$assetMaintenance->start_date = $request->input('start_date');
$assetMaintenance->completion_date = $request->input('completion_date');
$assetMaintenance->user_id = Auth::id();
if (($assetMaintenance->completion_date !== null)
&& ($assetMaintenance->start_date !== '')
&& ($assetMaintenance->start_date !== '0000-00-00')
) {
$startDate = Carbon::parse($assetMaintenance->start_date);
$completionDate = Carbon::parse($assetMaintenance->completion_date);
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
}
// Was the asset maintenance created?
if ($assetMaintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
}
/**
* Validates and stores an update to an asset maintenance
*
* @author A. Gianotto <snipe@snipe.net>
* @param int $assetMaintenanceId
* @param int $request
* @version v1.0
* @since [v4.0]
* @return string JSON
*/
public function update(Request $request, $assetMaintenanceId = null)
{
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
if (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
}
$assetMaintenance->supplier_id = e($request->input('supplier_id'));
$assetMaintenance->is_warranty = e($request->input('is_warranty'));
$assetMaintenance->cost = $request->input('cost');
$assetMaintenance->notes = e($request->input('notes'));
$asset = Asset::find(request('asset_id'));
if (! Company::isCurrentUserHasAccess($asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
}
// Save the asset maintenance data
$assetMaintenance->asset_id = $request->input('asset_id');
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$assetMaintenance->title = $request->input('title');
$assetMaintenance->start_date = $request->input('start_date');
$assetMaintenance->completion_date = $request->input('completion_date');
if (($assetMaintenance->completion_date == null)
) {
if (($assetMaintenance->asset_maintenance_time !== 0)
|| (! is_null($assetMaintenance->asset_maintenance_time))
) {
$assetMaintenance->asset_maintenance_time = null;
}
}
if (($assetMaintenance->completion_date !== null)
&& ($assetMaintenance->start_date !== '')
&& ($assetMaintenance->start_date !== '0000-00-00')
) {
$startDate = Carbon::parse($assetMaintenance->start_date);
$completionDate = Carbon::parse($assetMaintenance->completion_date);
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
}
// Was the asset maintenance created?
if ($assetMaintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.edit.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
}
/**
* Delete an asset maintenance
*
* @author A. Gianotto <snipe@snipe.net>
* @param int $assetMaintenanceId
* @version v1.0
* @since [v4.0]
* @return string JSON
*/
public function destroy($assetMaintenanceId)
{
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
if (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot delete a maintenance for that asset'));
}
$assetMaintenance->delete();
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.delete.success')));
}
/**
* View an asset maintenance
*
* @author A. Gianotto <snipe@snipe.net>
* @param int $assetMaintenanceId
* @version v1.0
* @since [v4.0]
* @return string JSON
*/
public function show($assetMaintenanceId)
{
$this->authorize('view', Asset::class);
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
if (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot view a maintenance for that asset'));
}
return (new AssetMaintenancesTransformer())->transformAssetMaintenance($assetMaintenance);
}
}

View File

@@ -4,14 +4,16 @@ namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreAssetModelRequest;
use App\Http\Transformers\AssetModelsTransformer;
use App\Http\Transformers\AssetsTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Asset;
use App\Models\AssetModel;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\JsonResponse;
/**
* This class controls all actions related to asset models for
@@ -27,9 +29,8 @@ class AssetModelsController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
public function index(Request $request) : JsonResponse | array
{
$this->authorize('view', AssetModel::class);
$allowed_columns =
@@ -47,36 +48,63 @@ class AssetModelsController extends Controller
'assets_count',
'category',
'fieldset',
'deleted_at',
'updated_at',
'require_serial',
];
$assetmodels = AssetModel::select([
'models.id',
'models.image',
'models.name',
'model_number',
'min_amt',
'eol',
'requestable',
'models.model_number',
'models.min_amt',
'models.eol',
'models.created_by',
'models.requestable',
'models.notes',
'models.created_at',
'category_id',
'manufacturer_id',
'depreciation_id',
'fieldset_id',
'models.category_id',
'models.manufacturer_id',
'models.depreciation_id',
'models.fieldset_id',
'models.deleted_at',
'models.updated_at',
'models.require_serial'
])
->with('category', 'depreciation', 'manufacturer', 'fieldset.fields.defaultValues')
->with('category', 'depreciation', 'manufacturer', 'fieldset.fields.defaultValues', 'adminuser')
->withCount('assets as assets_count');
if ($request->input('status')=='deleted') {
$assetmodels->onlyTrashed();
}
if ($request->filled('name')) {
$assetmodels = $assetmodels->where('models.name', '=', $request->input('name'));
}
if ($request->filled('model_number')) {
$assetmodels = $assetmodels->where('models.model_number', '=', $request->input('model_number'));
}
if ($request->input('requestable') == 'true') {
$assetmodels = $assetmodels->where('models.requestable', '=', '1');
} elseif ($request->input('requestable') == 'false') {
$assetmodels = $assetmodels->where('models.requestable', '=', '0');
}
if ($request->filled('notes')) {
$assetmodels = $assetmodels->where('models.notes', '=', $request->input('notes'));
}
if ($request->filled('category_id')) {
$assetmodels = $assetmodels->where('models.category_id', '=', $request->input('category_id'));
}
if ($request->filled('depreciation_id')) {
$assetmodels = $assetmodels->where('models.depreciation_id', '=', $request->input('depreciation_id'));
}
if ($request->filled('search')) {
$assetmodels->TextSearch($request->input('search'));
}
@@ -88,7 +116,7 @@ class AssetModelsController extends Controller
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'models.created_at';
switch ($sort) {
switch ($request->input('sort')) {
case 'manufacturer':
$assetmodels->OrderManufacturer($order);
break;
@@ -98,6 +126,9 @@ class AssetModelsController extends Controller
case 'fieldset':
$assetmodels->OrderFieldset($order);
break;
case 'created_by':
$assetmodels->OrderByCreatedByName($order);
break;
default:
$assetmodels->orderBy($sort, $order);
break;
@@ -115,10 +146,9 @@ class AssetModelsController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
* @param \App\Http\Requests\StoreAssetModelRequest $request
*/
public function store(ImageUploadRequest $request)
public function store(StoreAssetModelRequest $request) : JsonResponse
{
$this->authorize('create', AssetModel::class);
$assetmodel = new AssetModel;
@@ -126,7 +156,7 @@ class AssetModelsController extends Controller
$assetmodel = $request->handleImages($assetmodel);
if ($assetmodel->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetmodel, trans('admin/models/message.create.success')));
return response()->json(Helper::formatStandardApiResponse('success', (new AssetModelsTransformer)->transformAssetModel($assetmodel), trans('admin/models/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetmodel->getErrors()));
@@ -139,9 +169,8 @@ class AssetModelsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
public function show($id) : array
{
$this->authorize('view', AssetModel::class);
$assetmodel = AssetModel::withCount('assets as assets_count')->findOrFail($id);
@@ -155,9 +184,8 @@ class AssetModelsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function assets($id)
public function assets($id) : array
{
$this->authorize('view', AssetModel::class);
$assets = Asset::where('model_id', '=', $id)->get();
@@ -175,13 +203,13 @@ class AssetModelsController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ImageUploadRequest $request, $id)
public function update(StoreAssetModelRequest $request, $id) : JsonResponse
{
$this->authorize('update', AssetModel::class);
$assetmodel = AssetModel::findOrFail($id);
$assetmodel->fill($request->all());
$assetmodel = $request->handleImages($assetmodel);
/**
* Allow custom_fieldset_id to override and populate fieldset_id.
* This is stupid, but required for legacy API support.
@@ -196,7 +224,7 @@ class AssetModelsController extends Controller
if ($assetmodel->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetmodel, trans('admin/models/message.update.success')));
return response()->json(Helper::formatStandardApiResponse('success', (new AssetModelsTransformer)->transformAssetModel($assetmodel), trans('admin/models/message.update.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetmodel->getErrors()));
@@ -208,9 +236,8 @@ class AssetModelsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function destroy($id) : JsonResponse
{
$this->authorize('delete', AssetModel::class);
$assetmodel = AssetModel::findOrFail($id);
@@ -224,7 +251,7 @@ class AssetModelsController extends Controller
try {
Storage::disk('public')->delete('assetmodels/'.$assetmodel->image);
} catch (\Exception $e) {
\Log::info($e);
Log::info($e);
}
}
@@ -240,7 +267,7 @@ class AssetModelsController extends Controller
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request)
public function selectlist(Request $request) : array
{
$this->authorize('view.selectlists');

File diff suppressed because it is too large Load Diff

View File

@@ -8,9 +8,9 @@ use App\Http\Transformers\CategoriesTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Category;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
class CategoriesController extends Controller
{
@@ -21,7 +21,7 @@ class CategoriesController extends Controller
* @since [v4.0]
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
public function index(Request $request) : array
{
$this->authorize('view', Category::class);
$allowed_columns = [
@@ -38,11 +38,15 @@ class CategoriesController extends Controller
'consumables_count',
'components_count',
'licenses_count',
'created_at',
'updated_at',
'image',
'notes',
];
$categories = Category::select([
'id',
'created_by',
'created_at',
'updated_at',
'name', 'category_type',
@@ -50,8 +54,11 @@ class CategoriesController extends Controller
'eula_text',
'require_acceptance',
'checkin_email',
'image'
])->withCount('accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count');
'image',
'notes',
])
->with('adminuser')
->withCount('accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count', 'models as models_count');
/*
@@ -91,13 +98,33 @@ class CategoriesController extends Controller
$categories->where('checkin_email', '=', $request->input('checkin_email'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $categories->count()) ? $categories->count() : abs($request->input('offset'));
$limit = app('api_limit_value');
if ($request->filled('created_by')) {
$categories->where('created_by', '=', $request->input('created_by'));
}
if ($request->filled('created_at')) {
$categories->where('created_at', '=', $request->input('created_at'));
}
if ($request->filled('updated_at')) {
$categories->where('updated_at', '=', $request->input('updated_at'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $categories->count()) ? $categories->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'assets_count';
$categories->orderBy($sort, $order);
$sort_override = $request->input('sort');
$column_sort = in_array($sort_override, $allowed_columns) ? $sort_override : 'assets_count';
switch ($sort_override) {
case 'created_by':
$categories = $categories->OrderByCreatedBy($order);
break;
default:
$categories = $categories->orderBy($column_sort, $order);
break;
}
$total = $categories->count();
$categories = $categories->skip($offset)->take($limit)->get();
@@ -115,7 +142,7 @@ class CategoriesController extends Controller
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ImageUploadRequest $request)
public function store(ImageUploadRequest $request) : JsonResponse
{
$this->authorize('create', Category::class);
$category = new Category;
@@ -136,9 +163,8 @@ class CategoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
public function show($id) : array
{
$this->authorize('view', 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')->findOrFail($id);
@@ -156,7 +182,7 @@ class CategoriesController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ImageUploadRequest $request, $id)
public function update(ImageUploadRequest $request, $id) : JsonResponse
{
$this->authorize('update', Category::class);
$category = Category::findOrFail($id);
@@ -164,7 +190,7 @@ class CategoriesController extends Controller
// Don't allow the user to change the category_type once it's been created
if (($request->filled('category_type')) && ($category->category_type != $request->input('category_type'))) {
return response()->json(
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.update.cannot_change_category_type'))
Helper::formatStandardApiResponse('error', null, ['category_type' => trans('admin/categories/message.update.cannot_change_category_type')], 422)
);
}
$category->fill($request->all());
@@ -185,10 +211,10 @@ class CategoriesController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function destroy($id) : 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')->findOrFail($id);
$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()) {
return response()->json(
@@ -208,7 +234,7 @@ class CategoriesController extends Controller
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request, $category_type = 'asset')
public function selectlist(Request $request, $category_type = 'asset') : array
{
$this->authorize('view.selectlists');
$categories = Category::select([

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\Api;
use App\Actions\CheckoutRequests\CancelCheckoutRequestAction;
use App\Actions\CheckoutRequests\CreateCheckoutRequestAction;
use App\Exceptions\AssetNotRequestable;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Asset;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\JsonResponse;
use Exception;
class CheckoutRequest extends Controller
{
public function store(Asset $asset): JsonResponse
{
try {
CreateCheckoutRequestAction::run($asset, auth()->user());
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.requests.success')));
} catch (AssetNotRequestable $e) {
return response()->json(Helper::formatStandardApiResponse('error', 'Asset is not requestable'));
} catch (AuthorizationException $e) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.insufficient_permissions')));
} catch (Exception $e) {
report($e);
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong')));
}
}
public function destroy(Asset $asset): JsonResponse
{
try {
CancelCheckoutRequestAction::run($asset, auth()->user());
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.requests.canceled')));
} catch (AuthorizationException $e) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.insufficient_permissions')));
} catch (Exception $e) {
report($e);
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong')));
}
}
}

View File

@@ -10,6 +10,7 @@ use App\Models\Company;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\JsonResponse;
class CompaniesController extends Controller
{
@@ -18,9 +19,8 @@ class CompaniesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
public function index(Request $request) : JsonResponse | array
{
$this->authorize('view', Company::class);
@@ -38,9 +38,15 @@ class CompaniesController extends Controller
'accessories_count',
'consumables_count',
'components_count',
'notes',
];
$companies = Company::withCount('assets as assets_count', 'licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'users as users_count');
$companies = Company::withCount(['assets as assets_count' => function ($query) {
$query->AssetsForShow();
}])
->with('adminuser')
->withCount('licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'users as users_count');
if ($request->filled('search')) {
$companies->TextSearch($request->input('search'));
@@ -54,17 +60,29 @@ class CompaniesController extends Controller
$companies->where('email', '=', $request->input('email'));
}
if ($request->filled('created_by')) {
$companies->where('created_by', '=', $request->input('created_by'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $companies->count()) ? $companies->count() : abs($request->input('offset'));
$offset = ($request->input('offset') > $companies->count()) ? $companies->count() : app('api_offset_value');
$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';
$companies->orderBy($sort, $order);
$sort_override = $request->input('sort');
$column_sort = in_array($sort_override, $allowed_columns) ? $sort_override : 'created_at';
switch ($sort_override) {
case 'created_by':
$companies = $companies->OrderByCreatedBy($order);
break;
default:
$companies = $companies->orderBy($column_sort, $order);
break;
}
$total = $companies->count();
$companies = $companies->skip($offset)->take($limit)->get();
return (new CompaniesTransformer)->transformCompanies($companies, $total);
@@ -77,9 +95,8 @@ class CompaniesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ImageUploadRequest $request)
public function store(ImageUploadRequest $request) : JsonResponse
{
$this->authorize('create', Company::class);
$company = new Company;
@@ -100,12 +117,12 @@ class CompaniesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
public function show($id) : array
{
$this->authorize('view', Company::class);
$company = Company::findOrFail($id);
$this->authorize('view', $company);
return (new CompaniesTransformer)->transformCompany($company);
}
@@ -118,12 +135,12 @@ class CompaniesController extends Controller
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ImageUploadRequest $request, $id)
public function update(ImageUploadRequest $request, $id) : JsonResponse
{
$this->authorize('update', Company::class);
$company = Company::findOrFail($id);
$this->authorize('update', $company);
$company->fill($request->all());
$company = $request->handleImages($company);
@@ -142,9 +159,8 @@ class CompaniesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function destroy($id) : JsonResponse
{
$this->authorize('delete', Company::class);
$company = Company::findOrFail($id);
@@ -167,7 +183,7 @@ class CompaniesController extends Controller
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request)
public function selectlist(Request $request) : array
{
$this->authorize('view.selectlists');
$companies = Company::select([
@@ -177,6 +193,7 @@ class CompaniesController extends Controller
'companies.image',
]);
if ($request->filled('search')) {
$companies = $companies->where('companies.name', 'LIKE', '%'.$request->get('search').'%');
}

View File

@@ -5,15 +5,17 @@ namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Transformers\ComponentsTransformer;
use App\Models\Company;
use App\Models\Component;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use App\Events\CheckoutableCheckedIn;
use App\Events\ComponentCheckedIn;
use App\Models\Asset;
use Illuminate\Support\Facades\Validator;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class ComponentsController extends Controller
{
@@ -23,9 +25,8 @@ class ComponentsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
public function index(Request $request) : JsonResponse | array
{
$this->authorize('view', Component::class);
@@ -37,6 +38,7 @@ class ComponentsController extends Controller
'name',
'min_amt',
'order_number',
'model_number',
'serial',
'purchase_date',
'purchase_cost',
@@ -46,7 +48,8 @@ class ComponentsController extends Controller
];
$components = Component::select('components.*')
->with('company', 'location', 'category', 'assets', 'supplier');
->with('company', 'location', 'category', 'assets', 'supplier', 'adminuser', 'manufacturer', 'uncontrainedAssets')
->withSum('uncontrainedAssets', 'components_assets.assigned_qty');
if ($request->filled('search')) {
$components = $components->TextSearch($request->input('search'));
@@ -57,7 +60,7 @@ class ComponentsController extends Controller
}
if ($request->filled('company_id')) {
$components->where('company_id', '=', $request->input('company_id'));
$components->where('components.company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
@@ -68,6 +71,14 @@ class ComponentsController extends Controller
$components->where('supplier_id', '=', $request->input('supplier_id'));
}
if ($request->filled('manufacturer_id')) {
$components->where('manufacturer_id', '=', $request->input('manufacturer_id'));
}
if ($request->filled('model_number')) {
$components->where('model_number', '=', $request->input('model_number'));
}
if ($request->filled('location_id')) {
$components->where('location_id', '=', $request->input('location_id'));
}
@@ -77,7 +88,7 @@ class ComponentsController extends Controller
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $components->count()) ? $components->count() : abs($request->input('offset'));
$offset = ($request->input('offset') > $components->count()) ? $components->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
@@ -97,6 +108,12 @@ class ComponentsController extends Controller
case 'supplier':
$components = $components->OrderSupplier($order);
break;
case 'manufacturer':
$components = $components->OrderManufacturer($order);
break;
case 'created_by':
$components = $components->OrderByCreatedBy($order);
break;
default:
$components = $components->orderBy($column_sort, $order);
break;
@@ -115,9 +132,8 @@ class ComponentsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ImageUploadRequest $request)
public function store(ImageUploadRequest $request) : JsonResponse
{
$this->authorize('create', Component::class);
$component = new Component;
@@ -136,9 +152,8 @@ class ComponentsController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
public function show($id) : array
{
$this->authorize('view', Component::class);
$component = Component::findOrFail($id);
@@ -155,9 +170,8 @@ class ComponentsController extends Controller
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ImageUploadRequest $request, $id)
public function update(ImageUploadRequest $request, $id) : JsonResponse
{
$this->authorize('update', Component::class);
$component = Component::findOrFail($id);
@@ -178,13 +192,17 @@ class ComponentsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function destroy($id) : JsonResponse
{
$this->authorize('delete', Component::class);
$component = Component::findOrFail($id);
$this->authorize('delete', $component);
if ($component->numCheckedOut() > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.delete.error_qty')));
}
$component->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/components/message.delete.success')));
@@ -197,9 +215,8 @@ class ComponentsController extends Controller
* @since [v4.0]
* @param Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function getAssets(Request $request, $id)
public function getAssets(Request $request, $id) : array
{
$this->authorize('view', \App\Models\Asset::class);
@@ -240,10 +257,8 @@ class ComponentsController extends Controller
* @since [v5.1.8]
* @param Request $request
* @param int $componentId
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function checkout(Request $request, $componentId)
public function checkout(Request $request, $componentId) : JsonResponse
{
// Check if the component exists
if (!$component = Component::find($componentId)) {
@@ -263,7 +278,7 @@ class ComponentsController extends Controller
}
// Make sure there is at least one available to checkout
if ($component->numRemaining() <= $request->get('assigned_qty')) {
if ($component->numRemaining() < $request->get('assigned_qty')) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->get('assigned_qty')])));
}
@@ -274,9 +289,9 @@ class ComponentsController extends Controller
$component->assets()->attach($component->id, [
'component_id' => $component->id,
'created_at' => \Carbon::now(),
'created_at' => Carbon::now(),
'assigned_qty' => $request->get('assigned_qty', 1),
'user_id' => \Auth::id(),
'created_by' => auth()->id(),
'asset_id' => $request->get('assigned_to'),
'note' => $request->get('note'),
]);
@@ -296,15 +311,11 @@ class ComponentsController extends Controller
* @since [v5.1.8]
* @param Request $request
* @param $component_asset_id
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function checkin(Request $request, $component_asset_id)
public function checkin(Request $request, $component_asset_id) : JsonResponse
{
if ($component_assets = \DB::table('components_assets')->find($component_asset_id)) {
if ($component_assets = DB::table('components_assets')->find($component_asset_id)) {
if (is_null($component = Component::find($component_assets->component_id))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.not_found')));
}
@@ -312,17 +323,13 @@ class ComponentsController extends Controller
$max_to_checkin = $component_assets->assigned_qty;
if ($max_to_checkin > 1) {
$validator = \Validator::make($request->all(), [
"checkin_qty" => "required|numeric|between:1,$max_to_checkin"
]);
if ($validator->fails()) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Checkin quantity must be between 1 and '.$max_to_checkin));
}
$validator = Validator::make($request->all(), [
"checkin_qty" => "required|numeric|between:1,$max_to_checkin"
]);
if ($validator->fails()) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Checkin quantity must be between 1 and ' . $max_to_checkin));
}
// Validation passed, so let's figure out what we have to do here.
$qty_remaining_in_checkout = ($component_assets->assigned_qty - (int)$request->input('checkin_qty', 1));
@@ -331,29 +338,24 @@ class ComponentsController extends Controller
// actually checked out.
$component_assets->assigned_qty = $qty_remaining_in_checkout;
\Log::debug($component_asset_id.' - '.$qty_remaining_in_checkout.' remaining in record '.$component_assets->id);
\DB::table('components_assets')->where('id',
$component_asset_id)->update(['assigned_qty' => $qty_remaining_in_checkout]);
Log::debug($component_asset_id.' - '.$qty_remaining_in_checkout.' remaining in record '.$component_assets->id);
DB::table('components_assets')->where('id', $component_asset_id)->update(['assigned_qty' => $qty_remaining_in_checkout]);
// If the checked-in qty is exactly the same as the assigned_qty,
// we can simply delete the associated components_assets record
if ($qty_remaining_in_checkout == 0) {
\DB::table('components_assets')->where('id', '=', $component_asset_id)->delete();
if ($qty_remaining_in_checkout === 0) {
DB::table('components_assets')->where('id', '=', $component_asset_id)->delete();
}
$asset = Asset::find($component_assets->asset_id);
event(new CheckoutableCheckedIn($component, $asset, \Auth::user(), $request->input('note'), \Carbon::now()));
event(new CheckoutableCheckedIn($component, $asset, auth()->user(), $request->input('note'), Carbon::now()));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/components/message.checkin.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'No matching checkouts for that component join record'));
}
}

View File

@@ -2,8 +2,10 @@
namespace App\Http\Controllers\Api;
use App\Events\CheckoutableCheckedOut;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreConsumableRequest;
use App\Http\Transformers\ConsumablesTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Company;
@@ -11,6 +13,8 @@ use App\Models\Consumable;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\JsonResponse;
class ConsumablesController extends Controller
{
@@ -19,34 +23,13 @@ class ConsumablesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
public function index(Request $request) : array
{
$this->authorize('index', Consumable::class);
// This array is what determines which fields should be allowed to be sorted on ON the table itself, no relations
// Relations will be handled in query scopes a little further down.
$allowed_columns =
[
'id',
'name',
'order_number',
'min_amt',
'purchase_date',
'purchase_cost',
'company',
'category',
'model_number',
'item_no',
'qty',
'image',
'notes',
];
$consumables = Consumable::select('consumables.*')
->with('company', 'location', 'category', 'users', 'manufacturer');
$consumables = Consumable::with('company', 'location', 'category', 'supplier', 'manufacturer')
->withCount('users as consumables_users_count');
if ($request->filled('search')) {
$consumables = $consumables->TextSearch(e($request->input('search')));
@@ -57,7 +40,7 @@ class ConsumablesController extends Controller
}
if ($request->filled('company_id')) {
$consumables->where('company_id', '=', $request->input('company_id'));
$consumables->where('consumables.company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
@@ -86,17 +69,11 @@ class ConsumablesController extends Controller
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $consumables->count()) ? $consumables->count() : abs($request->input('offset'));
$offset = ($request->input('offset') > $consumables->count()) ? $consumables->count() : app('api_offset_value');
$limit = app('api_limit_value');
$allowed_columns = ['id', 'name', 'order_number', 'min_amt', 'purchase_date', 'purchase_cost', 'company', 'category', 'model_number', 'item_no', 'manufacturer', 'location', 'qty', 'image'];
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort_override = $request->input('sort');
$column_sort = in_array($sort_override, $allowed_columns) ? $sort_override : 'created_at';
switch ($sort_override) {
switch ($request->input('sort')) {
case 'category':
$consumables = $consumables->OrderCategory($order);
break;
@@ -109,11 +86,37 @@ class ConsumablesController extends Controller
case 'company':
$consumables = $consumables->OrderCompany($order);
break;
case 'remaining':
$consumables = $consumables->OrderRemaining($order);
break;
case 'supplier':
$components = $consumables->OrderSupplier($order);
$consumables = $consumables->OrderSupplier($order);
break;
case 'created_by':
$consumables = $consumables->OrderByCreatedBy($order);
break;
default:
$consumables = $consumables->orderBy($column_sort, $order);
// This array is what determines which fields should be allowed to be sorted on ON the table itself.
// These must match a column on the consumables table directly.
$allowed_columns = [
'id',
'name',
'order_number',
'min_amt',
'purchase_date',
'purchase_cost',
'company',
'category',
'model_number',
'item_no',
'manufacturer',
'location',
'qty',
'image'
];
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
$consumables = $consumables->orderBy($sort, $order);
break;
}
@@ -129,9 +132,8 @@ class ConsumablesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @return \Illuminate\Http\Response
*/
public function store(ImageUploadRequest $request)
public function store(StoreConsumableRequest $request) : JsonResponse
{
$this->authorize('create', Consumable::class);
$consumable = new Consumable;
@@ -150,9 +152,8 @@ class ConsumablesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
public function show($id) : array
{
$this->authorize('view', Consumable::class);
$consumable = Consumable::with('users')->findOrFail($id);
@@ -167,9 +168,8 @@ class ConsumablesController extends Controller
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ImageUploadRequest $request, $id)
public function update(StoreConsumableRequest $request, $id) : JsonResponse
{
$this->authorize('update', Consumable::class);
$consumable = Consumable::findOrFail($id);
@@ -189,9 +189,8 @@ class ConsumablesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function destroy($id) : JsonResponse
{
$this->authorize('delete', Consumable::class);
$consumable = Consumable::findOrFail($id);
@@ -208,14 +207,13 @@ class ConsumablesController extends Controller
* @see \App\Http\Controllers\Consumables\ConsumablesController::getView() method that returns the form.
* @since [v1.0]
* @param int $consumableId
* @return array
*/
public function getDataView($consumableId)
public function getDataView($consumableId) : array
{
$consumable = Consumable::with(['consumableAssignments'=> function ($query) {
$query->orderBy($query->getModel()->getTable().'.created_at', 'DESC');
},
'consumableAssignments.admin'=> function ($query) {
'consumableAssignments.adminuser'=> function ($query) {
},
'consumableAssignments.user'=> function ($query) {
},
@@ -230,10 +228,16 @@ class ConsumablesController extends Controller
foreach ($consumable->consumableAssignments as $consumable_assignment) {
$rows[] = [
'avatar' => ($consumable_assignment->user) ? e($consumable_assignment->user->present()->gravatar) : '',
'name' => ($consumable_assignment->user) ? $consumable_assignment->user->present()->nameUrl() : 'Deleted User',
'user' => ($consumable_assignment->user) ? [
'id' => (int) $consumable_assignment->user->id,
'name'=> e($consumable_assignment->user->display_name),
] : null,
'created_at' => Helper::getFormattedDateObject($consumable_assignment->created_at, 'datetime'),
'note' => ($consumable_assignment->note) ? e($consumable_assignment->note) : null,
'admin' => ($consumable_assignment->admin) ? $consumable_assignment->admin->present()->nameUrl() : null,
'created_by' => ($consumable_assignment->adminuser) ? [
'id' => (int) $consumable_assignment->adminuser->id,
'name'=> e($consumable_assignment->adminuser->display_name),
] : null,
];
}
@@ -249,9 +253,8 @@ class ConsumablesController extends Controller
* @author [A. Gutierrez] [<andres@baller.tv>]
* @param int $id
* @since [v4.9.5]
* @return JsonResponse
*/
public function checkout(Request $request, $id)
public function checkout(Request $request, $id) : JsonResponse
{
// Check if the consumable exists
if (!$consumable = Consumable::with('users')->find($id)) {
@@ -260,42 +263,49 @@ class ConsumablesController extends Controller
$this->authorize('checkout', $consumable);
$consumable->checkout_qty = $request->input('checkout_qty', 1);
// Make sure there is at least one available to checkout
if ($consumable->numRemaining() <= 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable')));
\Log::debug('No enough remaining');
}
// Make sure there is a valid category
if (!$consumable->category){
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.invalid_item_category_single', ['type' => trans('general.consumable')])));
}
// Make sure there is at least one available to checkout
if ($consumable->numRemaining() <= 0 || $consumable->checkout_qty > $consumable->numRemaining()) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable', ['requested' => $consumable->checkout_qty, 'remaining' => $consumable->numRemaining() ])));
}
// Check if the user exists - @TODO: this should probably be handled via validation, not here??
if (!$user = User::find($request->input('assigned_to'))) {
// Return error message
return response()->json(Helper::formatStandardApiResponse('error', null, 'No user found'));
\Log::debug('No valid user');
}
// Update the consumable data
$consumable->assigned_to = $request->input('assigned_to');
$consumable->users()->attach($consumable->id,
for ($i = 0; $i < $consumable->checkout_qty; $i++) {
$consumable->users()->attach($consumable->id,
[
'consumable_id' => $consumable->id,
'user_id' => $user->id,
'created_by' => $user->id,
'assigned_to' => $request->input('assigned_to'),
'note' => $request->input('note'),
]
);
}
// Log checkout event
$logaction = $consumable->logCheckout($request->input('note'), $user);
$data['log_id'] = $logaction->id;
$data['eula'] = $consumable->getEula();
$data['first_name'] = $user->first_name;
$data['item_name'] = $consumable->name;
$data['checkout_date'] = $logaction->created_at;
$data['note'] = $logaction->note;
$data['require_acceptance'] = $consumable->requireAcceptance();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.checkout.success')));
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.checkout.success')));
}
@@ -304,7 +314,7 @@ class ConsumablesController extends Controller
*
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request)
public function selectlist(Request $request) : array
{
$consumables = Consumable::select([
'consumables.id',

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