diff --git a/.gitignore b/.gitignore
index c70c3cf8..1dc7ee4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ xcustom/*
!xcustom/readme.php
post/xcustom
!post/xcustom/readme.php
+.zed
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 385e5534..c723cb0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,30 @@
This file documents all notable changes made to ITFlow.
+## [25.02.1]
+### Fixed
+- Resolved broken links in the client overview, project and client listings, and rack details.
+- Corrected asset transfer functionality to clients.
+- Fixed the ticket scheduling redirect.
+- Corrected the ticket link in the Scheduled Ticket Agent Notification email.
+- Addressed issues with credentials and ticket actions in the Contact Detail Modal.
+- Fixed text wrapping in notifications.
+- Adjusted notifications so that they are sorted with the newest first.
+- Fixed drag-and-drop functionality for tickets in the Kanban view on mobile devices.
+- Resolved a weird issue with TinyMCE that prevented using links referencing your ITFlow instance url.
+- Corrected image orientation issues during upload and the preview optimization process.
+
+### Added / Changed
+- Introduced entity link indicator icons and counts in the contacts and credentials section.
+- Implemented a fade animation for the new AJAX modal.
+- Removed the Client Overview Expire Day Select and replaced it with simplified 1, 7, or 45-day options.
+- Added the ability to link and unlink entities within asset details.
+- Introduced quick tag/category creation across the app.
+- Added a Vendor Quick Details Modal.
+- Enabled vendor linking and added a License Purchase Reference in the Software Licenses section.
+- Added download original, optimized and thumbnail option for images.
+- Added Paid status to the top corner of Invoice PDFs
+
## [25.02]
### Fixed
- Migrated several reports to the new permissions/roles system
diff --git a/ajax/ajax_asset_details.php b/ajax/ajax_asset_details.php
index 20ef5c29..21ff47a2 100644
--- a/ajax/ajax_asset_details.php
+++ b/ajax/ajax_asset_details.php
@@ -121,9 +121,7 @@ $sql_related_credentials = mysqli_query($mysqli, "
logins.login_note,
logins.login_important,
logins.login_contact_id,
- logins.login_vendor_id,
- logins.login_asset_id,
- logins.login_software_id
+ logins.login_asset_id
FROM logins
LEFT JOIN login_tags ON login_tags.login_id = logins.login_id
LEFT JOIN tags ON tags.tag_id = login_tags.tag_id
@@ -474,9 +472,7 @@ ob_start();
$login_note = nullable_htmlentities($row['login_note']);
$login_important = intval($row['login_important']);
$login_contact_id = intval($row['login_contact_id']);
- $login_vendor_id = intval($row['login_vendor_id']);
$login_asset_id = intval($row['login_asset_id']);
- $login_software_id = intval($row['login_software_id']);
// Tags
$login_tag_name_display_array = array();
@@ -852,7 +848,11 @@ ob_start();
" download="">
- Download
+ Download Original
+
+ " download="preview_">
+ Download Optimized
+
+
+
+ " download="thumbnail_">
+ Download Thumbnail
+
+
)">
Share
diff --git a/client_overview.php b/client_overview.php
index 17feeda9..ead88b74 100644
--- a/client_overview.php
+++ b/client_overview.php
@@ -62,10 +62,11 @@ $sql_stale_tickets = mysqli_query(
AND ticket_updated_at < CURRENT_DATE - INTERVAL 7 DAY
AND ticket_resolved_At IS NULL
AND ticket_closed_at IS NULL
- ORDER BY ticket_updated_at ASC
- LIMIT 5"
+ ORDER BY ticket_updated_at ASC"
);
+// 8 - 45 Day Warning
+
// Get Domains Expiring
$sql_domains_expiring = mysqli_query(
$mysqli,
@@ -75,8 +76,7 @@ $sql_domains_expiring = mysqli_query(
AND domain_archived_at IS NULL
AND domain_expire > CURRENT_DATE
AND domain_expire < CURRENT_DATE + INTERVAL 45 DAY
- ORDER BY domain_expire ASC
- LIMIT 5"
+ ORDER BY domain_expire ASC"
);
// Get Certificates Expiring
@@ -88,8 +88,7 @@ $sql_certificates_expiring = mysqli_query(
AND certificate_archived_at IS NULL
AND certificate_expire > CURRENT_DATE
AND certificate_expire < CURRENT_DATE + INTERVAL 45 DAY
- ORDER BY certificate_expire ASC
- LIMIT 5"
+ ORDER BY certificate_expire ASC"
);
// Get Licenses Expiring
@@ -101,8 +100,7 @@ $sql_licenses_expiring = mysqli_query(
AND software_archived_at IS NULL
AND software_expire > CURRENT_DATE
AND software_expire < CURRENT_DATE + INTERVAL 45 DAY
- ORDER BY software_expire ASC
- LIMIT 5"
+ ORDER BY software_expire ASC"
);
// Get Asset Warranties Expiring
@@ -114,8 +112,7 @@ $sql_asset_warranties_expiring = mysqli_query(
AND asset_archived_at IS NULL
AND asset_warranty_expire > CURRENT_DATE
AND asset_warranty_expire < CURRENT_DATE + INTERVAL 45 DAY
- ORDER BY asset_warranty_expire ASC
- LIMIT 5"
+ ORDER BY asset_warranty_expire ASC"
);
// Get Assets Retiring 7 Year
@@ -127,8 +124,7 @@ $sql_asset_retire = mysqli_query(
AND asset_archived_at IS NULL
AND asset_install_date + INTERVAL 7 YEAR > CURRENT_DATE
AND asset_install_date + INTERVAL 7 YEAR <= CURRENT_DATE + INTERVAL 45 DAY
- ORDER BY asset_install_date ASC
- LIMIT 5"
+ ORDER BY asset_install_date ASC"
);
/*
@@ -143,8 +139,7 @@ $sql_domains_expired = mysqli_query(
AND domain_expire IS NOT NULL
AND domain_archived_at IS NULL
AND domain_expire < CURRENT_DATE
- ORDER BY domain_expire ASC
- LIMIT 5"
+ ORDER BY domain_expire ASC"
);
// Get Certificates Expired
@@ -155,8 +150,7 @@ $sql_certificates_expired = mysqli_query(
AND certificate_expire IS NOT NULL
AND certificate_archived_at IS NULL
AND certificate_expire < CURRENT_DATE
- ORDER BY certificate_expire ASC
- LIMIT 5"
+ ORDER BY certificate_expire ASC"
);
// Get Licenses Expired
@@ -167,8 +161,7 @@ $sql_licenses_expired = mysqli_query(
AND software_expire IS NOT NULL
AND software_archived_at IS NULL
AND software_expire < CURRENT_DATE
- ORDER BY software_expire ASC
- LIMIT 5"
+ ORDER BY software_expire ASC"
);
// Get Asset Warranties Expired
@@ -179,8 +172,7 @@ $sql_asset_warranties_expired = mysqli_query(
AND asset_warranty_expire IS NOT NULL
AND asset_archived_at IS NULL
AND asset_warranty_expire < CURRENT_DATE
- ORDER BY asset_warranty_expire ASC
- LIMIT 5"
+ ORDER BY asset_warranty_expire ASC"
);
// Get Retired Assets
@@ -191,8 +183,7 @@ $sql_asset_retired = mysqli_query(
AND asset_install_date IS NOT NULL
AND asset_archived_at IS NULL
AND asset_install_date + INTERVAL 7 YEAR < CURRENT_DATE -- Assets retired (installed more than 7 years ago)
- ORDER BY asset_install_date ASC
- LIMIT 5"
+ ORDER BY asset_install_date ASC"
);
@@ -366,8 +357,8 @@ $sql_asset_retired = mysqli_query(
?>