#4071 Save metadata changes when changing status with dropdown
Merged 6 years ago by pingou. Opened 6 years ago by ryanlerch.
ryanlerch/pagure issue3736  into  master

file modified
+20 -29
@@ -27,38 +27,17 @@ 

          <input type="hidden" id="statusform_close_status" name="close_status" value=""/>

        {% endif %}

        {% if g.authenticated and (g.repo_user or open_access) %}

-         <input type="hidden" name="tag" value="{{ issue.tags_text | join(',') }}"/>

-         <input type="hidden" name="depending" value="{{ issue.depending_text | join(',') }}"/>

-         <input type="hidden" name="blocking" value="{{ issue.blocking_text | join(',') }}"/>

-         <input type="hidden" name="assignee" value="{{ issue.assignee.username or '' }}"/>

-         {{form.priority}}

-         {{form.milestone}}

+         <input type="hidden" id="statusform_tag" name="tag" value=""/>

+         <input type="hidden" id="statusform_depending" name="depending" value=""/>

+         <input type="hidden" id="statusform_blocking" name="blocking" value=""/>

+         <input type="hidden" id="statusform_assignee" name="assignee" value=""/>

+         <input type="hidden" id="statusform_milestone" name="milestone" value=""/>

+         <input type="hidden" id="statusform_priority" name="priority" value=""/>

          {{form.private}}

+ 

          {% if repo.issue_keys %}

            {% for field in repo.issue_keys %}

-             {% if field.key_type == 'list' %}

-               <select class="form-control"

-                   name="{{ field.name }}"

-                   id="{{ field.name | replace(' ', '_') }}">

-                 <option value="None">None</option>

-                 {% for item in field.data or [] %}

-                   <option value="{{item}}" {% if field.name in knowns_keys and item == knowns_keys[field.name].value %} selected {% endif %}>

-                     {{ item }}

-                   </option>

-                 {% endfor %}

-               </select>

-             {% else %}

-               <input

-                 {%- if field.key_type == 'boolean' %} type="checkbox" {% endif %}

-                 {%- if field.key_type == 'date'%} type="date" {% endif %}

-                 class="form-control" name="{{ field.name }}" id="{{ field.name }}"

-                 {%- if field.name in knowns_keys %}

-                   {% if field.key_type == 'boolean'%}

-                     {% if knowns_keys[field.name].value in ['true', 'on', '1'] %}checked{% endif %}

-                   {% else %} value="{{ knowns_keys[field.name].value }}"

-                   {% endif %}

-                 {%- endif -%} />

-             {% endif %}

+           <input type="hidden" id="statusform_{{ field.name | replace(' ', '_') }}" name="{{ field.name }}" value=""/>

            {% endfor %}

          {% endif %}

        {% endif %}
@@ -1103,6 +1082,18 @@ 

    } else {

      $("#changestatusform #statusform_status").val("Open");

    }

+   $("#changestatusform #statusform_assignee").val($("#assignee").val());

+   $("#changestatusform #statusform_tag").val($("#tag").val());

+   $("#changestatusform #statusform_priority").val($("#priority").val());

+   $("#changestatusform #statusform_milestone").val($("#milestone").val());

+   $("#changestatusform #statusform_blocking").val($("#blocking").val());

+   $("#changestatusform #statusform_depending").val($("#depending").val());

+ 

+   {% if repo.issue_keys %}

+     {% for field in repo.issue_keys %}

+       $("#changestatusform #statusform_{{ field.name | replace(' ', '_') }}").val($("#{{ field.name | replace(' ', '_') }}").val());

+     {% endfor %}

+   {% endif %}

    $("#changestatusform").submit();

  

  });

This updates the dropdown on the issue page so any
metadata changes entered in by the user are updated
if the user changes the issue status with the dropdown
in the top right.

Fixes #3736

rebased onto f3fca88c9c9d3e2a35e430df7a28011bab8e62e3

6 years ago

The priority and milestones fields as well as all the custom fields are missing, gives and odd behavior where some of the metadata fields are updated but not all :s

rebased onto 15ed2d0b91f17bad95fd283bb4c8612318b71f0d

6 years ago

rebased onto 770c452

6 years ago

Okies, fixed to work with custom feilds, and priority, and milestones.

Local tests indicate this is working nice :)

Pull-Request has been merged by pingou

6 years ago