Releases: Probesys/bileto
Bileto 0.14.0
Breaking changes
PostgreSQL 13+ is now required as PostgreSQL 12 is no longer supported.
MariaDB 10.5+ is now required as MariaDB 10.4 is no longer supported.
Improvements
- Allow to select the organization when opening a ticket from the global list (8c81af0)
- Group the actors by their role type in the "select" lists (ed366c0)
- Allow to search tickets by team (83f0008, 44e2ddc)
- Reopen resolved ticket if answerer is not an agent (fd8152e)
- Display the date next to the time in the ticket timeline (9b59a87)
- Add id/anchors on the timelines' items (cd0d53e)
- Allow to upload more different files (03f07bf, 9b7d8b3)
- Send the email receipt only if the requester created the ticket (99bc3f6)
- Display the custom logo on the login page (4ce31d3)
- Remove the deprecated password help from the new user form (fcd5de6)
- Add more context to the MailboxEmail errors (3d65c4c)
Bug fixes
- Fix the alignment of ticket's id and title (c04ae99)
- Make sure to keep current actors in the ticket even if they lose their access (3a0f138)
- Redirect to organization's contracts when changing contracts order (9d80942)
- Catch errors if the message notification reference cannot be saved (8302cdb)
- Make sure to return a valid UTF8 string in DomHelper so that the message doesn't go empty (92eb56e)
- Handle the answers to tickets containing messages with the same references (025d484)
- Expire cache of authorizations after 10s so the worker considers authorization changes (c0fec9a)
Technical
- Allow administrators to send personally identifiable information (PII) to Sentry (5141ff7)
- Warn about datetimes' offsets in the documentation of data importation (ae06de9)
- Allow to reimport message documents if the first import failed (d32e7db)
- Require MariaDB >= 10.5 (2ad0844)
- Require PostgreSQL >= 13 (8eca54e)
- Update the dependencies (ed0805c, 6cc7329, a5a053a)
- Allow to delete messages with documents in database (658c21f)
- Allow to delete tickets with solution in database (53f0061)
Developers
Bileto 0.13.0
Breaking change
The uploads/
directory is now placed under var/
by default.
If you uploaded files on your instance of Bileto, you must either set the APP_UPLOADS_DIRECTORY
environment variable to the previous uploads/
directory, or move the directory under var/
.
If you move it under var/
, you no longer need to mount a dedicated Docker volume on uploads/
as you should already have one mounter on var/
.
New
Improvements
- Display both owned and assigned tickets to agents on home page (bf1b2c5, 7509502)
- Add a "Your assigned tickets" view (818a0e9)
- Allow to select observers during ticket creation (4562501)
- Rework solution approvement to allow agents to approve or refuse a solution (ac25249)
- Allow to update spent times (74e322b)
- Allow to create a contract from the global list of contracts (1e2dc34)
- Don't consider consumed contracts as finished (eb7f77c)
- Add information about the renewed contracts (d310130)
- Set the default value of Contract time accounting unit to 30 (53be1f1)
- Display the total time spent in the tickets (12fd603)
- Display total spent time in tickets lists (97189b5)
- Improve the UX of the "time spent" input (6109e56)
- Hide the organization submenu if user can see tickets only (7699a93)
- Add a link to the ticket in the receipt email (6a8d13e)
- Add the status to the message emails subject if finished (9464577)
- Accept .eml files as attachments (0ebb324)
- Remove the "Ticket already solved" checkbox (d1c4cf5)
- Allow to customize the logo in the emails (52e39f5)
Bug fixes
- Display the images in notification emails correctly (1bcf9c9)
- Find LDAP user by email if identifier is not set yet (5f4f4ed)
- Change "assigné" to "attribué" in the French translation (1ed9ade)
- Fix the checkbox and radio buttons glitch aspect (8460602)
- Don't flush if creating user with flush false and default authorization (92c42ce)
- Fix overflowing centered popup containers (8e1d428)
Technical
- Move the uploads directory under var by default (f51a61a)
- Update the NPM dependencies (e02de09, 8743710)
- Make sure folders under var are created in Docker image (a7d9cf0)
- Ignore more files and folders in .dockerignore (5420c3e)
Documentation
- Remove warnings stating that Bileto is not ready for production (e588c96)
- Document database volume mounting in the Docker config for admins (8107b35)
- Make explicit that PR checklist is for reviewers (fdd8a43)
Developers
Bileto 0.12.0-beta
Improvements
- Improve the look of the email notifications (728f88d)
- Allow to answer to the receipt emails (1d77cad)
- Order contracts by names in the global list (94fd53b)
- Always display the default organization on the user page (565e10c)
- Make sure that users can always create tickets in their default organization (aa3d2e1)
- Move the observers after the assignee in the tickets (2788bcd)
- Always show the number of tickets above the list (b953bf9)
- Change the placeholder of the organization field in the user form (e425e2e)
Bug fixes
- Accept
@me
notation in the "quick search" form (df4be41) - Display all the errors in the "quick search" form (80b03e5)
- Accept extra fields in the "advanced search" form (ae7ede4)
- Use "demande" instead of "requête" in the French translation (90160a2)
- Fix the LDAP synchronization when creating new users (03027f7)
Technical
- Ignore auto-response emails when collecting emails (221a7ff)
- Associate the time spent with their corresponding messages (c041744)
- Allow to import the ticket's team (4d0a5c7)
- Make Sentry optional in production (5f6fb1b)
- Lock mailbox and mailbox emails during processing (391f85c)
- Log only warning if a user cannot be created with LDAP (30f3bee)
- Provide a file favicon.ico (e1a74d8)
- Update the dependencies (cfa938a, a0c98eb, 35a4995, e7d14d9, c9c352e)
Documentation
- Explain to the administrators how to import data (50489de)
- Add documentation about backup and restoration in production (880c217)
- Update the available features in the readme and the roadmap (af6e39b)
Developers
- Improve the development tooling
- Replace Vite by esbuild (5843249)
- Allow to pass a
VERSION
param tomake db-migrate
(adb3dfb) - Allow to run a specific linter with
make lint
(6144b5f) - Allow to choose the installer with
make install
(13a0343) - Allow to change the Nginx port in development (90b4bfd)
- Provide a command to run mysql command in the Docker container (6feb532)
- Declare
COVERAGE
,FILE
andFILTER
next to themake test
command (b5e2660, fd590ac) - Declare the Docker Composer project name in the docker-compose.yml file (afe751b)
- Ignore the
uploads/
folder onmake tree
(1e666db)
- Finish to refactor the forms
- Set the default ticket's observers in TicketActivity (0e6fe33)
- Enable LDAP server by default in the development environment (1a9c940)
- Fix the database configuration on the CI (ed8db12)
- Update the instructions for pull requests (18e8112)
- Install and configure phpstan-symfony (bad64fe)
- Refactor the
MessageEvent::CREATED
event (084369f) - Handle empty data in the Encryptor (6210e2e)
Bileto 0.11.0-beta
Security
- Hide the details of errors when reseting a password (c66cf04)
New
- Automate the assignment of teams to tickets (d070858)
- Allow to transfer tickets (52ac714)
- Autoclose resolved tickets after 7 days (a32f870)
- Forbid actions in closed tickets (506d21a)
- Send a receipt to the requester when ticket is opened (b1ef3fb)
Improvements
- Determine the default users' organization from authorizations (7304749)
- Account time spent on new contract during a transfer (f3334b2)
- Detect emails answering to a GLPI server (5de12d9)
- Allow to thread notification emails in email clients (c375ada)
- Add padding between timeline dates and their following elements (4f9b95c)
- Improve the design of the tickets' messages (1bdc2f8)
- Improve the ticket's events messages (e28066b)
- Improve the performance to fetch the ticket page (31cb55d)
Bug fixes
- Fix the contracts' pagination (4e24da8)
- Don't remove observers when self-assigning a ticket (fcb0b57)
- Unset correctly previous default role when changing it (4145da6)
- Don't show the "unassigned buttons" if the ticket is closed (5ebfae8)
- Add the missing labels to buttons in organization template (97f6986)
- Fix the timeline bar height (61a14d0)
- Display "optional" label in the label of the organizations' domains (d5f843f)
- Make sure the messages don't expand out of the screen (0ed6ce4)
- Make sure the super role contains the
admin:*
permission (e7bf8ac)
Technical
- Update the dependencies (39d0cbb)
- Allow to send errors to a Sentry server (7216468, 21c35a3)
- Improve the data importation
Developers
- Provide a command to pull the Docker images (14a87a4)
- Allow to setup/reset the database without the seeds (3903511)
- Refactor the Symfony forms (1745d70)
- Load the application version in the configuration (57fec7a)
- Increase PHP
memory_limit
in Docker (60dbdad) - Refactor sending the "message email" to ticket's actors (0c72ea3)
- Refactor getting (confidential) messages (665785d)
- Refactor the RecordableEntitiesSubscriber (6c0cf97)
- Refactor records of ManyToMany relations changes (a20a96e)
- Allow to filter organizations by granted permission in OrganizationType (21c9f07)
- Improve markup of timeline dates (0f1504c)
- Extract a common.information key (76d45e2)
- Allow to check permissions on tickets with the AppVoter (2a003b0)
Bileto 0.10.0-beta
Migration notes
You can now change the default locale globally by setting the APP_DEFAULT_LOCALE
in your env file.
New
- Provide labels (9dc904c, 8ff1927, 02d62ba, 5c99beb, 00cfe75, 25b01fe)
- Add observers to a tickets (22a4dd3, 027faa7, 57118af)
- Allow to reset passwords (6e4e8bb)
Improvements
- Allow to search for tickets with and without contracts (28a76cf)
- Separate permissions to see real vs. accounted times spent (30387e6)
- Allow to choose locale when creating/editing a user (1e5fcb5)
- Allow to import teams (f722522)
- Allow to import the organizations' domains (12ea090)
- Improve the look of form fieldsets (1806b8b)
Bug fixes
- Use the correct white logo (0e36766)
- Fix the header on mobile when not connected (e35fa48)
- Fix search with "NOT assignee" for unassigned tickets (5b78fd8)
- Fix search with "NOT involves" not returning correct results (8f973a1)
- Allow to list tickets not attached to a contract (3748d33)
- Redirect to the user page after updating (30df1c0)
- Fix spacing in the list of mailboxes (78b326d)
Documentation
- Add an item to PR template about data import (0896d38)
- Update the screenshot in the README (b4213ee)
Technical
- Allow to pass locale when creating user with CLI (187add3)
- Allow to change the default locale globally (0916174)
- Add a scheduled message to clean data everyday (4fc1109)
- Update dependencies (5aabff3, 3687da6)
Developers
- Fix some PHPUnit Testdox warnings (59c8441)
- Remove the symfony/phpunit-bridge dependency (c1ccb71)
- Refactor the Ticket title form (c8abf72)
- Refactor edit ticket actors with Symfony Form (8b35064)
- Move
Form\Type
classes toForm\
(5470325) - Set radio/checkbox tick position with margin (cb14588)
- Fix test in TicketSearcherTest failing randomly (8d7fa9c)
Bileto 0.9.0-beta
This is our first beta version! 🥳
Bileto is still not ready for production, but it's closer.
I hope you like the new design :)
Security
- Don't use the
Reply-To
header to get the requester (06af973)
New
- Allow to associate organizations to email domains (7e14501)
- Allow to define a default user role (86a2a40)
- Add a page to list all the ongoing contracts (7f8f683)
- Allow to assign tickets and unaccounted times on contract (re)newal (e7cc7a4)
- Add the list of users in organizations (4fe3fc7)
- Add a page to display information about users (949ba1c)
Improvements
- Integrate the new design (742bb28, 46f9ee8, 0c08313, 0bb0b24, 0babc9b, 77f5dbd, 2e0a06f, fba1c2c, 9a22326, 3f1fb31, e54bc34, a2d14b2, 07570a1, 585f3ce, 176836d, 53b2272)
- Improve performance when fetching from the database (9f5ce7b, 0c18fd5)
- Enable the TinyMCE autosave plugin (50adef8)
- Redirect to user page after creation (09d3bf1)
- Reword some advanced search syntax explanations (040e49c)
Bug fixes
- Fix deletion of organizations (63b3563)
- Fix the days diff on the ticket page (96ba9cf)
- Add a space before unit in the "hours consumed" label (39ff01e)
- Activate TinyMCE with "gpl" license (763d15f)
- Fix the button--icon height on Webkit (d8a3cfa)
Technical
- Update the Composer dependencies (fc90087, 120d018, a572491, 770eb06, fa0fb13, 0ce833c, 29f0702, 6fca2d6, 6f4468f, e6be6e0)
- Remove the old PostgreSQL sequences (33acdbb)
Developers
- Remind developers to check changes in Firefox and Chrome (06e9fc0)
- Refactor the role form with Symfony Form (4ef39dc)
- Make Doctrine entities mapping explicit (56f709c)
- Make deprecation warnings more verbose in PHPUnit (6d02919)
- Remove uid from the entities factories (4a35802)
- Lint migrations with PHPCS (642a93b)
- Fix deprecations for Foundry 2 (6aba189)
- Provide phpstan-doctrine package (6d36ef7)
- Refactor creation of users with a
UserCreator
service (37efa0e) - Improve the development seeds (b840e96)
- Provide an
Email
class to extract domains (a2318f6) - Provide a
Url
class to sanitize domains (a5d7dcd) - Provide a DQL
JSON_CONTAINS
function (e8988c1) - Provide the
input-texts
component (7dfedcc) - Extract a
button--discreet-alt
button (b8ffd2b) - Fix Doctrine deprecation warning about ordering (2310c67)
- Give all agent permissions to technicians in dev environment (2e50007)
- Merge CSS tickets files in
custom/tickets.css
(9a29d19) - Rename
.row
classes in.cols
(8e14a1b) - Set id on "UI select" of multiselect actors (d1cc409)
- Provide the accordion component (6e4dd2f)
- Introduce the CSS class
widget--small
(9077d7e)
Bileto 0.8.0-alpha
Migration notes
Sub-organizations are no longer supported (see the issue #516).
Your existing sub-organizations will be converted to first-level organizations during this update.
Important: make sure that all your organizations have different names before running the migrations.
New
- Provide teams and agents (d895133, 9107ac2, 783e7c0, 5c07222, 969b1d7, 33219f4, 0976e68)
- Allow to import data from a ZIP archive (f9992ef)
Improvements
- Allow to combine multiple authorizations on the same organization (cbd6ca0)
- Add navigation to the organizations to the main menu (6677352)
- Display spent times hours/minutes in a long format (b61636e)
- Display the contract date alert as a number of days (bb055b4)
- Display contract hours consumed as a percentage (73de316)
- Add a unique constraint on organization names (eb0a6dc)
- Rename "operational users" to "agents" (f98d663)
- Display tickets views if user is an agent (1c83b30)
Bug fixes
- Force requester and assignee to be part of the lists (15faa7e)
- Fix searching tickets by contract if using a subquery (b30603e)
- Assert TimeSpent times are required and > 0 (0bb8a0f)
Technical
- Remove the concept of sub-organizations (86dd9ac)
- Fix installation of dependencies in the Docker image (777ee4c)
- Update the dependencies (af602f5, b1b90bf)
Developers
- Upgrade to Turbo 8 (c72c313)
- Upgrade to PHPUnit 11 (989b7f9)
- Upgrade to Rector 1.0 (bb0dd46)
- Upgrade to eslint 9 (4caf4ab)
- Cache authorizations in the AppVoter (beccdd0)
- Provide the class FSHelper (d412967)
- Refactor repositories save, saveBatch and remove (e807452)
- Set updatedBy only if there is an active user (96ca111)
- Allow contract.createdBy and contract.updatedBy to be null (cf8b116, fb06f3e)
- Extract common translations keys (59281b9)
- Load only "orga" authorizations when checking for "any" (14e96b1)
- Add a findOneOrBuildBy method (812ceb1)
- Set default empty password on User initialization (9f0be2c)
- Set
FindOrCreateTrait
with a generic class (2a65a93) - Add the
orga:manage
permission to the default Technician role (757e96b) - Provide a
AuthorizationHelper::grantTeam
method (d465d4b) - Provide an
ArrayHelper
class (3e1fffb) - Provide a
is_agent
Twig function (f8f477d) - Move getAuthorizations from AppVoter to AuthorizationRepository (fec907a)
- Move TicketRepository methods related to TicketSearcher (93a2bb5)
- Increase PHP memory in the dev environment (594b5fc)
- Enable DAMA DoctrineTestBundle in tests (15eca8a)
- Make sure database is initialized on the CI (f8036d9)
- Output PHPUnit results with TestDox format (2890d74)
- Refactor the clearing of entity manager in tests (568c3b7)
- Remove the warning about docker-compose.yml version (c68c0cf)
Bileto 0.7.0-alpha
Migration notes
Bileto now requires PHP 8.2+.
You need to set the new environment variable APP_BASE_URL
in your .env.local
file (see env.sample).
This variable is used to generate absolute URLs in non-HTTP contexts (i.e. from the command line).
The PHP imap
module is now required.
Bileto uses PHP-IMAP which should make the module optional.
Unfortunately, the library doesn't decode email subjects and attachments correctly by itself.
It works a lot better with the module installed.
PostgreSQL >= 12 is now required. If you’re still using PostgreSQL 11, you must upgrade to a newer version.
Its no longer possible to create sub-organizations.
In next releases, your existing sub-organizations will be transformed into first-level organizations (see the issue #516).
The structure of the roles changed.
“User” roles (as opposed to admin and operational roles) are now more restricted by default.
You should review these roles and possibly change them to “operational” roles.
New
Improvements
- Disallow the creation of sub-organizations (ee2cc44)
- Paginate the tickets lists (d263301)
- Improve the lifecycle of the tickets (85fad0f)
- Create "incident" tickets by default (4de596a)
- Allow emails not to be deleted after collecting them (4acac03)
- Make roles easier to understand (6d5e2b6)
- Reword "admin" to "administrator" (272eec1)
- Warn if user has no permission in their default organization (911afc4)
- Select the default organization when setting an authorization after creating a user (8cf832e)
- Change the label of the organization of authorization (ed42e09)
- Change time spent wording from billed/charged to accounted time (ea707ae)
- Redirect to the contract after its creation (73700f6)
- Initialize default contract alerts on creation (0fe0a91)
- Change the traduction of ticket's "Contract" to "Ongoing contract" (77ab61f)
- Improve the look and behaviour of disabled checkboxes (8862664)
- Improve the look of the progress bars (1ffbe9f)
- Improve the CSRF error message (1595742)
Bug fixes
- Display correctly the inline attachments in messages contents (417a76d)
- Attach messageDocuments to notification emails (164e45a)
- Ignore HTML errors when creating tickets from emails (f0dc217)
- Remove incorrect UTF-8 chars from attachments names (8d59c95)
- Handle emails with empty body (31fdc13)
- Fix encoding of the email body (22ef430)
- Track changes to the tickets' ongoing contracts (c4da224)
- Trim name and notes when creating a contract (46723b4)
- Disallow to set contracts maxHours below their consumedHours (32a5bbe)
- Use
strcmp
in LocaleSorter if comparison failed with the Collator (db600db) - Wrap pre elements in messages contents (6b9cdc4)
- Remove the orphan parenthesis from the "incident updated on" label (959ed9d)
- Add a missing HTML closing tag in the header (3bfbb04)
Technical
- Require PostgreSQL >= 12 (b9917f0)
- Require PHP >= 8.2 (1dc250f)
- Require the PHP imap module (0f1699f)
- Upgrade to Symfony 6.4 (afe5eda)
- Update the dependencies (ebf01e7, af19f56, 4dd097d, df2e5f5, 62bb824)
- Configure the
default_uri
in routing (47a8fb9)
Documentation
- Improve the documentation about contributing to code (17f5be0)
- Update the roadmap with links to GitHub (8379dfe)
- Fix typos in the dependencies documentation (5dcdc05)
Developers
- Provide a pagination component (7d424db)
- Allow to check permissions of any user (bfc7a5d)
- Install the Symfony Form component (e03b841)
- Refactor the contract form with the Form component (184f273)
- Refactor the monitoring of the activity of the entities (d86759e)
- Add getEntityType to RecordableEntityInterface (86692d3)
- Set the activeUser in CreateTicketsFromMailboxEmailsHandler (f2db100)
- Make deprecations notices less verbose in tests (4c9ea03)
- Configure Rector as a new linter (2c86af0)
- Provide a make db-rollback command (ee4d7c2)
- Clean all the Docker stuff on make docker-clean (aea07f5)
- Move some docker files under docker/development (838e769)
- Fix node bundler for uid != 1000 (50f3c95)
- Restore validators files when extracting translations (985ed96)
Bileto 0.6.0-alpha
New
- Allow to create and list contracts (c66bd7e, 1895e83, e546c01, e40e54a)
- Allow to assign contracts to tickets (fc3e93e, e2af93d)
- Allow to list the tickets of a contract (61dda9a)
- Allow to set up alerts on the contracts (f385dd6)
- Allow to record time spent (35ab22c)
Improvements
- Simplify the answer form (1e93d8e)
- Put documents visually in the TinyMCE editor (2bb4837)
- Improve accessibility of popups (c723bb3)
- Rebalance the global font sizes and borders width (17e03df)
- Round off the buttons (d140f2b)
- Lighten the look of the "quick search" filters (5b7b737)
- Improve breadcrumb to navigate in tickets (d8479a1)
- Improve the look of discreet buttons with caret (2a71ef1)
- Remove the underline of anchors rendered as buttons (06bd6ac)
Bug fixes
- Handle email attachments correctly (c558ef3)
- Adapt the editor background to color scheme (035a9b2)
- Don't try to recreate roles in production (a3a6cf2)
- Fix the strip list style for even items (bc52f30)
- Fix the year format rendered by the Twig
dateTrans
filter (55ef233) - Don't track empty entity changes (256b79a)
Technical
- Provide a Docker image for production (dd71926, 42260f5, 392db06)
- Update the dependencies (f31533b, ae0762f)
Documentation
- Explain how to contribute to the documentation (7ea774e)
- Adapt the documentation for the "alpha" phase (56d9058)
- Merge the deploy and update files for administrators (3664744)
- Add a process before releasing a version (c4382d4)
- Update the roadmap (e568670)
- Update the screenshot (1abb8a2)
Developers
- Upgrade to NodeJS 20 (fda833c)
- Upgrade to Vite 5 (8e08be9)
- Restore security files on make translations (9b1afa7)
- Provide a JS Switch controller (3bea2cd)
- Allow to limit the size of inputs (da36f4d)
- Provide a HoursFormatter Twig extension (c35caec, f16f071)
- Add buttons groups (3772fa8)
- Refactor the transfer of events of the editor (a308460)
- Remove the Changes section from the PR template (303262d)
- Add a check for color scheme to the PR checklist (e7c0868)
Bileto 0.5.0-alpha
New
- Add support for LDAP authentication (7aca9e5, 2acfbb7, 75e4ce7)
- Allow to upload images and documents (14f17fe, 9c8e22f, fdc305e, c7ad8aa, be20bb0)
Improvements
- Improve the readability of the ticket page (1c75799, 8a3e75c)
- Customize the errors pages (276501e)
- Redirect automatically if user can create ticket in its default organization (c590e40)
- Redirect to the "new authorization" page after creating a user (35b1826)
Bug fixes
- Allow empty name to be entered in the profile (7b549e7)
Techical
Documentation
- Update the roadmap and the readme (bec35c9)
- Improve the doc to check requirements in production (8f5ce4a)
- Reorganize the developers documentation (4fdd67f)
- Improve the doc to generate the migrations for MariaDB (353fe63)
- Document the
dev:
prefix in the release section (0bb57c4)
Developers
- Rename the make i18n-extract command (3073863)
- Configure the CSS autoprefixer NPM package (9502721)
- Add isCreatedBy and isUpdatedBy to the MetaEntityInterface (e9801be)
- Extract a ConstraintErrorsFormatter from BaseController (cc94181)
- Use Docker Compose v2 (8d65095)
- Improve starting a MariaDB database in development (bf01124)
- Provide an "info" alert (f90870c)
- Style the disabled inputs and textareas correctly (0a9ed91)
- Improve signature of CommandTestsHelper::executeCommand (81816de)
- Remove rollbacks test (aa6b0d5)
- Rename JS forms controllers TicketEditor and NewAuthorizationForm (35ea05e)
- Reorganize the env files (b76098d)
- Remove the Stylelint rule about comments (abfac89)