- PHP 78.1%
- Blade 11.2%
- JavaScript 3.9%
- Shell 2.6%
- CSS 2.2%
- Other 2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| doc | ||
| img | ||
| module | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| build.sh | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
| TODO.md | ||
JDNEER Conversation Relations
Link FreeScout conversations to each other: related to, duplicates, blocked by, follows and copied from. A blocked conversation can't be closed while its blocker is still open, and closing an original closes its duplicates. If one FreeScout serves several customers, you decide which mailboxes may link, and agents only ever see the details of conversations they are allowed to open.
Guides
| Guide | For | What's in it |
|---|---|---|
| Guide for agents | Everyone who answers conversations | The kinds of link, adding and removing links, hidden conversations 🔒, closing blocked conversations, duplicates, automatic links, list badges and search |
| Guide for admins | Admins | Every setting and what agents notice, setting up several customers with link groups, the grid, hidden conversations, blocked-conversation choices, removing the module |
| How it works | Whoever maintains FreeScout or this module | What is stored where, every check, how it hooks into FreeScout, timeline entries, tests |
In short
| Kind | Seen from the other conversation | What it does |
|---|---|---|
| related to | related to | Nothing extra. |
| duplicates | duplicated by | Closing the original closes its open duplicates. |
| blocked by | blocks | Can't be closed while the blocker is open. |
| follows | precedes | Shows "waiting" while the earlier one is open. No dates. |
| copied from | copied to | Set automatically by Clone Conversation and New Conversation from a message. |
Out of the box, only conversations in the same mailbox can be linked. Change that under Manage → Settings → Relations (see the guide for admins).
Requirements
FreeScout 1.8.245 or later. No other module is needed.
Install
-
Download
JdneerRelations-<version>.zipandSHA256SUMSfrom the repository's Releases page, and check the download:sha256sum -c --ignore-missing SHA256SUMS. -
Unpack it into the
Modulesdirectory of your FreeScout installation (the directory that containsartisan). The zip holds a singleJdneerRelations/folder:cd /path/to/freescout unzip /path/to/JdneerRelations-<version>.zip -d Modules/ -
Give the folder to the user your web server runs as (often
www-data,nginxorapache):chown -R www-data:www-data Modules/JdneerRelations -
In FreeScout, open Manage → Modules and click Activate on JDNEER Conversation Relations. Activation creates the module's three tables.
-
Review Manage → Settings → Relations. Out of the box only conversations in the same mailbox can be linked.
Update
Unpack the new zip next to the old folder and swap them, then let FreeScout pick up the new version:
cd /path/to/freescout
rm -rf /tmp/jdneerrelations-new /tmp/jdneerrelations-old
unzip /path/to/JdneerRelations-<new version>.zip -d /tmp/jdneerrelations-new
mv Modules/JdneerRelations /tmp/jdneerrelations-old && mv /tmp/jdneerrelations-new/JdneerRelations Modules/
chown -R www-data:www-data Modules/JdneerRelations
sudo -u www-data php artisan freescout:module-install jdneerrelations # migrations, public link, cache
Uninstall
Deactivate keeps all links, groups and settings; activating again brings them back. While the module is inactive, its timeline entries show as empty lines, because FreeScout has no text for them.
To remove everything, use Manage → Settings → Relations → Remove all module data first (type REMOVE to
confirm). It deletes the module's tables, settings, mailbox overrides and timeline entries, then deactivates
the module. Delete on the module card then removes the files.
Development
build.shruns the plain checks (the computer's PHP, or a podman PHP 8.4 container); the repository'sscripts/check.shruns it too.tests/in-app/,tests/e2e/smoke.pyand the test data intests/seed/are described under How it works → Testing.img/holds the screenshots used in the guides.- Work for later is listed in TODO.md.
- Releases follow doc/RELEASE-PROCESS.md.
