Custom fields

Create free-configurable additional fields for timesheets, customers, projects, activities and users in various formats. Fields can be optional or mandatory and restricted by permissions.

Kevin Papst
Offered by
Kevin Papst

Allows configuration of additional (custom) fields for: Timesheets, Customers, Projects, Activities, Invoices, User, Expenses (see plugin).

Features

You can create as many fields as you want for each data type, where each field:

  • is either optional or mandatory
  • can be restricted to users with certain permissions or roles
  • can be described with a name and help text
  • has a maximum length of 65535 character

The custom-field data is then available in:

  • Data-tables will display all visible fields
  • Exports (HTML and Spreadsheets include all visible fields)
  • Timesheet exports (include visible timesheet fields)
  • API (collections and entities)
  • Invoice templates (custom templates have access to all fields)

You can change the “weight” of custom-fields, so they show up in the order you define.

Be aware:

  • Sensitive data can be configured as “invisible”, so it will not show up in the previously mentioned places
  • Weekly-hours does NOT support custom fields
  • User preferences (custom fields for users) are not exported by the API (this is a limitation in the core application)
  • User preferences have a maximum length of 250 character

Field types

Custom fields can be of the following type: string, integer, number, duration, money, language, currency, country, color, date, datetime, email, textarea, invoice template, checkbox, choice-list

More about those in the documentation.

Installation

Copy files

Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:

var/plugins/MetaFieldsBundle/

The file structure needs to look like this afterwards:

var/plugins/
├── MetaFieldsBundle
│   ├── MetaFieldsBundle.php
|   └ ... more files and directories follow here ...

Clear cache

After uploading the files, Kimai needs to know about the new plugin. It will be found once the cache was re-built. Call these commands from the Kimai directory:

How to reload Kimai cache

bin/console kimai:reload --env=prod

It is not advised, but in case the above command fails you could try:

rm -r var/cache/prod/*

You might have to set file permissions afterwards:

Adjust file permission

You have to allow PHP (your webserver process) to write to var/ and it subdirectories.

Here is an example for Debian/Ubuntu, to be executed inside the Kimai directory:

chown -R :www-data .
chmod -R g+r .
chmod -R g+rw var/

You might not need these commands in a shared-hosting environment. And you probably need to prefix them with sudo and/or the group might be called different from www-data.

Create database

Run the following command:

bin/console kimai:bundle:metafields:install

This will create the required database tables and update them to the latest version.

Updates

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/MetaFieldsBundle/
  • Execute all installation steps again:
    • Copy files
    • Clear cache
    • Update database with bin/console kimai:bundle:metafields:install

Changelog

Version 2.10.0

Compatibility: requires minimum Kimai 2.25.0

  • Fix default value for boolean values of user-preferences
  • Use translations from Kimai core
  • Rename migration config for compatibility with new plugin installer
  • Code improvement: PHPStan 2 with strict and deprecation rules activated

Version 2.9.0

Compatibility: requires minimum Kimai 2.15.0

  • Inline Nelmio API Doc configuration

Version 2.8.0

Compatibility: requires minimum Kimai 2.15.0

Fixed auto-tags handling on systems with less than 500 tags

Version 2.7.0

Compatibility: requires minimum Kimai 2.15.0

  • Improved internal API
  • Fixed translation issues with Task fields

Version 2.6.0

Compatibility: requires minimum Kimai 2.15.0

Added: support for custom fields with the Task-Management bundle (needs Task Management version 2.7.0)

Version 2.5.0

Compatibility: requires minimum Kimai 2.5.0

Fixed: auto-tags support in detail pages (in cases where many tags already exist)

Version 2.4.1

Compatibility: requires minimum Kimai 2.5.0

  • Changed: import Route attribute from correct namespace
  • Changed: removed API security definition

Version 2.4.0

Compatibility: requires minimum Kimai 2.5.0

Changed: do not load all meta-fields from database on every page load

Version 2.3.0

Compatibility: requires minimum Kimai 2.5.0

Changed: moved some translations to core, allowing more languages

Version 2.2.0

Compatibility: requires minimum Kimai 2.1.0

Use annotation type for routes

Version 2.1.0

Compatibility: requires minimum Kimai 2.0.0

Simplified listing view

Version 2.0.7

Compatibility: requires minimum Kimai 2.0.0

Fixed: prevent error if tag name exceeds 100 character

Demo

You can test this plugin at demo.kimai.org:

Username: susan_super
Password: password

Find more test accounts here.

Screenshots

Screenshot
The listing page shows all available item-types and their configured custom fields
Screenshot
The dialog to create a new custom field for customers
Screenshot
Editing an already existing custom field for projects (type boolean, see default value)
Screenshot
The timesheet listing, displaying the visible custom-field called "Location"
Screenshot
Editing a timesheet record with a new choice-list custom field

FAQ

These FAQs are provided by the developer of this offer.

You can buy the plugin via the Marketplaces 'Lemon Squeezy' or 'Gumroad' and pay with Credit Card or PayPal. Both offer instant access to the purchases.

Support-questions, bug-reports and feature-requests will be answered in this Github repository

Offered by

Kevin Papst

Building Kimai since 2009

If you have any question, please use the following contact information to get in touch with the developer directly.
Top