/* * OPTIONS DEFINED FROM CONFIGURATION FILE */ var _CONF_FORCE_HTTPS = _CONF_FORCE_HTTPS || false; var _CONF_DISPLAY_EDIT_ICON = _CONF_DISPLAY_EDIT_ICON || "single"; var _CONF_LISTENER_TYPE_VALUE = _CONF_LISTENER_TYPE_VALUE || "click"; var _CONF_LISTENER_TYPE_ICON = _CONF_LISTENER_TYPE_ICON || "none"; var _CONF_LISTENER_TARGET = _CONF_LISTENER_TARGET || "value"; var _CONF_EXCLUDED_FIELD_ID = _CONF_EXCLUDED_FIELD_ID || []; var _CONF_CHECK_ISSUE_UPDATE_CONFLICT = _CONF_CHECK_ISSUE_UPDATE_CONFLICT || false; _CONF_LISTENER_TARGET = _CONF_LISTENER_TARGET === "all" ? "*" : _CONF_LISTENER_TARGET; /* * SVG ICONS * Source : https://www.iconfinder.com/iconsets/glyphs */ var SVG_EDIT = ''; var SVG_VALID = ''; var SVG_CANCEL = ''; /* * Allow inclusion from other page * See https://github.com/Ilogeek/redmine_issue_dynamic_edit/commit/26684a2dd9b12dcc7377afd79e9fe5c142d26ebd for more info */ var LOCATION_HREF = typeof custom_location_href !== 'undefined' ? custom_location_href : window.location.href; if (_CONF_FORCE_HTTPS) { LOCATION_HREF = LOCATION_HREF.replace(/^http:\/\//i, 'https://'); } /* Check if admin want to display all editable fields when hovering the whole details block * or if user has to hover every element to discover if (s)he can edit it */ if (_CONF_DISPLAY_EDIT_ICON === "block"){ $('body.controller-issues.action-show .issue.details').addClass('showPencils'); } /* Generate edit block */ var getEditFormHTML = function(attribute){ var formElement = $('#issue_' + attribute + "_id"); formElement = formElement.length ? formElement : $('#issue_' + attribute); formElement = formElement.length ? formElement : $('#' + attribute); // Checkbox specific case var is_checkboxes = false; let is_file = false; let is_list = false; let CF_ID = false; if(!formElement.length && attribute.startsWith("custom_field_values_")){ CF_ID = attribute.split("custom_field_values_")[1]; /* Is it a checkbox block ? */ formElement = $('#issue_custom_field_values_' + CF_ID); if(formElement.length){ formElement = formElement.parents('.check_box_group'); is_checkboxes = CF_ID; } else { /* Is it a file block ? */ formElement = $('#issue_custom_field_values_' + CF_ID + '_blank'); if(formElement.length){ formElement = formElement.parents('p'); formElement.find('label').remove(); is_file = CF_ID; } else { /* Is it a checkbox/radio group ? */ formElement = $('#issue-form .cf_' + CF_ID + '.check_box_group'); is_list = CF_ID; } } } if(formElement.length){ var clone = formElement.clone(); if(clone.is('select') && !clone.prop('multiple')) clone.on('change', function(e){sendData($(this).serializeArray());}); if(is_checkboxes || is_file || is_list) { clone.prop('id', "issue_custom_field_values_" + CF_ID + "_dynamic"); } else { clone.prop('id', formElement.prop('id') + "_dynamic"); } var wrapper = $("
").addClass('dynamicEditField'); wrapper.append(clone); if(!clone.is('select') || clone.prop('multiple')) wrapper.append(""); wrapper.append(""); return wrapper; } return null; } /* Loop over all form attribute and clone them into details part */ var cloneEditForm = function(){ $('.issue.details .subject').append(''); $(".issue.details ").wrap("