Skip to content

Ilogeek/redmine_issue_dynamic_edit

Repository files navigation

✨ redmine_issue_dynamic_edit

Add new interactive elements to the issue detail page to dynamically update an issue’s attributes and custom fields, directly within the details block, and without any page refresh (JIRA-style inline editing).

🔴 What to include when opening an issue

Please list:

  • The Redmine version you use
  • All installed plugins

Conflicts may occur if another plugin modifies the same page elements.

This plugin uses JavaScript extensively.

Open your browser’s JS console (HowTo), reproduce the problem, and review the console output. Copy and paste the result into your GitHub issue and expand any relevant objects (for example, error data).

These details will help identify whether the problem comes from an AJAX request or a JavaScript error.

🔎 Example

Gif that represents dynamic edition of field from the detailled issue's view

📦 Installation

  • Clone the repository into your Redmine plugins directory : git clone https://github.com/Ilogeek/redmine_issue_dynamic_edit.git (ensure the folder name is redmine_issue_dynamic_edit)
  • Restart your Redmine instance

⚙ Configuration

You can adjust the following options from Redmine’s Administration → Plugins → redmine_issue_dynamic_edit panel:

  • _CONF_FORCE_HTTPS : forces all AJAX calls to use HTTPS (recommended to avoid Mixed Content issues).
  • _CONF_DISPLAY_EDIT_ICON : controls how pencil icons appear for editable fields — set to single (hover each field individually) or block (hovering the details block shows all icons)
  • _CONF_LISTENER_TYPE_VALUE : defines the event type (none, click, dblclick) that opens an editor from the field value
  • _CONF_LISTENER_TYPE_ICON : defines the event type for the pencil icon (defaults to the same as _CONF_LISTENER_TYPE_VALUE)
  • _CONF_LISTENER_TARGET : defines the clickable area that triggers editing
  • _CONF_EXCLUDED_FIELD_ID : comma-separated list of field IDs to exclude from editing (e.g. TitleInput, DescriptionInput, statusListDropdown)
  • _CONF_CHECK_ISSUE_UPDATE_CONFLICT : if enabled, prevents overwriting changes made by other users.

🎨 Customization

You can customize the visual style in assets/stylesheets/issue_dynamic_edit.css to better match your theme.

🆕 Changelog

  • v 0.9.3 : Add admin panel to settings section, fixes #127 #126 #96
  • v 0.9.2 : JSToolbar fixed (#100)
  • v 0.9.1 : Check version improved (avoiding update conflicts) : using Redmine REST API and disabling check when tab is not focused (#97)
  • v 0.9.0 : JS rewritten to remove jQuery code
  • v 0.8.1 : fixed Github issue #89 : Issue version check (AJAX call) may give glitch while editing text + disable global event listener on ajaxSend
  • v 0.8.0 : Complete rework. Compatible with last Redmine version. New settings added : _CONF_CHECK_ISSUE_UPDATE_CONFLICT (#70 #88). Removed external lib (FontAwesome) (#74). Mobile style added (#87). Print style added (#84). Bug fix (#79, #85)
  • v 0.7.2 : New settings added into config file (_CONF_DISPLAY_EDIT_ICON and _CONF_LISTENER_TYPE_ICON) see Configuration part for more info ; new event none for _CONF_LISTENER_TYPE_VALUE disabling listener on value ; css fix
  • v 0.7.1 : Fixed incorrect DOM structure if user has read only access to the issue (#61 #64)
  • v 0.7.0 : Category filter by project added (#55) and prevent dialog closing when using fa-pencil selector (#59)
  • v 0.6.9 : Category field support (Github request #54)
  • v 0.6.8 : Checkboxes custom fields fixed (#53)
  • v 0.6.7 : fixed Github issue #46 : text field focus issue
  • v 0.6.6 : New configuration file + Multiple fixes (#30 #31 #35 #36 #37 #38 #41)
  • v 0.6.5 : Checklists plugin support (and all other plugins that compute fields when there's an issue update) (Github requests #26 and #28) + custom url support (Github request #29)
  • v 0.6.4 : version field with checkbox display is now supported, Target version and Assignee fields are also supported (Github request #24)
  • v 0.6.3 : fixed Github issue #22 : DatepickerFallback raised an error
  • v 0.6.2 : fixed Github issue #22 : long description is now supported (no more 414 errors)
  • v 0.6.1 : fixed Github issue #20
  • v 0.6.0 : NOW WITH CUSTOM FIELDS SUPPORT ! (Github #19)
  • v 0.5.0 : fixed Github issue #18 : textarea fixed (jstoolbar or ckeditor)
  • v 0.4.9 : fixed Github issue #17 : Datepicker fallback added for date fields
  • v 0.4.8 : fixed Github issues #15 and #16
  • v 0.4.7 : if error on dynamic update, put back old values in details block (fixed Github issue #8)
  • v 0.4.6 : description is now dynamically editable (edit field appears if there's already a description written) (Github request #14)
  • v 0.4.5 : fixed Github issue #13 : CSS display for custom attributes, added Title dynamic edition (Github request #14)
  • v 0.4.4 : fixed Github issues #6, #12 : User can't update status until all required field are filled for this step of the issue
  • v 0.4.3 : partially fixed Github issue #12 : Read only attributes can't be edited anymore. Dynamic refresh for read only attributes when status changes
  • v 0.4.2 : fixed Github issue #10 : History list updated after modification
  • v 0.4.1 : fixed Github issue #7 : update status list to follow Redmine workflow
  • v 0.4.0 : fixed Github issues #2, #4, #9. Edited dropdown display
  • v 0.3.0 : start date, due date, ratio and estimated time fields are now dynamically editable. Translation files added (en, fr). Log added in console when AJAX fails
  • v 0.2.0 : fixed "conflict" when trying to add a note after an update from dropdowns. New method used, REST API is not required anymore
  • v 0.1.0 : initial commit

About

Allows users to dynamically update (AJAX) issue's attributes from issue details page without any refresh (JIRA like)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7